Ticket #35 (new defect)

Opened 7 years ago

Last modified 7 years ago

Getting error while trying to do a two way sync between CVS and darcs.

Reported by: srinathava@… Owned by: lele
Priority: major Milestone: VersionOne
Component: tailor Version: 0.9
Keywords: cvs darcs two way sync Cc:

Description

Hi,

I tried out tailor on a new test CVS repository which I created just for testing. The CVS->darcs direction syncing works fine, but when I try the sync in the darcs->CVS direction, I get problems. It looks like tailor calls cvs rlog with a buggy time stamp causing the problem.

I am attaching a sample test-run of what I tried. Hopefully this makes things clearer. The actual error message from CVS is towards the end.

Thank you, Regards, Srinath

Attachments

testcase.txt Download (5.1 KB) - added by srinathava@… 7 years ago.
testcase2.sh Download (2.2 KB) - added by srinathava [at] gmail.com 7 years ago.

Change History

Changed 7 years ago by srinathava@…

comment:1 Changed 7 years ago by Lele Gaifax

Trying out your testcase script (thanks :-) I notice the following, in random order:

  1. In such a scenario, you must use two different state files for the two projects, something like the following single config, containing both projects (then, you can do tailor --configfile thisfile.tailor cvs-to-darcs to process just one of them)
    [DEFAULT]
    verbose = True
    
    [cvs-to-darcs]
    target = darcs:repo
    start-revision = INITIAL
    root-directory = /tmp/tailor/hybrid
    state-file = c2d.state
    source = cvs:repo
    
    [darcs-to-cvs]
    target = darcs:repo
    start-revision = INITIAL
    root-directory = /tmp/tailor/hybrid
    state-file = d2c.state
    source = cvs:repo
    
    [darcs:repo]
    module = modname
    repository = /tmp/tailor/dmaster
    
    [cvs:repo]
    module = modname
    repository = /tmp/tailor/cvsroot
    
  2. The final error is due to an unfortunate code in cvs.py that assume a date was specified whenever a patchname begins with a digit. I'll try to stick a stronger check. The obvious workaround is using "-m 'Patch $(wc -l foo)'" as commit messages, instead of just a number. But I'll recheck the case, since it shouldn't reach that point anyway...

comment:2 Changed 7 years ago by srinathava [at] gmail.com

Hi,

Thanks for the clarification. I tried to get a simpler test case working and I still get problems. Now tailor seems to report that everything is okay but infact, the hybrid/ and dmaster/ repositories are not synced up as they should be. I tried the config file exactly from your post.

With this config and the testcase2.sh file attached, dmaster/foo contains one more line than hybrid/foo. I would expect that at the end of this script, all files in all repos should contain the same info.

Another thing which concerns me is that some of the .log and .tailor files which are used by tailor seem to be added to the darcs repos during the bootstrapping. I am unsure whether this is something which I should be specifying as an option.

Thanks,

Regards,

Srinath

Changed 7 years ago by srinathava [at] gmail.com

Note: See TracTickets for help on using tickets.