Wednesday 23 May 2007

Subversion for desktop integration

Having looked into DAV to provide desktop integration for EPrints, I concluded it wasn't up to the job. For a start, newer versions of Web Folders (the Windows DAV client) don't communicate well with Apache DAV; also making a DAV handler with any complexity requires writing C modules to plug into Apache.

I was hoping to find a DAV handler which exported the API to Perl, but not only would that still require plenty of careful coding, there don't seem to be any systems which use DAV any more. Subversion seems to be the only DAV handler in common use apart from the simple filesystem handler. On investigation though, it looks like we could simply use Subversion to provide desktop integration—and it would be powerful, easy to build into EPrints, and cross platform on both server and client.

How it would work:

  • The user creates a new eprint in their EPrints work area, and adds a special type of document.
  • EPrints creates a new SVN repository for that document, and gives the user the URL of the repository.
  • Using a client like TortoiseSVN, the user checks out that URL into an empty working copy on their computer.
  • They add files to that directory and add them to version control. When they're done working, they check in their changes, and they're synchronised with the SVN repository.
  • EPrints detects that the repository has changed, and updates its version of the document.
  • When the document is committed to the archive, the repository is frozen. Cloning an eprint will also clone its repository, so the user can work on an updated version of the document.

Subversion has hooks for when things in the repository change, so it can notify EPrints where appropriate, and using EPrints's user authentication shouldn't be too difficult.

Subversion, Apache, and Windows

1 comment:

rick said...

人工植牙中微創無痛植牙是最好的手術方式。
防水的問題一定要找合格的水工程商家。
宜蘭民宿是台灣發展最快的民宿縣市。
大陸新娘在台灣有很多的暴力家庭問題。