Mercurial > hg
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