[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

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

From: Marko Käning <mk362_at_mch.osram.de>
Date: Fri, 18 Jul 2008 10:47:46 +0200 (CEST)

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.

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.

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.

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.

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,

To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-07-18 10:48:17 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.