convert/cvs: stop supporting external cvsps
authorPatrick Mezard <pmezard@gmail.com>
Mon, 05 Oct 2009 22:57:15 +0200
changeset 9543 56a5f80556f5
parent 9542 5287de171d74
child 9544 b6b0c42739e9
convert/cvs: stop supporting external cvsps
hgext/convert/__init__.py
hgext/convert/cvs.py
tests/hghave
tests/test-convert-cvs
tests/test-convert-cvs-branch
tests/test-convert-cvs-branch.out
tests/test-convert-cvs-builtincvsps
tests/test-convert-cvs-builtincvsps.out
tests/test-convert-cvs-detectmerge
tests/test-convert-cvs-detectmerge.out
tests/test-convert-cvs-synthetic
tests/test-convert-cvs-synthetic.out
tests/test-convert-cvs.out
tests/test-convert-cvsnt-mergepoints
tests/test-convert.out
--- a/hgext/convert/__init__.py	Mon Oct 05 22:17:39 2009 +0200
+++ b/hgext/convert/__init__.py	Mon Oct 05 22:57:15 2009 +0200
@@ -142,23 +142,8 @@
     converted, and that any directory reorganization in the CVS
     sandbox is ignored.
 
-    Because CVS does not have changesets, it is necessary to collect
-    individual commits to CVS and merge them into changesets. CVS
-    source uses its internal changeset merging code by default but can
-    be configured to call the external 'cvsps' program by setting::
-
-      --config convert.cvsps='cvsps -A -u --cvs-direct -q'
-
-    This option is deprecated and will be removed in Mercurial 1.4.
-
     The options shown are the defaults.
 
-    Internal cvsps is selected by setting ::
-
-      --config convert.cvsps=builtin
-
-    and has a few more configurable options:
-
     --config convert.cvsps.cache=True         (boolean)
         Set to False to disable remote log caching, for testing and
         debugging purposes.
--- a/hgext/convert/cvs.py	Mon Oct 05 22:17:39 2009 +0200
+++ b/hgext/convert/cvs.py	Mon Oct 05 22:57:15 2009 +0200
@@ -22,21 +22,11 @@
             raise NoRepo("%s does not look like a CVS checkout" % path)
 
         checktool('cvs')
-        self.cmd = ui.config('convert', 'cvsps', 'builtin')
-        cvspsexe = self.cmd.split(None, 1)[0]
-        self.builtin = cvspsexe == 'builtin'
-        if not self.builtin:
-            ui.warn(_('warning: support for external cvsps is deprecated and '
-                      'will be removed in Mercurial 1.4\n'))
-
-        if not self.builtin:
-            checktool(cvspsexe)
 
         self.changeset = None
         self.files = {}
         self.tags = {}
         self.lastbranch = {}
-        self.parent = {}
         self.socket = None
         self.cvsroot = open(os.path.join(cvs, "Root")).read()[:-1]
         self.cvsrepo = open(os.path.join(cvs, "Repository")).read()[:-1]
@@ -50,19 +40,13 @@
         self.changeset = {}
 
         maxrev = 0
-        cmd = self.cmd
         if self.rev:
             # TODO: handle tags
             try:
                 # patchset number?
                 maxrev = int(self.rev)
             except ValueError:
-                try:
-                    # date
-                    util.parsedate(self.rev, ['%Y/%m/%d %H:%M:%S'])
-                    cmd = '%s -d "1970/01/01 00:00:01" -d "%s"' % (cmd, self.rev)
-                except util.Abort:
-                    raise util.Abort(_('revision %s is not a patchset number or date') % self.rev)
+                raise util.Abort(_('revision %s is not a patchset number') % self.rev)
 
         d = os.getcwd()
         try:
@@ -71,116 +55,36 @@
             state = 0
             filerevids = {}
 
-            if self.builtin:
-                # builtin cvsps code
-                self.ui.status(_('using builtin cvsps\n'))
-
-                cache = 'update'
-                if not self.ui.configbool('convert', 'cvsps.cache', True):
-                    cache = None
-                db = cvsps.createlog(self.ui, cache=cache)
-                db = cvsps.createchangeset(self.ui, db,
-                      fuzz=int(self.ui.config('convert', 'cvsps.fuzz', 60)),
-                      mergeto=self.ui.config('convert', 'cvsps.mergeto', None),
-                      mergefrom=self.ui.config('convert', 'cvsps.mergefrom', None))
-
-                for cs in db:
-                    if maxrev and cs.id>maxrev:
-                        break
-                    id = str(cs.id)
-                    cs.author = self.recode(cs.author)
-                    self.lastbranch[cs.branch] = id
-                    cs.comment = self.recode(cs.comment)
-                    date = util.datestr(cs.date)
-                    self.tags.update(dict.fromkeys(cs.tags, id))
-
-                    files = {}
-                    for f in cs.entries:
-                        files[f.file] = "%s%s" % ('.'.join([str(x) for x in f.revision]),
-                                                  ['', '(DEAD)'][f.dead])
+            cache = 'update'
+            if not self.ui.configbool('convert', 'cvsps.cache', True):
+                cache = None
+            db = cvsps.createlog(self.ui, cache=cache)
+            db = cvsps.createchangeset(self.ui, db,
+                fuzz=int(self.ui.config('convert', 'cvsps.fuzz', 60)),
+                mergeto=self.ui.config('convert', 'cvsps.mergeto', None),
+                mergefrom=self.ui.config('convert', 'cvsps.mergefrom', None))
 
-                    # add current commit to set
-                    c = commit(author=cs.author, date=date,
-                             parents=[str(p.id) for p in cs.parents],
-                             desc=cs.comment, branch=cs.branch or '')
-                    self.changeset[id] = c
-                    self.files[id] = files
-            else:
-                # external cvsps
-                for l in util.popen(cmd):
-                    if state == 0: # header
-                        if l.startswith("PatchSet"):
-                            id = l[9:-2]
-                            if maxrev and int(id) > maxrev:
-                                # ignore everything
-                                state = 3
-                        elif l.startswith("Date:"):
-                            date = util.parsedate(l[6:-1], ["%Y/%m/%d %H:%M:%S"])
-                            date = util.datestr(date)
-                        elif l.startswith("Branch:"):
-                            branch = l[8:-1]
-                            self.parent[id] = self.lastbranch.get(branch, 'bad')
-                            self.lastbranch[branch] = id
-                        elif l.startswith("Ancestor branch:"):
-                            ancestor = l[17:-1]
-                            # figure out the parent later
-                            self.parent[id] = self.lastbranch[ancestor]
-                        elif l.startswith("Author:"):
-                            author = self.recode(l[8:-1])
-                        elif l.startswith("Tag:") or l.startswith("Tags:"):
-                            t = l[l.index(':')+1:]
-                            t = [ut.strip() for ut in t.split(',')]
-                            if (len(t) > 1) or (t[0] and (t[0] != "(none)")):
-                                self.tags.update(dict.fromkeys(t, id))
-                        elif l.startswith("Log:"):
-                            # switch to gathering log
-                            state = 1
-                            log = ""
-                    elif state == 1: # log
-                        if l == "Members: \n":
-                            # switch to gathering members
-                            files = {}
-                            oldrevs = []
-                            log = self.recode(log[:-1])
-                            state = 2
-                        else:
-                            # gather log
-                            log += l
-                    elif state == 2: # members
-                        if l == "\n": # start of next entry
-                            state = 0
-                            p = [self.parent[id]]
-                            if id == "1":
-                                p = []
-                            if branch == "HEAD":
-                                branch = ""
-                            if branch:
-                                latest = 0
-                                # the last changeset that contains a base
-                                # file is our parent
-                                for r in oldrevs:
-                                    latest = max(filerevids.get(r, 0), latest)
-                                if latest:
-                                    p = [latest]
+            for cs in db:
+                if maxrev and cs.id>maxrev:
+                    break
+                id = str(cs.id)
+                cs.author = self.recode(cs.author)
+                self.lastbranch[cs.branch] = id
+                cs.comment = self.recode(cs.comment)
+                date = util.datestr(cs.date)
+                self.tags.update(dict.fromkeys(cs.tags, id))
 
-                            # add current commit to set
-                            c = commit(author=author, date=date, parents=p,
-                                       desc=log, branch=branch)
-                            self.changeset[id] = c
-                            self.files[id] = files
-                        else:
-                            colon = l.rfind(':')
-                            file = l[1:colon]
-                            rev = l[colon+1:-2]
-                            oldrev, rev = rev.split("->")
-                            files[file] = rev
+                files = {}
+                for f in cs.entries:
+                    files[f.file] = "%s%s" % ('.'.join([str(x) for x in f.revision]),
+                                              ['', '(DEAD)'][f.dead])
 
-                            # save some information for identifying branch points
-                            oldrevs.append("%s:%s" % (oldrev, file))
-                            filerevids["%s:%s" % (rev, file)] = id
-                    elif state == 3:
-                        # swallow all input
-                        continue
+                # add current commit to set
+                c = commit(author=cs.author, date=date,
+                           parents=[str(p.id) for p in cs.parents],
+                           desc=cs.comment, branch=cs.branch or '')
+                self.changeset[id] = c
+                self.files[id] = files
 
             self.heads = self.lastbranch.values()
         finally:
--- a/tests/hghave	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/hghave	Mon Oct 05 22:57:15 2009 +0200
@@ -47,9 +47,6 @@
     re = r'Concurrent Versions System.*?server'
     return matchoutput('cvs --version 2>&1', re)
 
-def has_cvsps():
-    return matchoutput('cvsps -h -q 2>&1', r'cvsps version', True)
-
 def has_darcs():
     return matchoutput('darcs --version', r'2\.[2-9]', True)
 
@@ -186,7 +183,6 @@
     "bzr": (has_bzr, "Canonical's Bazaar client"),
     "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"),
     "cvs": (has_cvs, "cvs client/server"),
-    "cvsps": (has_cvsps, "cvsps utility"),
     "darcs": (has_darcs, "darcs client"),
     "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),
     "execbit": (has_executablebit, "executable bit"),
--- a/tests/test-convert-cvs	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs	Mon Oct 05 22:57:15 2009 +0200
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-"$TESTDIR/hghave" cvs cvsps || exit 80
+"$TESTDIR/hghave" cvs || exit 80
 
 cvscall()
 {
-    cvs -f $@
+    cvs -f "$@"
 }
 
 hgcat()
@@ -12,12 +12,9 @@
     hg --cwd src-hg cat -r tip "$1"
 }
 
-# Test legacy configuration with external cvsps
 echo "[extensions]" >> $HGRCPATH
 echo "convert = " >> $HGRCPATH
 echo "graphlog = " >> $HGRCPATH
-echo "[convert]" >> $HGRCPATH
-echo "cvsps=cvsps -A -u --cvs-direct -q" >> $HGRCPATH
 
 echo % create cvs repository
 mkdir cvsrepo
@@ -95,11 +92,29 @@
 
 echo % convert again
 hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat a
 hgcat b/c
 
 echo % convert again with --filemap
 hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
 hgcat b/c
 hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
+
+echo % commit a new revision with funny log message
+cd src
+sleep 1
+echo e >> a
+cvscall -q commit -m'funny
+----------------------------
+log message' . | grep '<--' |\
+    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
+cd ..
+
+echo % convert again
+hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
+
+echo "graphlog = " >> $HGRCPATH
 hg -R src-hg glog --template '{rev} ({branches}) {desc} files: {files}\n'
+
+echo % testing debugcvsps
+cd src
+hg debugcvsps | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/' 
--- a/tests/test-convert-cvs-branch	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-branch	Mon Oct 05 22:57:15 2009 +0200
@@ -14,7 +14,6 @@
 echo "convert = " >> $HGRCPATH
 echo "graphlog = " >> $HGRCPATH
 echo "[convert]" >> $HGRCPATH
-echo "cvsps=builtin" >> $HGRCPATH
 echo "cvsps.cache=0" >> $HGRCPATH
 
 echo % create cvs repository
--- a/tests/test-convert-cvs-branch.out	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-branch.out	Mon Oct 05 22:57:15 2009 +0200
@@ -25,7 +25,6 @@
 initializing destination src-hg repository
 connecting to cvsrepo
 scanning source...
-using builtin cvsps
 collecting CVS rlog
 7 log entries
 creating changesets
--- a/tests/test-convert-cvs-builtincvsps	Mon Oct 05 22:17:39 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-#!/bin/sh
-
-"$TESTDIR/hghave" cvs || exit 80
-
-cvscall()
-{
-    cvs -f "$@"
-}
-
-hgcat()
-{
-    hg --cwd src-hg cat -r tip "$1"
-}
-
-echo "[extensions]" >> $HGRCPATH
-echo "convert = " >> $HGRCPATH
-echo "graphlog = " >> $HGRCPATH
-echo "[convert]" >> $HGRCPATH
-echo "cvsps=builtin" >> $HGRCPATH
-
-echo % create cvs repository
-mkdir cvsrepo
-cd cvsrepo
-CVSROOT=`pwd`
-export CVSROOT
-CVS_OPTIONS=-f
-export CVS_OPTIONS
-cd ..
-
-cvscall -q -d "$CVSROOT" init
-
-echo % create source directory
-mkdir src-temp
-cd src-temp
-echo a > a
-mkdir b
-cd b
-echo c > c
-cd ..
-
-echo % import source directory
-cvscall -q import -m import src INITIAL start
-cd ..
-
-echo % checkout source directory
-cvscall -q checkout src
-
-echo % commit a new revision changing b/c
-cd src
-sleep 1
-echo c >> b/c
-cvscall -q commit -mci0 . | grep '<--' |\
-    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
-cd ..
-
-echo % convert fresh repo
-hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat a
-hgcat b/c
-
-echo % convert fresh repo with --filemap
-echo include b/c > filemap
-hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat b/c
-hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
-
-echo % commit new file revisions
-cd src
-echo a >> a
-echo c >> b/c
-cvscall -q commit -mci1 . | grep '<--' |\
-    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
-cd ..
-
-echo % convert again
-hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat a
-hgcat b/c
-
-echo % convert again with --filemap
-hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat b/c
-hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
-
-echo % commit branch
-cd src
-cvs -q update -r1.1 b/c
-cvs -q tag -b branch
-cvs -q update -r branch > /dev/null
-echo d >> b/c
-cvs -q commit -mci2 . | grep '<--' |\
-    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
-cd ..
-
-echo % convert again
-hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat b/c
-
-echo % convert again with --filemap
-hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-hgcat b/c
-hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
-
-echo % commit a new revision with funny log message
-cd src
-sleep 1
-echo e >> a
-cvscall -q commit -m'funny
-----------------------------
-log message' . | grep '<--' |\
-    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
-cd ..
-
-echo % convert again
-hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
-
-echo "graphlog = " >> $HGRCPATH
-hg -R src-hg glog --template '{rev} ({branches}) {desc} files: {files}\n'
-
-echo % testing debugcvsps
-cd src
-hg debugcvsps | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/' 
--- a/tests/test-convert-cvs-builtincvsps.out	Mon Oct 05 22:17:39 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-% create cvs repository
-% create source directory
-% import source directory
-N src/a
-N src/b/c
-
-No conflicts created by this import
-
-% checkout source directory
-U src/a
-U src/b/c
-% commit a new revision changing b/c
-checking in src/b/c,v
-% convert fresh repo
-initializing destination src-hg repository
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-5 log entries
-creating changesets
-3 changeset entries
-sorting...
-converting...
-2 Initial revision
-1 import
-0 ci0
-updating tags
-a
-c
-c
-% convert fresh repo with --filemap
-initializing destination src-filemap repository
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-5 log entries
-creating changesets
-3 changeset entries
-sorting...
-converting...
-2 Initial revision
-1 import
-filtering out empty revision
-rolling back last transaction
-0 ci0
-updating tags
-c
-c
-2 update tags files: .hgtags
-1 ci0 files: b/c
-0 Initial revision files: b/c
-% commit new file revisions
-checking in src/a,v
-checking in src/b/c,v
-% convert again
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-7 log entries
-creating changesets
-4 changeset entries
-sorting...
-converting...
-0 ci1
-a
-a
-c
-c
-c
-% convert again with --filemap
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-7 log entries
-creating changesets
-4 changeset entries
-sorting...
-converting...
-0 ci1
-c
-c
-c
-3 ci1 files: b/c
-2 update tags files: .hgtags
-1 ci0 files: b/c
-0 Initial revision files: b/c
-% commit branch
-U b/c
-T a
-T b/c
-checking in src/b/c,v
-% convert again
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-8 log entries
-creating changesets
-5 changeset entries
-sorting...
-converting...
-0 ci2
-c
-d
-% convert again with --filemap
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-8 log entries
-creating changesets
-5 changeset entries
-sorting...
-converting...
-0 ci2
-c
-d
-4 ci2 files: b/c
-3 ci1 files: b/c
-2 update tags files: .hgtags
-1 ci0 files: b/c
-0 Initial revision files: b/c
-% commit a new revision with funny log message
-checking in src/a,v
-% convert again
-connecting to cvsrepo
-scanning source...
-using builtin cvsps
-collecting CVS rlog
-9 log entries
-creating changesets
-6 changeset entries
-sorting...
-converting...
-0 funny
-o  6 (branch) funny
-|  ----------------------------
-|  log message files: a
-o  5 (branch) ci2 files: b/c
-
-o  4 () ci1 files: a b/c
-|
-o  3 () update tags files: .hgtags
-|
-o  2 () ci0 files: b/c
-|
-| o  1 (INITIAL) import files:
-|/
-o  0 () Initial revision files: a b/c
-
-% testing debugcvsps
-collecting CVS rlog
-9 log entries
-creating changesets
-8 changeset entries
----------------------
-PatchSet 1 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Branchpoints: INITIAL 
-Log:
-Initial revision
-
-Members: 
-	a:INITIAL->1.1 
-
----------------------
-PatchSet 2 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Branchpoints: INITIAL, branch 
-Log:
-Initial revision
-
-Members: 
-	b/c:INITIAL->1.1 
-
----------------------
-PatchSet 3 
-Date:
-Author:
-Branch: INITIAL
-Tag: start 
-Log:
-import
-
-Members: 
-	a:1.1->1.1.1.1 
-	b/c:1.1->1.1.1.1 
-
----------------------
-PatchSet 4 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Log:
-ci0
-
-Members: 
-	b/c:1.1->1.2 
-
----------------------
-PatchSet 5 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Branchpoints: branch 
-Log:
-ci1
-
-Members: 
-	a:1.1->1.2 
-
----------------------
-PatchSet 6 
-Date:
-Author:
-Branch: HEAD
-Tag: (none) 
-Log:
-ci1
-
-Members: 
-	b/c:1.2->1.3 
-
----------------------
-PatchSet 7 
-Date:
-Author:
-Branch: branch
-Tag: (none) 
-Log:
-ci2
-
-Members: 
-	b/c:1.1->1.1.2.1 
-
----------------------
-PatchSet 8 
-Date:
-Author:
-Branch: branch
-Tag: (none) 
-Log:
-funny
-----------------------------
-log message
-
-Members: 
-	a:1.2->1.2.2.1 
-
--- a/tests/test-convert-cvs-detectmerge	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-detectmerge	Mon Oct 05 22:57:15 2009 +0200
@@ -34,7 +34,6 @@
 echo "convert = " >> $HGRCPATH
 echo "graphlog = " >> $HGRCPATH
 echo "[convert]" >> $HGRCPATH
