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

Reply via email to