Ticket #55 (closed defect: worksforme)

Opened 7 years ago

Last modified 5 years ago

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:1 Changed 7 years ago by lele

  • Component changed from tailor to cvs

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):

cvs -f -d/...localpath.../cvsroot rlog Projects 2>&1

Is "Projects" a CVS module maybe?

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:3 Changed 6 years ago by docwhat

  • Cc docwhat added

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.

Note: See TracTickets for help on using tickets.