Hi Lele,
I've just started experimenting with Tailor, and I think it's
wonderful. I'm quite grateful for what you've managed to accomplish
here...
When I initially investigated a cvs2darcs-type script, I only
considered its potential applicability to one-time conversions. I
never even conjectured about the possibility of these two-way syncs to
create a disjoint between contributors using their VCS of choice
regardless about the upstream VCS---tailor's vision, though, presents
some very future possibilities.
I'm actually interested in a much more prosaic function---namely
converting some of my old cvs/svn repositories to darcs. As these
were personal repositories and I was the only contributor, they're
really quite trivial when it comes to the possible complications.
While much actually went smoothly, I did run into a few issues. With
some of them I'd appeal for your assistance, while others motivated me
to suggest some documentation clarifications. And, finally, I have a
small feature request...
Some info up-front---I'm running all of this on a Debian sarge server:
cvs 1.12.9 and subversion 1.1.4 (r13838) from stable
darcs 1.0.8 and tailor 0.9.26 from sarge-backports
My monolithic tailor configfile is appended at the bottom of this
email. For synopsis, I'm importing 1 cvs repository and 2 svn
repositories into darcs (all are local filesystems). If necessary, I
can easily provide logs for any of the following cases.
Questions/comments follow:
1. On import of the cvs tree into darcs, the tags appear to have the
wrong date/time and lose the metadata on the committer (who is
listed as "Unknown tagger."). Specifically, rather than having the
date-time correctly set as the rest of the patches from that tree
do, the tags have the current date/time in darcs.
2. I've also experimented with the most recent version of tailor
('darcs get' from tree: 0.9.27 +) to try to alleviate some of these
issues. Unfortunately, the recent 5Feb07 patch by [EMAIL PROTECTED] to
introduce svn peg revisions doesn't work for me with subversion
1.1.4, even though, from everything I read in the subversion docs, it
should. I get a very simple error: "svn: URL 'file:///foo/@1' doesn't
exist".
3. A further issue with 0.9.27+ compared to 0.9.26 is that, when fed
the exact same tailor configfile, it produces a different resulting
darcs repository. Namely, it fails to recreate the entire
repository history, but only seems to grab more recent changesets.
Thus, it's also missing a lot of files (in my case, it only has 25%
or so of the files it should). I don't have any real idea why this
is happening...
4. I recall something from the first few times I played with tailor,
but haven't been able to find since then. After the conversion
from cvs to darcs, I viewed the changesets or something (can't even
remember at this time) and found an initial entry which was listed
as the "tailorization" and also had the user and even the
fully-qualified domain name on which it was performed. However, I
can no longer find this info or recall where it came from, though
I've looked with 'darcs changes' and 'darcs annotate'... Can you
imagine where it might have been or what I might have been thinking
of?
5. A feature request: Might it be possible to permit a mapping of the
committer upon VCS conversion. In general, obviously, I think it's
crucial to maintain the integrity of versioned data. I only
thought of this as darcs generally tracks committers with both name
and email address (probably due to 'darcs send' capabilities, which
are unusual among VCS's, I believe). So, during conversion, I'd
like to map cvs/svn's typical unix username ('jdoe') to darcs
full-name/email combo ('John Doe <[EMAIL PROTECTED]'). Thoughts?
6. I think it would be beneficial to clarify further what I consider
one of the more potentially confusing aspects of tailor configuration.
First, it took me a while to understand that tailor was actually
creating another copy of the source repository and that that
working copy often defaulted to the same location as the resulting
new target directory. Clarifying this situation and the usage of
the 'subdir' option in preventing it would help alot. I understand
it is mentioned, but it took me awhile nonetheless to really grok
what was happening, primarily as I did not expect the additional
copy of the source repository to be created at all. Further,
clarifying the interaction between the 'subdir', 'module', and
'repository' parameters would be helpful, as I think there is
sufficient overlap amongst them that it took me a fair amount of
thought and trial and error to grasp their relationships (and I'm
still not sure that I really do)...
7. I think it would be beneficial to more clearly explicate that darcs
1.0.2 doesn't properly work with tailor, as it is still the default
for Debian sarge/stable (I had to use 1.0.8 from sarge-backports).
It isn't really clearly mentioned in the docs (only briefly stated
in the README), and it largely works, which make determination of
its failures more difficult. The only failure I personally
recognized was that it didn't properly import tags from cvs into
darcs.
8. I couldn't find any mention in the documentation that subversion
1.2+ is required to work with some of the tailor defaults (and,
again, subversion 1.1.4 is default in Debian sarge), namely
'--limit' and '--ignore-externals'. Granted that both of these can
be disabled via tailor configuration options, but the need to do so
(or to use a certain baseline subversion) should probably be
clarified in the README.
Once more, thanks to you and the rest of the tailor team for a great
piece of software. I appreciate all you do. Please let me know if
you need any further information from me to help diagnose any of the
above.
Thanks,
Daniel
---------------------------------------------------------------
[DEFAULT]
verbose = True
debug = False
start-revision = INITIAL
patch-name-format =
projects = FOO,BAR,TAZ
[FOO]
source = cvs:FOO
target = darcs:FOO
root-directory = /home/freedman/Misc/TailorVCS2VCS/FOO
[cvs:FOO]
subdir = cvs-source
module = FOO
repository = /usr/local/cvsrepos
[darcs:FOO]
subdir = darcs-target
[BAR]
source = svn:BAR
target = darcs:BAR
root-directory = /home/freedman/Misc/TailorVCS2VCS/BAR
[svn:BAR]
subdir = svn-source
module = .
repository = file:///home/freedman/BAR/SVNRepos
use-limit = False
ignore-externals = False
use-propset = True
[darcs:BAR]
subdir = darcs-target
[TAZ]
source = svn:TAZ
target = darcs:TAZ
root-directory = /home/freedman/Misc/TailorVCS2VCS/TAZ
[svn:TAZ]
subdir = svn-source
module = .
repository = file:///home/freedman/TAZ/SVNRepos
use-limit = False
ignore-externals = False
use-propset = True
[darcs:TAZ]
subdir = darcs-target
--
Daniel A. Freedman <[EMAIL PROTECTED]>, Graduate Fellow
Electronic Structure Calculations, LASSP, Cornell University
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor