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