Ticket #55 (closed defect: worksforme)
Can't import local CVS repository?
| Reported by: | edemaine@… | Owned by: | lele |
|---|---|---|---|
| Priority: | major | Milestone: | VersionOne |
| Component: | cvs | Version: | 0.9 |
| Keywords: | Cc: | docwhat |
Description
I'm trying to run the equivalent of
tailor --source-kind=cvs --target-kind=svn --source-repository=/...localpath.../cvsroot --source-module=Projects --target-repository=file://...localpath.../svnroot --target-module=Projects --use-svn-propset --verbose --debug
(but with a configuration file, as tailor forces me to do). I get output along these lines:
=============================================================================
cvs log: Logging Projects/blah
...[various cvs log data]...
=============================================================================
/toc/home/edemaine/Packages/lib/python2.5/site-packages/vcpx/cvs.py:329: DeprecationWarning: The sre module is deprecated, please import re.
import sre
20:23:47 [C] Checkout of project failed!
Traceback (most recent call last):
File "/toc/home/edemaine/Packages/bin/tailor", line 33, in <module>
main()
[...]
File "/toc/home/edemaine/Packages/lib/python2.5/site-packages/vcpx/cvs.py", line 189, in __init__
self.__parseCvsLog(branch, entries, since)
File "/toc/home/edemaine/Packages/lib/python2.5/site-packages/vcpx/cvs.py", line 350, in __parseCvsLog
"Missed 'cvs rlog: Logging XX' line"
AssertionError: Missed 'cvs rlog: Logging XX' line
The issue seems to be just a mistaken regex. I get cvs log, whereas tailor is looking for cvs rlog. Presumably this is because my repository is local, whereas all tested repositories have been remote? Just guessing.
Change History
comment:2 follow-up: ↓ 4 Changed 6 years ago by docwhat
I have the same problem. Versions:
- OS: Ubuntu Edgy
- tailor: 0.9.26-1
- cvs: 1.12.13-3
I ran the command:
cvs -f -d systemname:/path/to/cvs rlog somemodule
I get back output like this (it repeats for each file):
RCS file: /path/to/cvs/somemodule/Makefile,v
head: 1.2
branch:
locks: strict
access list:
symbolic names:
logging-3: 1.2
logging3-base: 1.2
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
----------------------------
revision 1.2
date: 2004/09/27 14:33:38; author: ralf; state: dead; lines: +0 -0
makefile and files for search
----------------------------
revision 1.1
date: 2004/09/23 14:03:41; author: wiggum; state: Exp;
search plugin for guinea pigs
=============================================================================
I think the line you're looking for looks like this (no leading whitespace):
RCS file: /path/to/cvs/somemodule/Makefile,v
There is nothing like the output that is being looked for in the source:
...startswith('cvs rlog: Logging ')
Ciao!
comment:4 in reply to: ↑ 2 Changed 6 years ago by lele
Replying to docwhat:
There is nothing like the output that is being looked for in the source:
...startswith('cvs rlog: Logging ')
CVS outputs that line on stderr, not stdin. So, to get it (and tailor *needs* it), you should redirect that channel onto stdout like in
cvs -f -d systemname:/path/to/cvs rlog somemodule 2>&1
that's what tailor does behind the scene. I fixed the missing bit, and now tailor correctly shows that detail when it prints the command line.
So no, I doubt that is the problem here. What I need is a way to replicate the problem, working on a CVS repository as tiny as possible.
comment:5 Changed 5 years ago by lele
- Status changed from new to closed
- Resolution set to worksforme
I'm closing this as I'm not able to reproduce the problem. cvs rlog always answers something like
$ cvs rlog ciccio cvs rlog: Logging ciccio RCS file: /tmp/p/ciccio/a,v head: 1.1 branch: 1.1.1 locks: strict access list: symbolic names: ...
to me, either against a local or a remote CVS repository.

I see there's a single usage of the deprecated (by Python 2.5) sre Python module that I'll replace . But the error does not seem related to that regex. Tailor always uses CVS "rlog" command, even with local repository (it does not even know the difference between local and remote).
So, I need to know something more about your CVS: which version are you using? Try to execute the following command manually and send me / attach here a first chunk (a couple of screens should be enough) of its output (be sure to include the stderr redirection 2>&1):
Is "Projects" a CVS module maybe?