-echo "cvsps=builtin" >> $HGRCPATH
 echo "cvsps.cache=0" >> $HGRCPATH
 echo "cvsps.mergefrom=\[MERGE from (\S+)\]" >> $HGRCPATH
 
--- a/tests/test-convert-cvs-detectmerge.out	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-detectmerge.out	Mon Oct 05 22:57:15 2009 +0200
@@ -77,7 +77,6 @@
 initializing destination proj.hg repository
 connecting to *REPO*
 scanning source...
-using builtin cvsps
 collecting CVS rlog
 12 log entries
 creating changesets
--- a/tests/test-convert-cvs-synthetic	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-synthetic	Mon Oct 05 22:57:15 2009 +0200
@@ -8,8 +8,6 @@
 echo "[extensions]" >> $HGRCPATH
 echo "convert = " >> $HGRCPATH
 echo "graphlog = " >> $HGRCPATH
-echo "[convert]" >> $HGRCPATH
-echo "cvsps=builtin" >> $HGRCPATH
 
 echo % create cvs repository with one project
 mkdir cvsrepo
--- a/tests/test-convert-cvs-synthetic.out	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs-synthetic.out	Mon Oct 05 22:57:15 2009 +0200
@@ -66,7 +66,6 @@
 initializing destination proj.hg repository
 connecting to *REPO*
 scanning source...
