##// 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-issue1502.t
42 lines | 1.1 KiB | text/troff | Tads3Lexer
Matt Mackall
urls: bulk-change BTS urls to new location
r26420 https://bz.mercurial-scm.org/1502
David Soria Parra
bookmarks: restrict moving a bookmark to its descendants (issue1502)...
r13478
Initialize repository
$ hg init foo
$ touch foo/a && hg -R foo commit -A -m "added a"
adding a
$ hg clone foo foo1
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "bar" > foo1/a && hg -R foo1 commit -m "edit a in foo1"
$ echo "hi" > foo/a && hg -R foo commit -m "edited a foo"
$ hg -R foo1 pull -u
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 pulling from $TESTTMP/foo (glob)
David Soria Parra
bookmarks: restrict moving a bookmark to its descendants (issue1502)...
r13478 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Siddharth Agarwal
update: improve error message for clean non-linear update
r19798 not updating: not a linear update
(merge or update --check to force update)
David Soria Parra
bookmarks: restrict moving a bookmark to its descendants (issue1502)...
r13478
$ hg -R foo1 book branchy
$ hg -R foo1 book
* branchy 1:e3e522925eff
Pull. Bookmark should not jump to new head.
$ echo "there" >> foo/a && hg -R foo commit -m "edited a again"
$ hg -R foo1 pull
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 pulling from $TESTTMP/foo (glob)
David Soria Parra
bookmarks: restrict moving a bookmark to its descendants (issue1502)...
r13478 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
$ hg -R foo1 book
* branchy 1:e3e522925eff