setup.py: subprocess instead of os.popen, sys.stderr.write instead of print
Also check that .hg is a directory.
% 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
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
a
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
6 changeset entries
---------------------
PatchSet 1
Date:
Author:
Branch: HEAD
Tag: (none)
Log:
Initial revision
Members:
a:INITIAL->1.1
b/c:INITIAL->1.1
---------------------
PatchSet 2
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 3
Date:
Author:
Branch: HEAD
Tag: (none)
Log:
ci0
Members:
b/c:1.1->1.2
---------------------
PatchSet 4
Date:
Author:
Branch: HEAD
Tag: (none)
Log:
ci1
Members:
a:1.1->1.2
b/c:1.2->1.3
---------------------
PatchSet 5
Date:
Author:
Branch: branch
Tag: (none)
Log:
ci2
Members:
b/c:1.1->1.1.2.1
---------------------
PatchSet 6
Date:
Author:
Branch: branch
Tag: (none)
Log:
funny
----------------------------
log message
Members:
a:1.2->1.2.2.1