--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: cscvs: can't create any cache
- From: Guido Guenther <agx@sigxcpu.org>
- Date: Wed, 3 Aug 2005 15:14:54 +0200
- Message-id: <20050803131454.GA24528@bogon.ms20.nix>
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
--- End Message ---