Package: cscvs
Version: 1.0pre25.patch.79-4
Severity: normal
Tags: patch

Hi,
trying to import any cvs repository gives for me:

cscvs cache -b
cvs [log aborted]: received broken pipe signal
Set remote repository location to /cvs/debian
Traceback (most recent call last):
  File "/usr/share/cscvs/cscvs", line 251, in ?
    retval = main(sys.argv)
  File "/usr/share/cscvs/cscvs", line 237, in main
    try: callSubcommand()
  File "/usr/share/cscvs/cscvs", line 90, in callSubcommand
    Runner.getRunner(config, module).run()
  File "/usr/share/cscvs/modules/Runner.py", line 53, in run
    apply(self.target, self.args)
  File "/usr/share/cscvs/cmds/cache.py", line 212, in cache
    if not mode == MODE_UNSET: update_cache(config, pipe)
  File "/usr/share/cscvs/cmds/cache.py", line 92, in update_cache
    parser = CVS.Parser.Parser(config, pipe)
  File "/usr/share/cscvs/modules/CVS/Parser.py", line 135, in __init__
    total_revs = self._parse_revs(filename, tags, branches, total_revs)
  File "/usr/share/cscvs/modules/CVS/Parser.py", line 271, in _parse_revs
    raise error, "bad rlog parser, no cookie!"
Parser error: bad rlog parser, no cookie!
cvs [rlog aborted]: received broken pipe signal

This is due to the fact, that the rlog parser expects another date
format, in my case it is e.g.:

date: 2002-08-29 14:44:59 +0000;  author: agx;  state: dead;  lines: +0 -0

so I need the following patch to get cscvs to work:

--- /usr/share/cscvs/modules/CVS/Parser.py.old  2005-08-03 15:11:05.000000000 
+0200
+++ /usr/share/cscvs/modules/CVS/Parser.py      2005-08-03 15:11:14.000000000 
+0200
@@ -80,13 +80,13 @@
        _re_rev_start = re.compile("^revision\s+([0-9.]+).*")
 
        _re_rev_data_add = re.compile(
-               "^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+"\
+               
"^date:\s+(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)\s+[+|-]{1}(\d+);\s+"\
                "author:\s+([^;]+);\s+"\
                "state:\s+([^;]+);\s+"\
                "lines:\s+\+(\d+)\s+\-(\d+)$")
 
        _re_rev_data = re.compile(
-               "^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+"\
+               
"^date:\s+(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)\s+[+|-]{1}(\d+);\s+"\
                "author:\s+([^;]+);\s+"\
                "state:\s+([^;]+);$")
        _re_rev_branches = re.compile("^branches:\s+([0-9.]+);")
@@ -277,8 +277,9 @@
                hour = string.atoi(groups[3])
                minute = string.atoi(groups[4])
                second = string.atoi(groups[5])
-               author = groups[6]
-               state = groups[7]
+               offset = string.atoi(groups[6])
+               author = groups[7]
+               state = groups[8]
 
                self._debug("groups %d %d %d %d:%d:%d %s %s" % (year, month, 
day, hour, minute, second, author, state))
 
@@ -287,8 +288,8 @@
                # this could be a "CHANGE" or "REMOVE", you can tell if the
                # file has been removed by looking if state == 'dead'
                try:
-                       pluscount = int(groups[8])
-                       minuscount = int(groups[9])
+                       pluscount = int(groups[9])
+                       minuscount = int(groups[10])
                except IndexError:
                        pluscount = 0
                        minuscount = 0

(adjusting it to read the date in iso8601 format and the offset to gmt).
Whith that the import works fine. I don't have any special cvs options
set, so I'm a bit puzzled why this seems to work for all other people.
The patch could be made more robust by using named groups, etc. But
maybe I should modify it to parse different date/time formats anyway?
Cheers,
 -- Guido

-- System Information:
Debian Release: testing/unstable
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'unstable')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.13-rc3-agx0
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)

Versions of packages cscvs depends on:
ii  python                        2.3.5-3    An interactive high-level object-o
ii  python-sqlite                 1.0.1-2    python interface to SQLite
ii  tla                           1.3-1      arch revision control system

cscvs recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to