April 20, 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