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 <[EMAIL PROTECTED]> 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.
_______________________________________________
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel