view tests/test-convert-cvs-branch.out @ 9116:f90bbf1ea09f

inotify: fix issue1375, add a test. The biggest problem was the data structure, which did not allow changing a file into a directory or vice versa. This problem is fixed by b55d44719b47. The walk() method also had an issue in this case: - we know 'path' as a directory. inotify server sleeps. - 'path' is deleted - 'path' is recreated as a file - the server catches up here, and see the deletion. it instantiates a scan(), which in its turn calls for walk(repo, path). - walk() then assumes that 'path' is a directory and calls os.listdir on it, which raises an OSError(errno.ENOTDIR) Catch the error, and yield the file instead of the directory contents.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Mon, 13 Jul 2009 16:49:05 +0200
parents 6019e6517f95
children 56a5f80556f5
line wrap: on
line source

% create cvs repository
% Create a new project


N src/a
N src/b
No conflicts created by this import
cvs checkout: Updating src
U src/a
U src/b
% Branch the project
cvs tag: Tagging .
T a
T b
cvs update: Updating .
% Modify file a, then b, then a
cvs commit: Examining .
checking in src/a,v
cvs commit: Examining .
checking in src/b,v
cvs commit: Examining .
checking in src/a,v
% Convert
assuming destination src-hg
initializing destination src-hg repository
connecting to cvsrepo
scanning source...
using builtin cvsps
collecting CVS rlog
7 log entries
creating changesets
5 changeset entries
sorting...
converting...
4 Initial revision
3 init
2 mod a
1 mod b
0 mod a again
updating tags
% Check the result
o  5 () update tags files: .hgtags
|
| o  4 (BRANCH) mod a again files: a
| |
| o  3 (BRANCH) mod b files: b
| |
| o  2 (BRANCH) mod a files: a
| |
| o  1 (v0) init files:
|/
o  0 () Initial revision files: a b


% issue 1447
cvs -f -Q co -d cvswork2 foo
cvs -f -Q add a.txt b.txt
cvs -f ci -m Initial commit
cvs -f ci -m Fix b on HEAD
cvs -f ci -m Small fix in a on HEAD
cvs -f -Q tag -b BRANCH
cvs -f -Q up -P -rBRANCH
cvs -f ci -m Change on BRANCH in b
collecting CVS rlog
5 log entries
creating changesets
4 changeset entries
---------------------
PatchSet 1 
Date:
Author:
Branch: HEAD
Tag: (none) 
Log:
Initial commit

Members: 
	a.txt:INITIAL->1.1 
	b.txt:INITIAL->1.1 

---------------------
PatchSet 2 
Date:
Author:
Branch: HEAD
Tag: (none) 
Branchpoints: BRANCH 
Parent: 1
Log:
Fix b on HEAD

Members: 
	b.txt:1.1->1.2 

---------------------
PatchSet 3 
Date:
Author:
Branch: HEAD
Tag: (none) 
Branchpoints: BRANCH 
Parent: 2
Log:
Small fix in a on HEAD

Members: 
	a.txt:1.1->1.2 

---------------------
PatchSet 4 
Date:
Author:
Branch: BRANCH
Tag: (none) 
Parent: 3
Log:
Change on BRANCH in b

Members: 
	b.txt:1.2->1.2.2.1