view tests/test-backout.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 708938509732
children f0bfe42c7b1f
line wrap: on
line source

# should complain
abort: please specify a revision to backout
abort: please specify just one revision
# basic operation
adding a
reverting a
changeset 2:2929462c3dff backs out changeset 1:a820f4f40a57
a
# file that was removed is recreated
adding a
adding a
changeset 2:de31bdc76c0d backs out changeset 1:76862dcce372
content
# backout of backout is as if nothing happened
removing a
changeset 3:7f6d0f120113 backs out changeset 2:de31bdc76c0d
cat: a: No such file or directory
# across branch
adding a
adding b
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
abort: cannot backout change on a different branch
adding c
created new head
abort: cannot backout change on a different branch
# backout with merge
adding a
reverting a
created new head
changeset 3:26b8ccb9ad91 backs out changeset 1:5a50a024c182
merging with changeset 3:26b8ccb9ad91
merging a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
line 1
line 2
line 3
# backout should not back out subsequent changesets
adding a
adding b
reverting a
created new head
changeset 3:3202beb76721 backs out changeset 1:22bca4c721e5
the backout changeset is a new head - do not forget to merge
(use "backout --merge" if you want to auto-merge)
b
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding a
adding b
adding c
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding d
created new head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
# backout of merge should fail
abort: cannot backout a merge changeset without --parent
# backout of merge with bad parent should fail
abort: cb9a9f314b8b is not a parent of b2f3bb92043e
# backout of non-merge with parent should fail
abort: cannot use --parent on non-merge changeset
# backout with valid parent should be ok
removing d
changeset 5:10e5328c8435 backs out changeset 4:b2f3bb92043e
rolling back last transaction
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
removing c
changeset 5:033590168430 backs out changeset 4:b2f3bb92043e
# named branches
adding default
marked working directory as branch branch1
adding file1
marked working directory as branch branch2
adding file2
removing file1
created new head
changeset 3:d4e8f6db59fb backs out changeset 1:bf1602f437f3
the backout changeset is a new head - do not forget to merge
(use "backout --merge" if you want to auto-merge)
% on branch2 with branch1 not merged, so file1 should still exist:
45bbcd363bf0 (branch2)
C default
C file1
C file2
% on branch2 with branch1 merged, so file1 should be gone:
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
22149cdde76d (branch2) tip
C default
C file2
% on branch1, so no file1 and file2:
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
bf1602f437f3 (branch1)
C default
C file1