SvnParallelUpdata: an D version of Scala SvnFastUpdate
eao197
eao197 at intervale.ru
Fri Apr 20 05:59:51 PDT 2007
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:
> svnparup
For updating working copy in directory d:/home/my/project:
> svnparup d:/home/my/project
This 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
More information about the Digitalmars-d-announce
mailing list