##// END OF EJS Templates
share: wrap bmstore._writerepo for transaction sensitivity (issue4940)...
share: wrap bmstore._writerepo for transaction sensitivity (issue4940) 46dec89fe888 made 'bmstore.write()' transaction sensitive, to restore original bookmarks correctly at failure of a transaction. For example, shelve and unshelve imply steps below: before 46dec89fe888: 1. move active bookmark forward at internal rebasing 2. 'bmstore.write()' writes updated ones into .hg/bookmarks 3. rollback transaction to remove internal commits 4. restore updated bookmarks manually after 46dec89fe888: 1. move active bookmark forward at internal rebasing 2. 'bmstore.write()' doesn't write updated ones into .hg/bookmarks (these are written into .hg/bookmarks.pending, if external hook is spawn) 3. rollback transaction to remove internal commits 4. .hg/bookmarks should be clean, because it isn't changed while transaction running: see (2) above But if shelve or unshelve is executed in the repository created with "shared bookmarks" ("hg share -B"), this doesn't work as expected, because: - share extension makes 'bmstore.write()' write updated bookmarks into .hg/bookmarks of shared source repository regardless of transaction activity, and - intentional transaction failure at the end of shelve/unshelve doesn't restore already updated .hg/bookmarks of shared source This patch makes share extension wrap 'bmstore._writerepo()' instead of 'bmstore.write()', because the former is used to actually write bookmark changes out.

File last commit:

r26420:2fc86d92 default
r26933:a7eecd02 stable
Show More
test-issue522.t
55 lines | 1.6 KiB | text/troff | Tads3Lexer
Matt Mackall
urls: bulk-change BTS urls to new location
r26420 https://bz.mercurial-scm.org/522
Adrian Buehlmann
tests: unify test-issue*
r12195
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 In the merge below, the file "foo" has the same contents in both
parents, but if we look at the file-level history, we'll notice that
the version in p1 is an ancestor of the version in p2. This test makes
sure that we'll use the version from p2 in the manifest of the merge
revision.
Adrian Buehlmann
tests: unify test-issue*
r12195
$ hg init
$ echo foo > foo
$ hg ci -qAm 'add foo'
$ echo bar >> foo
$ hg ci -m 'change foo'
$ hg backout -r tip -m 'backout changed foo'
reverting foo
changeset 2:4d9e78aaceee backs out changeset 1:b515023e500e
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ touch bar
$ hg ci -qAm 'add bar'
$ hg merge --debug
searching for copies back to rev 1
unmatched files in local:
bar
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: bbd179dfa0a7, local: 71766447bdbb+, remote: 4d9e78aaceee
Adrian Buehlmann
tests: unify test-issue*
r12195 foo: remote is newer -> g
Bryan O'Sullivan
tests: update test output (will be folded into parent)
r18631 getting foo
Adrian Buehlmann
tests: unify test-issue*
r12195 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugstate | grep foo
Matt Mackall
dirstate: use 'm' state in otherparent to reduce ambiguity...
r22896 m 0 -2 unset foo
Adrian Buehlmann
tests: unify test-issue*
r12195
$ hg st -A foo
M foo
$ hg ci -m 'merge'
$ hg manifest --debug | grep foo
c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex foo
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re)
1 5 9 ..... 1 6f4310b00b9a 2ed2a3912a0b 000000000000 (re)
2 14 5 ..... 2 c6fc755d7e68 6f4310b00b9a 000000000000 (re)
Adrian Buehlmann
tests: unify test-issue*
r12195