monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] cvssync branch feedback


From: Matt Lavin
Subject: Re: [Monotone-devel] cvssync branch feedback
Date: Wed, 25 May 2005 15:07:06 -0400
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

I hope I didn't appear to be slamming tailor.py, I was trying mostly to compliment cvssync. I'll try to clear up some of my statements.

1. "correct file generation" should have been "correct directory contents". I have a rather large project that I was trying to convert ( ~3500 patches) and at the end of the convert I did a simple diff between a fresh CVS checkout and a darcs (for tailor.py) or monotone (for cvssync) checkout of the converted project. For the cvssync checkout the directory contents matched exactly (ignoring CVS, .cvsignore, and MT directories). For the tailor.py build project I had a couple of extra empty directories and 1 missing file. One thing I noticed about the empty directories is that in the final CVS checkout from tailor.py they all had completely blank CVS/Entries files. My 30 second guess for the problem was that cvs update would not delete empty directories when the last file is deleted. About the missing file, I have no idea why it would happen.

2. The "wasted" week. Most of the time was spent waiting to see the results of the convert. I was originally converting over pserver to a remote location ( before I was banned by my local admin =). Interestingly, it was not significantly faster when I convinced him to provide CVSROOT tarballs and I tried build from a local directory. During the week, I did find a slow leak of file handles in tailor.py which I submitted a patch for, and is now included, so it was hardly a waste of time. Another time sink was trying to figure out the exact time stamp to use to get the entire history of the project. Maybe I'm doing something wrong, but it was quite hard for me to pick just the right time so that the whole history would be picked up. (I finally used cscvs to read the repo, and used the datetime of the initial commit it found).

3. Lack of CVS module support. When I tried to use tailor.py on a CVS project which used modules it complained:

Traceback (most recent call last):
 File "/home/matt/projects/cvsync/tailor.py", line 36, in ?
   main()
 File "/home/matt/projects/cvsync/vcpx/tailor.py", line 615, in main
   options.subdir)
 File "/home/matt/projects/cvsync/vcpx/tailor.py", line 325, in bootstrap
   logger=self.logger)
File "/home/matt/projects/cvsync/vcpx/dualwd.py", line 74, in checkoutUpstreamRevision
   revision, **kwargs)
File "/home/matt/projects/cvsync/vcpx/source.py", line 179, in checkoutUpstreamRevision
   module, revision,
File "/home/matt/projects/cvsync/vcpx/cvsps.py", line 343, in _checkoutUpstreamRevision
   csets = self.getUpstreamChangesets(wdir, repository, module)
File "/home/matt/projects/cvsync/vcpx/cvs.py", line 318, in getUpstreamChangesets
   for cs in changesets_from_cvslog(log, module):
File "/home/matt/projects/cvsync/vcpx/cvs.py", line 68, in changesets_from_cvslog
   collected = ChangeSetCollector(log, module)
 File "/home/matt/projects/cvsync/vcpx/cvs.py", line 109, in __init__
   self.__parseCvsLog()
 File "/home/matt/projects/cvsync/vcpx/cvs.py", line 274, in __parseCvsLog
   cs = self.__parseRevision(entry)
File "/home/matt/projects/cvsync/vcpx/cvs.py", line 180, in __parseRevision
   revision = self.__readline()
 File "/home/matt/projects/cvsync/vcpx/cvs.py", line 160, in __readline
   assert currentdir.startswith(self.module), \
AssertionError: Directory <some cvs directory> does not start with <module name>

3 out of 4 projects I was interested in use CVS modules so when I finally got this error I put less emphasis on trying to debug more of the problems from 1.

Unfortunately, I cannot distribute the source of the repo, but I would be glad to test out new changes. And if I had more free time, I'd supply more fixes.
Lele Gaifax wrote:

"Matt" == Matt Lavin <address@hidden> writes:

   Matt> If you are targeting monotone as the new SCM then cvssync is
   Matt> heads above tailor.py in terms of speed and correct file
   Matt> generation.

No doubt on former, given the different overall goals of the two,
but I'd like to better understand the latter.

   Matt> I got exactly what I wanted from the cvssync branch in
   Matt> almost the first try as compared to working the tailor.py
   Matt> over the course of a week to finally just give up.

I'm sad to hear that, sorry for the waste of time. Maybe I could have
been of some help, knowing that.

   Matt> Specifically, cvssync seemed to handle the use of modules
   Matt> and deleted files/directories much better than tailor.py.

Well, here I'd gladly accept some more context, and possibly some more
details on the errors you found, expecially if they are related to how
tailor failed to build up reasonable changesets from upstream CVS.

If on the contrary the problem is related to monotone support, I'm
sure somebody could be interested as well.

Thank you,
ciao, lele.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]