annotate tests/test-merge-closedheads.t @ 14927:2aa3e07b2f07

posix, windows: introduce cachestat This class contains a stat result, and possibly other file info to reliably determine between two points in time whether a file has changed. Uniquely identifying a file gives us that reliability because we either atomic rename or append. So one of two will happen: the file 'id' will change, or the size of the file will change. posix implements it simply by calling os.stat() and checking if the result has st_ino. For now on Windows we always assume the path is uncacheable. This can be improved on NTFS due to file IDs: http://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx So we need to find out if a file path is on an NTFS drive, for that we have: - GetVolumeInformation, which unfortunately only works with a root path (but is available on XP) - GetVolumeInformationByHandleW, works on a full file path but requires Vista or higher
author Idan Kamara <idankk86@gmail.com>
date Mon, 25 Jul 2011 15:03:02 +0300
parents 4134686b83e1
children 41885892796e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
1 $ hgcommit() {
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11971
diff changeset
2 > hg commit -u user "$@"
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
3 > }
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
4
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
5 $ hg init clhead
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
6 $ cd clhead
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
7
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
8 $ touch foo && hg add && hgcommit -m 'foo'
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
9 adding foo
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
10 $ touch bar && hg add && hgcommit -m 'bar'
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
11 adding bar
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
12 $ touch baz && hg add && hgcommit -m 'baz'
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
13 adding baz
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
14
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
15 $ echo "flub" > foo
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
16 $ hgcommit -m "flub"
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
17 $ echo "nub" > foo
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
18 $ hgcommit -m "nub"
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
19
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
20 $ hg up -C 2
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
21 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
22
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
23 $ echo "c1" > c1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
24 $ hg add c1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
25 $ hgcommit -m "c1"
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
26 created new head
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
27 $ echo "c2" > c1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
28 $ hgcommit -m "c2"
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
29
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
30 $ hg up -C 2
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
31 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
32
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
33 $ echo "d1" > d1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
34 $ hg add d1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
35 $ hgcommit -m "d1"
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
36 created new head
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
37 $ echo "d2" > d1
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
38 $ hgcommit -m "d2"
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
39 $ hg tag -l good
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
40
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
41 fail with three heads
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
42 $ hg up -C good
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
43 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
44 $ hg merge
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
45 abort: branch 'default' has 3 heads - please merge with an explicit rev
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
46 (run 'hg heads .' to see heads)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
47 [255]
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
48
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
49 close one of the heads
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
50 $ hg up -C 6
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
51 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
52 $ hgcommit -m 'close this head' --close-branch
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
53
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
54 succeed with two open heads
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
55 $ hg up -C good
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
56 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
57 $ hg up -C good
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
58 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
59 $ hg merge
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
60 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
61 (branch merge, don't forget to commit)
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
62 $ hgcommit -m 'merged heads'
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
63
11516
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
64 hg update -C 8
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
65 $ hg update -C 8
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
66 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
8694
ca8d05e1f1d1 localrepo: set heads and branchheads to be closed=False by default
John Mulligan <phlogistonjohn@asynchrono.us>
parents:
diff changeset
67
11516
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
68 hg branch some-branch
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
69 $ hg branch some-branch
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
70 marked working directory as branch some-branch
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
71 hg commit
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
72 $ hgcommit -m 'started some-branch'
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
73 hg commit --close-branch
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
74 $ hgcommit --close-branch -m 'closed some-branch'
11516
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
75
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
76 hg update default
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
77 $ hg update default
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
78 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
11516
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
79 hg merge some-branch
11971
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
80 $ hg merge some-branch
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
81 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
82 (branch merge, don't forget to commit)
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
83 hg commit (no reopening of some-branch)
71105dd7d4df tests: unify test-merge-closedheads
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 11516
diff changeset
84 $ hgcommit -m 'merge with closed branch'
11516
ee876e42dd74 test-merge-closedheads: test cc982ff2dcf8
Martin Geisler <mg@aragost.com>
parents: 8694
diff changeset
85