Show More
@@ -21,7 +21,7 import minirst, revset, fileset | |||
|
21 | 21 | import dagparser, context, simplemerge, graphmod, copies |
|
22 | 22 | import random |
|
23 | 23 | import setdiscovery, treediscovery, dagutil, pvec, localrepo |
|
24 | import phases, obsolete, exchange, bundle2, repair | |
|
24 | import phases, obsolete, exchange, bundle2, repair, lock as lockmod | |
|
25 | 25 | import ui as uimod |
|
26 | 26 | |
|
27 | 27 | table = {} |
@@ -976,11 +976,14 def bookmark(ui, repo, *names, **opts): | |||
|
976 | 976 | raise util.Abort(_("bookmark name required")) |
|
977 | 977 | |
|
978 | 978 | if delete or rename or names or inactive: |
|
979 |
wlock = |
|
|
979 | wlock = lock = tr = None | |
|
980 | 980 | try: |
|
981 | wlock = repo.wlock() | |
|
982 | lock = repo.lock() | |
|
981 | 983 | cur = repo.changectx('.').node() |
|
982 | 984 | marks = repo._bookmarks |
|
983 | 985 | if delete: |
|
986 | tr = repo.transaction('bookmark') | |
|
984 | 987 | for mark in names: |
|
985 | 988 | if mark not in marks: |
|
986 | 989 | raise util.Abort(_("bookmark '%s' does not exist") % |
@@ -988,9 +991,9 def bookmark(ui, repo, *names, **opts): | |||
|
988 | 991 | if mark == repo._activebookmark: |
|
989 | 992 | bookmarks.deactivate(repo) |
|
990 | 993 | del marks[mark] |
|
991 | marks.write() | |
|
992 | 994 | |
|
993 | 995 | elif rename: |
|
996 | tr = repo.transaction('bookmark') | |
|
994 | 997 | if not names: |
|
995 | 998 | raise util.Abort(_("new bookmark name required")) |
|
996 | 999 | elif len(names) > 1: |
@@ -1003,9 +1006,8 def bookmark(ui, repo, *names, **opts): | |||
|
1003 | 1006 | if repo._activebookmark == rename and not inactive: |
|
1004 | 1007 | bookmarks.activate(repo, mark) |
|
1005 | 1008 | del marks[rename] |
|
1006 | marks.write() | |
|
1007 | ||
|
1008 | 1009 | elif names: |
|
1010 | tr = repo.transaction('bookmark') | |
|
1009 | 1011 | newact = None |
|
1010 | 1012 | for mark in names: |
|
1011 | 1013 | mark = checkformat(mark) |
@@ -1023,8 +1025,6 def bookmark(ui, repo, *names, **opts): | |||
|
1023 | 1025 | bookmarks.activate(repo, newact) |
|
1024 | 1026 | elif cur != tgt and newact == repo._activebookmark: |
|
1025 | 1027 | bookmarks.deactivate(repo) |
|
1026 | marks.write() | |
|
1027 | ||
|
1028 | 1028 | elif inactive: |
|
1029 | 1029 | if len(marks) == 0: |
|
1030 | 1030 | ui.status(_("no bookmarks set\n")) |
@@ -1032,8 +1032,11 def bookmark(ui, repo, *names, **opts): | |||
|
1032 | 1032 | ui.status(_("no active bookmark\n")) |
|
1033 | 1033 | else: |
|
1034 | 1034 | bookmarks.deactivate(repo) |
|
1035 | if tr is not None: | |
|
1036 | marks.recordchange(tr) | |
|
1037 | tr.close() | |
|
1035 | 1038 | finally: |
|
1036 |
|
|
|
1039 | lockmod.release(tr, lock, wlock) | |
|
1037 | 1040 | else: # show bookmarks |
|
1038 | 1041 | fm = ui.formatter('bookmarks', opts) |
|
1039 | 1042 | hexfn = fm.hexfunc |
@@ -63,55 +63,3 list bookmarks | |||
|
63 | 63 | $ hg book |
|
64 | 64 | test 0:5c9ad3787638 |
|
65 | 65 | test2 0:5c9ad3787638 |
|
66 | ||
|
67 | immediate rollback and reentrancy issue | |
|
68 | ||
|
69 | $ echo "mq=!" >> $HGRCPATH | |
|
70 | $ hg init repo | |
|
71 | $ cd repo | |
|
72 | $ echo a > a | |
|
73 | $ hg ci -Am adda | |
|
74 | adding a | |
|
75 | $ echo b > b | |
|
76 | $ hg ci -Am addb | |
|
77 | adding b | |
|
78 | $ hg bookmarks markb | |
|
79 | $ hg rollback | |
|
80 | repository tip rolled back to revision 0 (undo commit) | |
|
81 | working directory now based on revision 0 | |
|
82 | ||
|
83 | are you there? | |
|
84 | ||
|
85 | $ hg bookmarks | |
|
86 | no bookmarks set | |
|
87 | ||
|
88 | can we commit? (issue2692) | |
|
89 | ||
|
90 | $ echo c > c | |
|
91 | $ hg ci -Am rockon | |
|
92 | adding c | |
|
93 | ||
|
94 | can you be added again? | |
|
95 | ||
|
96 | $ hg bookmarks markb | |
|
97 | $ hg bookmarks | |
|
98 | * markb 1:fdb34407462c | |
|
99 | ||
|
100 | rollback dry run with rollback information | |
|
101 | ||
|
102 | $ hg rollback -n | |
|
103 | repository tip rolled back to revision 0 (undo commit) | |
|
104 | $ hg bookmarks | |
|
105 | * markb 1:fdb34407462c | |
|
106 | ||
|
107 | rollback dry run with rollback information and no commit undo | |
|
108 | ||
|
109 | $ rm .hg/store/undo | |
|
110 | $ hg rollback -n | |
|
111 | no rollback information available | |
|
112 | [1] | |
|
113 | $ hg bookmarks | |
|
114 | * markb 1:fdb34407462c | |
|
115 | ||
|
116 | $ cd .. | |
|
117 |
@@ -403,10 +403,15 test id | |||
|
403 | 403 | test rollback |
|
404 | 404 | |
|
405 | 405 | $ echo foo > f1 |
|
406 | $ hg bookmark tmp-rollback | |
|
406 | 407 | $ hg ci -Amr |
|
407 | 408 | adding f1 |
|
408 |
$ hg bookmark |
|
|
409 | $ hg bookmark -f Z -r 1 | |
|
409 | $ hg bookmarks | |
|
410 | X2 1:925d80f479bb | |
|
411 | Y 2:db815d6d32e6 | |
|
412 | Z 2:db815d6d32e6 | |
|
413 | * tmp-rollback 3:2bf5cfec5864 | |
|
414 | x y 2:db815d6d32e6 | |
|
410 | 415 |
$ |
|
411 | 416 | repository tip rolled back to revision 2 (undo commit) |
|
412 | 417 | working directory now based on revision 2 |
@@ -414,7 +419,18 test rollback | |||
|
414 | 419 | X2 1:925d80f479bb |
|
415 | 420 | Y 2:db815d6d32e6 |
|
416 | 421 | Z 2:db815d6d32e6 |
|
422 | * tmp-rollback 2:db815d6d32e6 | |
|
417 | 423 | x y 2:db815d6d32e6 |
|
424 | $ hg bookmark -f Z -r 1 | |
|
425 | $ hg rollback | |
|
426 | repository tip rolled back to revision 2 (undo bookmark) | |
|
427 | $ hg bookmarks | |
|
428 | X2 1:925d80f479bb | |
|
429 | Y 2:db815d6d32e6 | |
|
430 | Z 2:db815d6d32e6 | |
|
431 | * tmp-rollback 2:db815d6d32e6 | |
|
432 | x y 2:db815d6d32e6 | |
|
433 | $ hg bookmark -d tmp-rollback | |
|
418 | 434 | |
|
419 | 435 | activate bookmark on working dir parent without --force |
|
420 | 436 |
@@ -173,36 +173,66 pull empty | |||
|
173 | 173 | add extra data to test their exchange during push |
|
174 | 174 | |
|
175 | 175 | $ hg -R main bookmark --rev eea13746799a book_eea1 |
|
176 | pre-close-tip:02de42196ebe draft | |
|
177 | postclose-tip:02de42196ebe draft | |
|
178 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
176 | 179 | $ hg -R main debugobsolete -d '0 0' 3333333333333333333333333333333333333333 `getmainid eea13746799a` |
|
177 | 180 | pre-close-tip:02de42196ebe draft |
|
178 | 181 | postclose-tip:02de42196ebe draft |
|
179 | 182 | txnclose hook: HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:* HG_TXNNAME=debugobsolete (glob) |
|
180 | 183 | $ hg -R main bookmark --rev 02de42196ebe book_02de |
|
184 | pre-close-tip:02de42196ebe draft book_02de | |
|
185 | postclose-tip:02de42196ebe draft book_02de | |
|
186 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
181 | 187 | $ hg -R main debugobsolete -d '0 0' 4444444444444444444444444444444444444444 `getmainid 02de42196ebe` |
|
182 | 188 | pre-close-tip:02de42196ebe draft book_02de |
|
183 | 189 | postclose-tip:02de42196ebe draft book_02de |
|
184 | 190 | txnclose hook: HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:* HG_TXNNAME=debugobsolete (glob) |
|
185 | 191 | $ hg -R main bookmark --rev 42ccdea3bb16 book_42cc |
|
192 | pre-close-tip:02de42196ebe draft book_02de | |
|
193 | postclose-tip:02de42196ebe draft book_02de | |
|
194 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
186 | 195 | $ hg -R main debugobsolete -d '0 0' 5555555555555555555555555555555555555555 `getmainid 42ccdea3bb16` |
|
187 | 196 | pre-close-tip:02de42196ebe draft book_02de |
|
188 | 197 | postclose-tip:02de42196ebe draft book_02de |
|
189 | 198 | txnclose hook: HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:* HG_TXNNAME=debugobsolete (glob) |
|
190 | 199 | $ hg -R main bookmark --rev 5fddd98957c8 book_5fdd |
|
200 | pre-close-tip:02de42196ebe draft book_02de | |
|
201 | postclose-tip:02de42196ebe draft book_02de | |
|
202 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
191 | 203 | $ hg -R main debugobsolete -d '0 0' 6666666666666666666666666666666666666666 `getmainid 5fddd98957c8` |
|
192 | 204 | pre-close-tip:02de42196ebe draft book_02de |
|
193 | 205 | postclose-tip:02de42196ebe draft book_02de |
|
194 | 206 | txnclose hook: HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:* HG_TXNNAME=debugobsolete (glob) |
|
195 | 207 | $ hg -R main bookmark --rev 32af7686d403 book_32af |
|
208 | pre-close-tip:02de42196ebe draft book_02de | |
|
209 | postclose-tip:02de42196ebe draft book_02de | |
|
210 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
196 | 211 | $ hg -R main debugobsolete -d '0 0' 7777777777777777777777777777777777777777 `getmainid 32af7686d403` |
|
197 | 212 | pre-close-tip:02de42196ebe draft book_02de |
|
198 | 213 | postclose-tip:02de42196ebe draft book_02de |
|
199 | 214 | txnclose hook: HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:* HG_TXNNAME=debugobsolete (glob) |
|
200 | 215 | |
|
201 | 216 | $ hg -R other bookmark --rev cd010b8cd998 book_eea1 |
|
217 | pre-close-tip:24b6387c8c8c public | |
|
218 | postclose-tip:24b6387c8c8c public | |
|
219 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
202 | 220 | $ hg -R other bookmark --rev cd010b8cd998 book_02de |
|
221 | pre-close-tip:24b6387c8c8c public | |
|
222 | postclose-tip:24b6387c8c8c public | |
|
223 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
203 | 224 | $ hg -R other bookmark --rev cd010b8cd998 book_42cc |
|
225 | pre-close-tip:24b6387c8c8c public | |
|
226 | postclose-tip:24b6387c8c8c public | |
|
227 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
204 | 228 | $ hg -R other bookmark --rev cd010b8cd998 book_5fdd |
|
229 | pre-close-tip:24b6387c8c8c public | |
|
230 | postclose-tip:24b6387c8c8c public | |
|
231 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
205 | 232 | $ hg -R other bookmark --rev cd010b8cd998 book_32af |
|
233 | pre-close-tip:24b6387c8c8c public | |
|
234 | postclose-tip:24b6387c8c8c public | |
|
235 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
206 | 236 | |
|
207 | 237 | $ hg -R main phase --public eea13746799a |
|
208 | 238 | pre-close-tip:02de42196ebe draft book_02de |
@@ -247,6 +247,9 listkeys hook | |||
|
247 | 247 | |
|
248 | 248 | $ echo "listkeys = printenv.py listkeys" >> .hg/hgrc |
|
249 | 249 | $ hg bookmark -r null bar |
|
250 | pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
251 | pretxnclose hook: HG_BOOKMARK_MOVED=1 HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
252 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
250 | 253 | $ cd ../b |
|
251 | 254 | $ hg pull -B bar ../a |
|
252 | 255 | pulling from ../a |
@@ -279,6 +282,9 test that prelistkeys can prevent listin | |||
|
279 | 282 | |
|
280 | 283 | $ echo "prelistkeys = printenv.py prelistkeys.forbid 1" >> .hg/hgrc |
|
281 | 284 | $ hg bookmark -r null quux |
|
285 | pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
286 | pretxnclose hook: HG_BOOKMARK_MOVED=1 HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
287 | txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmark (glob) | |
|
282 | 288 | $ cd ../b |
|
283 | 289 | $ hg pull -B quux ../a |
|
284 | 290 | pulling from ../a |
@@ -74,16 +74,16 working dir unaffected by rollback: do n | |||
|
74 | 74 | $ hg bookmark foo |
|
75 | 75 | $ hg commit -m'modify a again' |
|
76 | 76 | $ echo b > b |
|
77 | $ hg bookmark bar -r default #making bar active, before the transaction | |
|
77 | 78 | $ hg commit -Am'add b' |
|
78 | 79 | adding b |
|
79 | 80 | $ hg log --template '{rev} {branch} {desc|firstline}\n' |
|
80 | 81 | 2 test add b |
|
81 | 82 | 1 test modify a again |
|
82 | 83 | 0 default add a again |
|
83 |
$ hg update |
|
|
84 | $ hg update bar | |
|
84 | 85 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
85 |
( |
|
|
86 | $ hg bookmark bar | |
|
86 | (activating bookmark bar) | |
|
87 | 87 | $ cat .hg/undo.branch ; echo |
|
88 | 88 | test |
|
89 | 89 | $ hg rollback -f |
@@ -94,7 +94,7 working dir unaffected by rollback: do n | |||
|
94 | 94 | default |
|
95 | 95 | $ cat .hg/bookmarks.current ; echo |
|
96 | 96 | bar |
|
97 | $ hg bookmark --delete foo | |
|
97 | $ hg bookmark --delete foo bar | |
|
98 | 98 | |
|
99 | 99 | rollback by pretxncommit saves commit message (issue1635) |
|
100 | 100 |
General Comments 0
You need to be logged in to leave comments.
Login now