-using builtin cvsps
 collecting CVS rlog
 15 log entries
 creating changesets
@@ -102,7 +101,6 @@
 initializing destination proj.hg2 repository
 connecting to *REPO*
 scanning source...
-using builtin cvsps
 collecting CVS rlog
 15 log entries
 creating changesets
--- a/tests/test-convert-cvs.out	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvs.out	Mon Oct 05 22:57:15 2009 +0200
@@ -12,10 +12,13 @@
 % commit a new revision changing b/c
 checking in src/b/c,v
 % convert fresh repo
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 initializing destination src-hg repository
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+5 log entries
+creating changesets
+3 changeset entries
 sorting...
 converting...
 2 Initial revision
@@ -26,10 +29,13 @@
 c
 c
 % convert fresh repo with --filemap
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 initializing destination src-filemap repository
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+5 log entries
+creating changesets
+3 changeset entries
 sorting...
 converting...
 2 Initial revision
@@ -47,9 +53,12 @@
 checking in src/a,v
 checking in src/b/c,v
 % convert again
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+7 log entries
+creating changesets
+4 changeset entries
 sorting...
 converting...
 0 ci1
@@ -59,9 +68,12 @@
 c
 c
 % convert again with --filemap
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+7 log entries
+creating changesets
+4 changeset entries
 sorting...
 converting...
 0 ci1
@@ -78,19 +90,24 @@
 T b/c
 checking in src/b/c,v
 % convert again
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+8 log entries
+creating changesets
+5 changeset entries
 sorting...
 converting...
 0 ci2
-a
 c
 d
 % convert again with --filemap
-warning: support for external cvsps is deprecated and will be removed in Mercurial 1.4
 connecting to cvsrepo
 scanning source...
+collecting CVS rlog
+8 log entries
+creating changesets
+5 changeset entries
 sorting...
 converting...
 0 ci2
@@ -101,15 +118,137 @@
 2 update tags files: .hgtags
 1 ci0 files: b/c
 0 Initial revision files: b/c
+% commit a new revision with funny log message
+checking in src/a,v
+% convert again
+connecting to cvsrepo
+scanning source...
+collecting CVS rlog
+9 log entries
+creating changesets
+6 changeset entries
+sorting...
+converting...
+0 funny
+o  6 (branch) funny
+|  ----------------------------
+|  log message files: a
 o  5 (branch) ci2 files: b/c
