You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Marko Käning <mk...@mch.osram.de> on 2008/07/18 08:47:46 UTC

"German umlauts and decentralized version management" or "An SCM odyssey" or "From CVS and SVN via Mercurial to SVK - back to the future?"

Hi list,

Erik Huelsmann asked me to post my experiences concerning my SCM quest to 
you all.

First of all: this whole story is about transcoding of path names!

Why? It's because I am (unfortunately) german and I tend to use German 
umlauts in my path names. Hu, who'd ever do that to ones development tools 
one might say, but hey, I am a SVN *ab*user. I actually keep ALL my files 
in SVN - not only source code - every single bit: Word, Powerpoint, etc... 
And - as you might guess - I might be tempted to use speaking path names, 
naturally containing also umlauts.

So far so good.


---CVS---
In the past and even up to now I keep some of my stuff in CVS repos. Only 
reasons why are 
 1) the pristine copy waisting my scarce disc space 
 2) and the faster commit times with CVS with large files.

But it always bugged me that I was unable to check out working copies on 
my linux host, since data was naturally generated on Windows clients. Due 
to missing transcoding of character sets in CVS one gets pretty unreadable 
path names when checking out on linux.


---SVN---
Then SVN appeared and I realized with awe that there is some (though 
according to Erik quite simple) transcoding implemented which in my case 
(linux server, linux and windows clients) worked out of the box! Therfore 
this became my standard tool for document versioning.


---DCVS: Mercurial & SVK---
The only trouble was for me now, that these my standard tools did not 
allow to work OFFLINE, which is why I tested Mercurial as well as SVK. 
Both allow to happily commit offline and synchronize with the main 
repository at a later time.

So far so good, BUT:

It turned out that neither of them did transcoding as SVN does out of the 
box, which makes them pretty unusable for my purpose.


---Mercurial----
On Mercurial's mailing list I kicked off quite a long thread about this 
topic, but it turned out that the developer team is afraid to introduce a 
simple transcoding (although svn successfully applies this), since they 
argument that development tools might cease to function properly, due to 
their usually byte-to-byte comparison of path name strings and trouble 
caused by wrongly configured clients.

So, it looks as if Mercurial is solely focusing on SCM (Source Code 
Management) and not DM (Document Management). Sad, since I like the ease 
with which one can work in a decentralized way under Mercurial.


---SVK---
Charm of SVK is that it can commit to SVN repos, which is what it was 
designed for back then. It worked fine for me during first tests, once I 
understood the concept of mirrors and local copies of those.

Checking its website one realizes though that activity on its mailing list 
is so low that I am afraid that almost nobody seems to use it anymore 
nowadays. Traffic is at least an order of magnitude lower than on 
Mercurial's or SVN's. At least it seems to be on the decline... :(

Well, it keeps its local repo (even on windows) in utf-8, which causes the 
same mess when trying to check out working copies on windows. Not usable! 
And there is no such handy tool like TortoiseSVN for SVK... :(

So what?


---Back to the future: SVK + SVN?---

Unexpectedly I finally managed to use SVK for my purposes, meaning for 
filenames with umlauts. The trick is to mirror a SVN repo using SVK, "svk 
cp" that locally, work on it locally and pull, push and sync it with the 
mirrored main repo when I am back online.

Although SVK itself does not transcode, I can do a SVN-checkout from SVK's 
local repo (~/.svk/local/) e.g. via TortoiseSVN, work on it and SVN-commit 
locally without trouble into it. When I am online again a simple "svk 
push" inside the copy triggers the synchronization with the main repo.
(One should not try to SVN-commit into the local mirror, since this 
destroys its magic!)

I am still afraid to make this the standard approach (due to SVK's 
inactivity), but at least I have now figured out a way how to work offline 
without loosing history with all my existing SVN repos.

I know that there is still git around, which I did not test up to now. But 
I am afraid that it would be the same story as with Mercurial.

Best regards,
Marko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org