Any thoughts on those distributed systems?

martin f krafft madduck at
Sun Aug 26 14:27:48 CEST 2007

also sprach Alan Young <alansyoungiii at> [2007.08.25.1607 +0100]:
> While I agree with you generally, I *would* like to see
> a comparison of vcs' as it relates to storage of my home
> directory.
> What kind of features are needed and how well does each vcs match
> up?

I guess it depends much on what you want to do. I cannot tell you
what kind of features are needed for vcs-home, I could only tell you
what features I am looking for, and these include:

  - ability to commit offline
  - trivial branching to manage differences between settings on
    different machines
  - preservation of file mode/permissions

For me, git fits these perfectly well, except for the file mode
preservation (it can only track the executable bit).

I have previously used svn and one of the most often missed features
seems to be svn:externals to many. It is nice to be able to check
out your home directory and have it pull in other repositories at
preset locations within the tree. However, this does not work as
soon as you have to work with non-svn repositories and I've found
that despite the clean feel of this approach, it's costing me more
time to manage it than it saves me. Thus, with git, I am quite happy
to clone repositories manually when I need them.

For those repositories that I need all machines, I have created
a file of location/url pairs and a little script that iterates over
the list and clones or updates each repository in turn.
git-submodules are not really suitable to vcs-home, IMHO, since they
are non-recursive and catered for programme dependencies and other
data that should not change without you explicitly asking it to.

One of the few things I miss from the days when I had ~ in svn was
the ability to simply say 'svn commit -mfoo ~/path/to/some/file' and
have it commit that file to the repository to which it belonged.
With git, you have to first chdir() to the git repository tree
before you can commit, though undoubtedly I could fix that
relatively easy with a little wrapper script or function.

People have argued that git is more of a filesystem than a revision
control system, and in fact, its author(s) refer to it as
directory/content tracking tool. And it has this feel to it, which
I cannot really describe, but which makes it the perfect choice for
me for vcs-home, though I doubt it has any functionality the other
vcs do not have. Your mileage may vary.

martin;              (greetings from the heart of the sun.)
  \____ echo mailto: !#^."<*>"|tr "<*> mailto:" net at madduck
"a woman begins by resisting a man's advances and ends by blocking
 his retreat."
                                                        -- oscar wilde
spamtraps: madduck.bogus at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature (see
URL: <>

More information about the vcs-home mailing list