digitalmars.D.announce - SvnParallelUpdata: an D version of Scala SvnFastUpdate
- eao197 (34/36) Apr 20 2007 Hello.
Hello. SvnParallelUpdate[1] was started as my attempt to make port of Scala[2] example SubversionFastUpdate[3] to D. But during development I have made too many changes in the original algorithm so now it is a completely different solution :) The main differences are: * Scala version checks revisions of working copy and repository. And does nothing if revisions are the same. My version always launches 'svn up' -- this allows to restore deleted paths and files. * Scala version uses only one type of working thread -- thread which performs 'svn up'. My version uses two types: the first for 'svn up' and the second for 'svn co' (for checking out missing paths). * Scala version can't handle working copies which use file:/// URLs. * Scala version uses XML-format output from svn. * Scala version uses some strange and complex algorithm for detecting updateable entities from repository log. My version uses much simplier approach -- 'svn ls' for getting list of top-level subdirectories. I've tested SvnParallelUpdate only on Windows with DMD v.1.013 and Tango 0.97-RC1. To build: rebuild svnparup.d To run: For updating current working copy:svnparupFor updating working copy in directory d:/home/my/project:svnparup d:/home/my/projectThis is my first more or less serious program in D and Tango. So if someone finds some inefficient or/and bad fragment please tell me about it (may be I should have post this in digitalmars.D.learn n.g?). Thanks to Walter Bright for great programming language! Thanks to Tango team for great library -- I found all what I need in Tango! [1] http://eao197.narod.ru/svnparup/svnparup.d (and colored version in form of HTML: http://eao197.narod.ru/svnparup/svnparup.d.html) [2] http://www.scala-lang.org [3] http://scala.sygneca.com/code/subversion-fast-update -- Regards, Yauheni Akhotnikau
Apr 20 2007