------- Start of forwarded message -------
Subject: SVN vs. .svn
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: text/plain; charset=US-ASCII
From: email@example.com (Carl R. Witty)
Date: 18 Sep 2001 16:55:25 -0700
I tried to post the following to the firstname.lastname@example.org mailing
list, but it seems to have been dropped (probably because I don't
subscribe to the list). If you think it's sufficiently interesting,
could you forward it to the list?
I've got a (fairly long-winded) explanation for why I would like
flexible administrative directory naming (.svn, SVN, etc.).
First, let me quote from the "Subversion Design" document, from the
"Blue Sky items" section:
> Inter-Repository Communication
> This is one that people request a lot: the ability to commit changes
> first to a local "working repository" (not visible to the rest of the
> world), and then commit what's in the working repository to the real
> repository (with the several commits maybe being folded into one
> Why do people want this? It may be the psychological comfort of making
> a snapshot whenever one reaches a good stopping point, but not
> necessarily wanting all those "comfort points" to become
> publically-visible commits.
I do this a lot on projects I participate in. I use CVS for my remote
repository, and PRCS for my local repository. I check my CVS
meta-data (the CVS/ directories) into PRCS; I don't check my PRCS
meta-data into CVS.
This works really well. I keep several branches in PRCS, and merge
back and forth between them with abandon; every once in a while, I
update one of the branches to the latest version from the external
CVS, and merge that into the other branches I'm working on. The
branching and merging automatically do the right thing with the CVS
meta-data, so I can commit from any of these branches.
It's sufficiently transparent that I don't worry about bad
interactions between the version control systems -- it just works.
I've thought about why it works well, and why I've never heard of
anyone else doing it, and the answer I came up with is that it's
because CVS does not have flexible administrative directory naming.
My approach works because PRCS and CVS keep disjoint metadata. If I
alias cvslocal "cvs --admindir .cvslocal"
I could do the same thing with both local and remote repositories
being CVS. Similarly, if svn could change the name of the admin
directories on a per-command-invocation basis, that would be a cheap
way to get many of the benefits of the "Inter-Repository
Communication" wishlist item.
Of course, for this to work best, the administrative directories for
the remote repository need to be checked in to the local repository.
Somebody made a suggestion that if there are multiple allowed names
for administrative directories, "import" should ignore all of them;
that feature is actually undesirable in this situation.
Paradoxically, this feature is sufficiently important to me that I
don't care much whether you choose to support it; if you don't allow
per-command-invocation changes of the administrative directory name,
I'll probably hack that feature into a local copy (at least until
inter-repository communication is actually implemented).
BTW, I don't subscribe to this mailing list; I read it by way of the
web archive. I'll try to continue reading that, but if you want to
make sure I see something (for instance, if you want a reply from me),
please CC me.
------- End of forwarded message -------
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Sat Oct 21 14:36:41 2006