# HG changeset patch # User Mathieu Clabaut # Date 2010-03-09 11:09:57 # Node ID b4b16e90712fc93a9601f4cb9dea05abc0ef7de2 # Parent a778a367c20bb0d177f8db3963183fe659d14020 convert: teach cvsps to handle . repository (issue1649) For a CVS repository checked out with "cvs co .", the prefix used to strip of what we get from CVS was previously erroneously set to "repopath/.". We now prevent the dot to be added. Test folded in test-convert-cvs and simplified by Patrick Mézard . diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py --- a/hgext/convert/cvsps.py +++ b/hgext/convert/cvsps.py @@ -124,9 +124,9 @@ def createlog(ui, directory=None, root=" # Get the real directory in the repository try: prefix = open(os.path.join('CVS','Repository')).read().strip() + directory = prefix if prefix == ".": prefix = "" - directory = prefix except IOError: raise logerror('Not a CVS sandbox') @@ -184,7 +184,11 @@ def createlog(ui, directory=None, root=" p = util.normpath(getrepopath(root)) if not p.endswith('/'): p += '/' - prefix = p + util.normpath(prefix) + if prefix: + # looks like normpath replaces "" by "." + prefix = p + util.normpath(prefix) + else: + prefix = p cmd.append(['log', 'rlog'][rlog]) if date: # no space between option and date string diff --git a/tests/test-convert-cvs b/tests/test-convert-cvs --- a/tests/test-convert-cvs +++ b/tests/test-convert-cvs @@ -75,6 +75,15 @@ hg convert --filemap filemap src src-fil hgcat b/c hg -R src-filemap log --template '{rev} {desc} files: {files}\n' +echo % 'convert full repository (issue1649)' +cvscall -q -d "$CVSROOT" checkout -d srcfull "." | grep -v CVSROOT +ls srcfull +hg convert srcfull srcfull-hg \ + | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g' \ + | grep -v 'log entries' | grep -v 'hook:' +hg cat -r tip srcfull-hg/src/a +hg cat -r tip srcfull-hg/src/b/c + echo % commit new file revisions cd src echo a >> a diff --git a/tests/test-convert-cvs.out b/tests/test-convert-cvs.out --- a/tests/test-convert-cvs.out +++ b/tests/test-convert-cvs.out @@ -53,6 +53,28 @@ c 2 update tags files: .hgtags 1 ci0 files: b/c 0 Initial revision files: b/c +% convert full repository (issue1649) +U srcfull/src/a +U srcfull/src/b/c +CVS +CVSROOT +src +initializing destination srcfull-hg repository +connecting to cvsrepo +scanning source... +collecting CVS rlog +creating changesets +4 changeset entries +sorting... +converting... +3 Initial revision +2 import +1 initial checkin +0 ci0 +updating tags +a +c +c % commit new file revisions checking in src/a,v checking in src/b/c,v