+
+o  4 () ci1 files: a b/c
 |
-| o  4 () ci1 files: a b/c
-| |
-| o  3 () update tags files: .hgtags
-| |
-| o  2 () ci0 files: b/c
-|/
+o  3 () update tags files: .hgtags
+|
+o  2 () ci0 files: b/c
+|
 | o  1 (INITIAL) import files:
 |/
 o  0 () Initial revision files: a b/c
 
+% testing debugcvsps
+collecting CVS rlog
+9 log entries
+creating changesets
+8 changeset entries
+---------------------
+PatchSet 1 
+Date:
+Author:
+Branch: HEAD
+Tag: (none) 
+Branchpoints: INITIAL 
+Log:
+Initial revision
+
+Members: 
+	a:INITIAL->1.1 
+
+---------------------
+PatchSet 2 
+Date:
+Author:
+Branch: HEAD
+Tag: (none) 
+Branchpoints: INITIAL, branch 
+Log:
+Initial revision
+
+Members: 
+	b/c:INITIAL->1.1 
+
+---------------------
+PatchSet 3 
+Date:
+Author:
+Branch: INITIAL
+Tag: start 
+Log:
+import
+
+Members: 
+	a:1.1->1.1.1.1 
+	b/c:1.1->1.1.1.1 
+
+---------------------
+PatchSet 4 
+Date:
+Author:
+Branch: HEAD
+Tag: (none) 
+Log:
+ci0
+
+Members: 
+	b/c:1.1->1.2 
+
+---------------------
+PatchSet 5 
+Date:
+Author:
+Branch: HEAD
+Tag: (none) 
+Branchpoints: branch 
+Log:
+ci1
+
+Members: 
+	a:1.1->1.2 
+
+---------------------
+PatchSet 6 
+Date:
+Author:
+Branch: HEAD
+Tag: (none) 
+Log:
+ci1
+
+Members: 
+	b/c:1.2->1.3 
+
+---------------------
+PatchSet 7 
+Date:
+Author:
+Branch: branch
+Tag: (none) 
+Log:
+ci2
+
+Members: 
+	b/c:1.1->1.1.2.1 
+
+---------------------
+PatchSet 8 
+Date:
+Author:
+Branch: branch
+Tag: (none) 
+Log:
+funny
+----------------------------
+log message
+
+Members: 
+	a:1.2->1.2.2.1 
+
--- a/tests/test-convert-cvsnt-mergepoints	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert-cvsnt-mergepoints	Mon Oct 05 22:57:15 2009 +0200
@@ -29,8 +29,6 @@
 echo "[extensions]" >> $HGRCPATH
 echo "convert = " >> $HGRCPATH
 echo "graphlog = " >> $HGRCPATH
-echo "[convert]" >> $HGRCPATH
-echo "cvsps=builtin" >> $HGRCPATH
 
 echo "% create cvs repository"
 mkdir cvsmaster
--- a/tests/test-convert.out	Mon Oct 05 22:17:39 2009 +0200
+++ b/tests/test-convert.out	Mon Oct 05 22:57:15 2009 +0200
@@ -117,23 +117,8 @@
     starting directory will be converted, and that any directory
     reorganization in the CVS sandbox is ignored.
 
-    Because CVS does not have changesets, it is necessary to collect
-    individual commits to CVS and merge them into changesets. CVS source uses
-    its internal changeset merging code by default but can be configured to
-    call the external 'cvsps' program by setting:
-
-      --config convert.cvsps='cvsps -A -u --cvs-direct -q'
-
-    This option is deprecated and will be removed in Mercurial 1.4.
-
     The options shown are the defaults.
 
-    Internal cvsps is selected by setting
-
-      --config convert.cvsps=builtin
-
-    and has a few more configurable options:
-
     --config convert.cvsps.cache=True         (boolean)
         Set to False to disable remote log caching, for testing and debugging
         purposes.