##// END OF EJS Templates
repository: define manifest interfaces...
repository: define manifest interfaces The long march towards declaring interfaces for repository primitives continues. This commit essentially defines interfaces based on the following types: * manifest.manifestdict -> imanifestdict * manifest.manifestlog -> imanifestlog * manifest.memmanifestctx -> imanifestrevisionwritable * manifest.manifestctx -> imanifestrevisionstored * manifest.memtreemanifestctx -> imanifestrevisionwritable * manifest.treemanifestctx -> imanifestrevisionstored * util.dirs -> idirs The interfaces are thoroughly documented. Their documentation is now better than the documentation in manifest.py in many cases. With the exception of util.dirs, classes have been annotated with their interfaces. (I didn't feel like util.dirs needed the proper interface treatment.) Tests have been added demonstrating that all classes and instances conform to their interfaces. This work was much easier than filelogs. That's because Durham did an excellent job formalizing the manifest API a while back. There are still some minor kludges with the interfaces that should probably be addressed. But the primary goal with interface declarations is getting something established. Once we have an interface, we can modify it later easily enough. Differential Revision: https://phab.mercurial-scm.org/D3869

File last commit:

r37869:04ceb267 @26 default
r38549:c82ea938 default
Show More
test-bookmarks.t
1177 lines | 32.4 KiB | text/troff | Tads3Lexer
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709
FUJIWARA Katsunori
tests: make directory to prevent test process from going out of $TESTTMP...
r31051 $ hg init repo
$ cd repo
Martin Geisler
tests: unify test-bookmarks
r11861
Matt Harbison
tests: adjust hooks for Windows...
r34939 $ cat > $TESTTMP/hook.sh <<'EOF'
> echo "test-hook-bookmark: $HG_BOOKMARK: $HG_OLDNODE -> $HG_NODE"
> EOF
$ TESTHOOK="hooks.txnclose-bookmark.test=sh $TESTTMP/hook.sh"
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709
Martin Geisler
tests: unify test-bookmarks
r11861 no bookmarks
$ hg bookmarks
no bookmarks set
Yuya Nishihara
bookmarks: port to generic templater
r22776 $ hg bookmarks -Tjson
[
]
Martin Geisler
tests: unify test-bookmarks
r11861 bookmark rev -1
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg bookmark X --config "$TESTHOOK"
test-hook-bookmark: X: -> 0000000000000000000000000000000000000000
Martin Geisler
tests: unify test-bookmarks
r11861
list bookmarks
$ hg bookmarks
* X -1:000000000000
list bookmarks with color
$ hg --config extensions.color= --config color.mode=ansi \
> bookmarks --color=always
Yuya Nishihara
bookmarks: split ui.write() so that it can be easily ported to formatter api...
r22775 \x1b[0;32m * \x1b[0m\x1b[0;32mX\x1b[0m\x1b[0;32m -1:000000000000\x1b[0m (esc)
Martin Geisler
tests: unify test-bookmarks
r11861
$ echo a > a
$ hg add a
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg commit -m 0 --config "$TESTHOOK"
test-hook-bookmark: X: 0000000000000000000000000000000000000000 -> f7b1eb17ad24730a1651fccd46c43826d1bbc2ac
Martin Geisler
tests: unify test-bookmarks
r11861
bookmark X moved to rev 0
$ hg bookmarks
* X 0:f7b1eb17ad24
look up bookmark
$ hg log -r X
changeset: 0:f7b1eb17ad24
David Soria Parra
templater: add bookmarks to templates and default output...
r13386 bookmark: X
Martin Geisler
tests: unify test-bookmarks
r11861 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
Kevin Bullock
commands: 'hg bookmark NAME' should work even with ui.strict=True...
r18075 second bookmark for rev 0, command should work even with ui.strict on
Martin Geisler
tests: unify test-bookmarks
r11861
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg --config ui.strict=1 bookmark X2 --config "$TESTHOOK"
test-hook-bookmark: X2: -> f7b1eb17ad24730a1651fccd46c43826d1bbc2ac
Martin Geisler
tests: unify test-bookmarks
r11861
bookmark rev -1 again
$ hg bookmark -r null Y
list bookmarks
$ hg bookmarks
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 X 0:f7b1eb17ad24
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 * X2 0:f7b1eb17ad24
Martin Geisler
tests: unify test-bookmarks
r11861 Y -1:000000000000
Yuya Nishihara
bookmarks: cache reverse mapping (issue5868)...
r37869 $ hg log -T '{bookmarks % "{rev} {bookmark}\n"}'
0 X
0 X2
Martin Geisler
tests: unify test-bookmarks
r11861
$ echo b > b
$ hg add b
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg commit -m 1 --config "$TESTHOOK"
test-hook-bookmark: X2: f7b1eb17ad24730a1651fccd46c43826d1bbc2ac -> 925d80f479bb026b0fb3deb27503780b13f74123
Martin Geisler
tests: unify test-bookmarks
r11861
Yuya Nishihara
bookmarks: port to generic templater
r22776 $ hg bookmarks -Tjson
[
{
"active": false,
"bookmark": "X",
"node": "f7b1eb17ad24730a1651fccd46c43826d1bbc2ac",
"rev": 0
},
{
"active": true,
"bookmark": "X2",
"node": "925d80f479bb026b0fb3deb27503780b13f74123",
"rev": 1
},
{
"active": false,
"bookmark": "Y",
"node": "0000000000000000000000000000000000000000",
"rev": -1
}
]
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714 bookmarks revset
$ hg log -r 'bookmark()'
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 changeset: 0:f7b1eb17ad24
David Soria Parra
templater: add bookmarks to templates and default output...
r13386 bookmark: X
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714 user: test
date: Thu Jan 01 00:00:00 1970 +0000
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 summary: 0
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 changeset: 1:925d80f479bb
bookmark: X2
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714 $ hg log -r 'bookmark(Y)'
$ hg log -r 'bookmark(X2)'
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 changeset: 1:925d80f479bb
David Soria Parra
templater: add bookmarks to templates and default output...
r13386 bookmark: X2
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 tag: tip
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714 user: test
date: Thu Jan 01 00:00:00 1970 +0000
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 summary: 1
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714
Simon King
revset: add pattern matching to 'bookmarks' revset expression
r16822 $ hg log -r 'bookmark("re:X")'
changeset: 0:f7b1eb17ad24
bookmark: X
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
changeset: 1:925d80f479bb
bookmark: X2
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 1
Michael O'Connor
revset: bookmark revset interprets 'literal:' prefix correctly (issue4329)
r22105 $ hg log -r 'bookmark("literal:X")'
changeset: 0:f7b1eb17ad24
bookmark: X
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
Idan Kamara
tests: add tests for non-existant branch/tag/bookmark
r13925 $ hg log -r 'bookmark(unknown)'
FUJIWARA Katsunori
revset: raise RepoLookupError to make present() predicate continue the query...
r23978 abort: bookmark 'unknown' does not exist!
Idan Kamara
tests: add tests for non-existant branch/tag/bookmark
r13925 [255]
Yuya Nishihara
revset: strip off "literal:" prefix from bookmark not found error...
r26538 $ hg log -r 'bookmark("literal:unknown")'
abort: bookmark 'unknown' does not exist!
[255]
FUJIWARA Katsunori
revset: raise RepoLookupError to make present() predicate continue the query...
r23978 $ hg log -r 'bookmark("re:unknown")'
abort: no bookmarks exist that match 'unknown'!
[255]
$ hg log -r 'present(bookmark("literal:unknown"))'
$ hg log -r 'present(bookmark("re:unknown"))'
Idan Kamara
tests: add tests for non-existant branch/tag/bookmark
r13925
Patrick Mezard
Fix and unify transplant and bookmarks revsets doc registration
r12822 $ hg help revsets | grep 'bookmark('
"bookmark([name])"
Augie Fackler
bookmarks: add revset for referencing bookmarks
r12714
Martin Geisler
tests: unify test-bookmarks
r11861 bookmarks X and X2 moved to rev 1, Y at rev -1
$ hg bookmarks
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 X 0:f7b1eb17ad24
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 * X2 1:925d80f479bb
Martin Geisler
tests: unify test-bookmarks
r11861 Y -1:000000000000
bookmark rev 0 again
$ hg bookmark -r 0 Z
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 $ hg update X
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Stephen Lee
update: show message when a bookmark is activated by update...
r21503 (activating bookmark X)
Martin Geisler
tests: unify test-bookmarks
r11861 $ echo c > c
$ hg add c
$ hg commit -m 2
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 created new head
Martin Geisler
tests: unify test-bookmarks
r11861
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 bookmarks X moved to rev 2, Y at rev -1, Z at rev 0
Martin Geisler
tests: unify test-bookmarks
r11861
$ hg bookmarks
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 * X 2:db815d6d32e6
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 X2 1:925d80f479bb
David Soria Parra
localrepo: sort hg bookmark output...
r13388 Y -1:000000000000
Martin Geisler
tests: unify test-bookmarks
r11861 Z 0:f7b1eb17ad24
rename nonexistent bookmark
$ hg bookmark -m A B
Idan Kamara
bookmarks: change error messages to match those given by 'hg tag' commands
r13911 abort: bookmark 'A' does not exist
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
rename to existent bookmark
$ hg bookmark -m X Y
Idan Kamara
bookmarks: change error messages to match those given by 'hg tag' commands
r13911 abort: bookmark 'Y' already exists (use -f to force)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
force rename to existent bookmark
$ hg bookmark -f -m X Y
David Demelier
bookmarks: allow renaming active bookmark using '.'
r33901 rename bookmark using .
$ hg book rename-me
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg book -m . renamed --config "$TESTHOOK"
test-hook-bookmark: rename-me: db815d6d32e69058eadefc8cffbad37675707975 ->
test-hook-bookmark: renamed: -> db815d6d32e69058eadefc8cffbad37675707975
David Demelier
bookmarks: allow renaming active bookmark using '.'
r33901 $ hg bookmark
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 0:f7b1eb17ad24
* renamed 2:db815d6d32e6
$ hg up -q Y
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg book -d renamed --config "$TESTHOOK"
test-hook-bookmark: renamed: db815d6d32e69058eadefc8cffbad37675707975 ->
David Demelier
bookmarks: allow renaming active bookmark using '.'
r33901
rename bookmark using . with no active bookmark
$ hg book rename-me
$ hg book -i rename-me
$ hg book -m . renamed
abort: no active bookmark
[255]
$ hg up -q Y
$ hg book -d rename-me
David Demelier
bookmarks: allow deleting active bookmark using '.'
r33914 delete bookmark using .
$ hg book delete-me
$ hg book -d .
$ hg bookmark
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 0:f7b1eb17ad24
$ hg up -q Y
delete bookmark using . with no active bookmark
$ hg book delete-me
$ hg book -i delete-me
$ hg book -d .
abort: no active bookmark
[255]
$ hg up -q Y
$ hg book -d delete-me
Martin Geisler
tests: unify test-bookmarks
r11861 list bookmarks
$ hg bookmark
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 X2 1:925d80f479bb
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 * Y 2:db815d6d32e6
Martin Geisler
tests: unify test-bookmarks
r11861 Z 0:f7b1eb17ad24
David Soria Parra
bookmarks: teach the -r option to use revsets
r17686 bookmarks from a revset
$ hg bookmark -r '.^1' REVSET
$ hg bookmark -r ':tip' TIP
Sean Farley
bookmarks: fix bug that activated a bookmark even with -r passed...
r19112 $ hg up -q TIP
David Soria Parra
bookmarks: teach the -r option to use revsets
r17686 $ hg bookmarks
REVSET 0:f7b1eb17ad24
* TIP 2:db815d6d32e6
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 0:f7b1eb17ad24
$ hg bookmark -d REVSET
$ hg bookmark -d TIP
Kevin Bullock
bookmarks: allow bookmark command to take multiple arguments...
r19147 rename without new name or multiple names
Martin Geisler
tests: unify test-bookmarks
r11861
$ hg bookmark -m Y
abort: new bookmark name required
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Kevin Bullock
bookmarks: allow bookmark command to take multiple arguments...
r19147 $ hg bookmark -m Y Y2 Y3
abort: only one new bookmark name allowed
[255]
Martin Geisler
tests: unify test-bookmarks
r11861
delete without name
$ hg bookmark -d
abort: bookmark name required
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
delete nonexistent bookmark
$ hg bookmark -d A
Idan Kamara
bookmarks: change error messages to match those given by 'hg tag' commands
r13911 abort: bookmark 'A' does not exist
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
bookmark name with spaces should be stripped
$ hg bookmark ' x y '
list bookmarks
$ hg bookmarks
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 X2 1:925d80f479bb
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 Y 2:db815d6d32e6
Martin Geisler
tests: unify test-bookmarks
r11861 Z 0:f7b1eb17ad24
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 * x y 2:db815d6d32e6
Yuya Nishihara
bookmarks: cache reverse mapping (issue5868)...
r37869 $ hg log -T '{bookmarks % "{rev} {bookmark}\n"}'
2 Y
2 x y
1 X2
0 Z
Martin Geisler
tests: unify test-bookmarks
r11861
look up stripped bookmark name
$ hg log -r '"x y"'
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 changeset: 2:db815d6d32e6
David Soria Parra
templater: add bookmarks to templates and default output...
r13386 bookmark: Y
bookmark: x y
Martin Geisler
tests: unify test-bookmarks
r11861 tag: tip
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 parent: 0:f7b1eb17ad24
Martin Geisler
tests: unify test-bookmarks
r11861 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 2
reject bookmark name with newline
$ hg bookmark '
> '
Kevin Bullock
bookmarks: remove redundant check for newline...
r17814 abort: bookmark names cannot consist entirely of whitespace
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
David Soria Parra
bookmarks: check bookmark format during rename (issue3662)
r17789 $ hg bookmark -m Z '
> '
Kevin Bullock
bookmarks: remove redundant check for newline...
r17814 abort: bookmark names cannot consist entirely of whitespace
David Soria Parra
bookmarks: check bookmark format during rename (issue3662)
r17789 [255]
Kevin Bullock
bookmarks: disallow bookmarks named 'tip', '.', or 'null'...
r17816 bookmark with reserved name
$ hg bookmark tip
abort: the name 'tip' is reserved
[255]
$ hg bookmark .
abort: the name '.' is reserved
[255]
$ hg bookmark null
abort: the name 'null' is reserved
[255]
Martin Geisler
tests: unify test-bookmarks
r11861 bookmark with existing name
Kevin Bullock
bookmarks: allow moving a bookmark forward to a descendant...
r18773 $ hg bookmark X2
abort: bookmark 'X2' already exists (use -f to force)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
David Soria Parra
bookmarks: check bookmark format during rename (issue3662)
r17789 $ hg bookmark -m Y Z
abort: bookmark 'Z' already exists (use -f to force)
[255]
bookmark with name of branch
$ hg bookmark default
abort: a bookmark cannot have the name of an existing branch
[255]
$ hg bookmark -m Y default
abort: a bookmark cannot have the name of an existing branch
[255]
Durham Goode
bookmark: don't allow integers as bookmark/branch/tag names...
r18566 bookmark with integer name
$ hg bookmark 10
Durham Goode
translations: change label integer error to not specify the kind of label...
r19070 abort: cannot use an integer as a name
Durham Goode
bookmark: don't allow integers as bookmark/branch/tag names...
r18566 [255]
Augie Fackler
bookmarks: warn about bookmark names that unambiguously resolve to a node (BC)...
r32451 bookmark with a name that matches a node id
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg bookmark 925d80f479bb db815d6d32e6 --config "$TESTHOOK"
Augie Fackler
bookmarks: warn about bookmark names that unambiguously resolve to a node (BC)...
r32451 bookmark 925d80f479bb matches a changeset hash
(did you leave a -r out of an 'hg bookmark' command?)
bookmark db815d6d32e6 matches a changeset hash
(did you leave a -r out of an 'hg bookmark' command?)
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 test-hook-bookmark: 925d80f479bb: -> db815d6d32e69058eadefc8cffbad37675707975
test-hook-bookmark: db815d6d32e6: -> db815d6d32e69058eadefc8cffbad37675707975
Augie Fackler
bookmarks: warn about bookmark names that unambiguously resolve to a node (BC)...
r32451 $ hg bookmark -d 925d80f479bb
$ hg bookmark -d db815d6d32e6
Yuya Nishihara
bookmarks: fix check of hash-like name to not abort by ambiguous identifier...
r32482 $ cd ..
bookmark with a name that matches an ambiguous node id
$ hg init ambiguous
$ cd ambiguous
$ echo 0 > a
$ hg ci -qAm 0
$ for i in 1057 2857 4025; do
> hg up -q 0
> echo $i > a
> hg ci -qm $i
> done
$ hg up -q null
$ hg log -r0: -T '{rev}:{node}\n'
0:b4e73ffab476aa0ee32ed81ca51e07169844bc6a
1:c56256a09cd28e5764f32e8e2810d0f01e2e357a
2:c5623987d205cd6d9d8389bfc40fff9dbb670b48
3:c562ddd9c94164376c20b86b0b4991636a3bf84f
$ hg bookmark -r0 c562
$ hg bookmarks
c562 0:b4e73ffab476
$ cd ..
David Soria Parra
bookmarks: abort when incompatible options are used (issue3663)...
r17790 incompatible options
Yuya Nishihara
bookmarks: fix check of hash-like name to not abort by ambiguous identifier...
r32482 $ cd repo
David Soria Parra
bookmarks: abort when incompatible options are used (issue3663)...
r17790 $ hg bookmark -m Y -d Z
abort: --delete and --rename are incompatible
[255]
$ hg bookmark -r 1 -d Z
abort: --rev is incompatible with --delete
[255]
$ hg bookmark -r 1 -m Z Y
abort: --rev is incompatible with --rename
[255]
Martin Geisler
tests: unify test-bookmarks
r11861 force bookmark with existing name
Boris Feld
bookmark: add a dedicated txnclose-bookmark hook...
r34709 $ hg bookmark -f X2 --config "$TESTHOOK"
test-hook-bookmark: X2: 925d80f479bb026b0fb3deb27503780b13f74123 -> db815d6d32e69058eadefc8cffbad37675707975
Kevin Bullock
bookmarks: moving the active bookmark deactivates it...
r18782
force bookmark back to where it was, should deactivate it
Kevin Bullock
bookmarks: allow moving a bookmark forward to a descendant...
r18773 $ hg bookmark -fr1 X2
Kevin Bullock
bookmarks: moving the active bookmark deactivates it...
r18782 $ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 0:f7b1eb17ad24
x y 2:db815d6d32e6
Kevin Bullock
bookmarks: allow moving a bookmark forward to a descendant...
r18773
forward bookmark to descendant without --force
$ hg bookmark Z
Kevin Bullock
bookmarks: fix test broken by 0bba1ff2ac7b...
r18774 moving bookmark 'Z' forward from f7b1eb17ad24
Martin Geisler
tests: unify test-bookmarks
r11861
list bookmarks
$ hg bookmark
David Soria Parra
bookmarks: mark new bookmark as current if it points to the current dirstate...
r13448 X2 1:925d80f479bb
David Soria Parra
bookmarks: make track.current=True default behaviour and remove option (BC)
r13416 Y 2:db815d6d32e6
* Z 2:db815d6d32e6
x y 2:db815d6d32e6
Yuya Nishihara
bookmarks: cache reverse mapping (issue5868)...
r37869 $ hg log -T '{bookmarks % "{rev} {bookmark}\n"}'
2 Y
2 Z
2 x y
1 X2
Martin Geisler
tests: unify test-bookmarks
r11861
revision but no bookmark name
$ hg bookmark -r .
abort: bookmark name required
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bookmarks
r11861
bookmark name with whitespace only
$ hg bookmark ' '
abort: bookmark names cannot consist entirely of whitespace
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
David Soria Parra
bookmarks: forbid \0 \r \n : in bookmark names (BC)...
r13425
David Soria Parra
bookmarks: check bookmark format during rename (issue3662)
r17789 $ hg bookmark -m Y ' '
abort: bookmark names cannot consist entirely of whitespace
[255]
David Soria Parra
bookmarks: forbid \0 \r \n : in bookmark names (BC)...
r13425 invalid bookmark
$ hg bookmark 'foo:bar'
Wagner Bruna
scmutil: generalize message to make it more i18n-friendly
r17850 abort: ':' cannot be used in a name
Kevin Bullock
scmutil: add bad character checking to checknewlabel...
r17821 [255]
$ hg bookmark 'foo
> bar'
Wagner Bruna
scmutil: generalize message to make it more i18n-friendly
r17850 abort: '\n' cannot be used in a name
David Soria Parra
bookmarks: forbid \0 \r \n : in bookmark names (BC)...
r13425 [255]
David Soria Parra
tests: check if the bookmarks extension is ignored
r13474 the bookmark extension should be ignored now that it is part of core
$ echo "[extensions]" >> $HGRCPATH
$ echo "bookmarks=" >> $HGRCPATH
$ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 2:db815d6d32e6
x y 2:db815d6d32e6
Alexander Solovyov
fix bookmarks rollback behavior...
r14266
David Soria Parra
summary: add bookmarks to summary
r13454 test summary
$ hg summary
Augie Fackler
summary: show bookmarks separate from tags and note active mark (issue2892)
r14906 parent: 2:db815d6d32e6 tip
David Soria Parra
summary: add bookmarks to summary
r13454 2
branch: default
Augie Fackler
summary: show bookmarks separate from tags and note active mark (issue2892)
r14906 bookmarks: *Z Y x y
David Soria Parra
summary: add bookmarks to summary
r13454 commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 3 draft
David Soria Parra
summary: add bookmarks to summary
r13454
Kevin Bullock
id: add bookmarks to id...
r13477 test id
$ hg id
db815d6d32e6 tip Y/Z/x y
Alexander Solovyov
fix bookmarks rollback behavior...
r14266
test rollback
Matt Mackall
merge with stable
r14268 $ echo foo > f1
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 $ hg bookmark tmp-rollback
Matt Mackall
merge with stable
r14268 $ hg ci -Amr
adding f1
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 $ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
* tmp-rollback 3:2bf5cfec5864
x y 2:db815d6d32e6
Alexander Solovyov
fix bookmarks rollback behavior...
r14266 $ hg rollback
Matt Mackall
merge with stable
r14268 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
$ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Kevin Bullock
bookmarks: moving the active bookmark deactivates it...
r18782 Z 2:db815d6d32e6
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 * tmp-rollback 2:db815d6d32e6
Matt Mackall
merge with stable
r14268 x y 2:db815d6d32e6
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 $ hg bookmark -f Z -r 1
$ hg rollback
repository tip rolled back to revision 2 (undo bookmark)
$ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
* tmp-rollback 2:db815d6d32e6
x y 2:db815d6d32e6
$ hg bookmark -d tmp-rollback
Matt Mackall
merge with stable
r14268
Kevin Bullock
bookmarks: allow (re-)activating a bookmark on the current changeset...
r18781 activate bookmark on working dir parent without --force
$ hg bookmark --inactive Z
$ hg bookmark Z
David Soria Parra
hg: add support for cloning bookmarks
r13604 test clone
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276 $ hg bookmark -r 2 -i @
$ hg bookmark -r 2 -i a@
Alexander Solovyov
fix bookmarks rollback behavior...
r14266 $ hg bookmarks
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276 @ 2:db815d6d32e6
David Soria Parra
hg: add support for cloning bookmarks
r13604 X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 2:db815d6d32e6
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276 a@ 2:db815d6d32e6
David Soria Parra
hg: add support for cloning bookmarks
r13604 x y 2:db815d6d32e6
$ hg clone . cloned-bookmarks
Adrian Buehlmann
clone: show status "updating to bookmark @"...
r17882 updating to bookmark @
David Soria Parra
hg: add support for cloning bookmarks
r13604 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks bookmarks
Thomas Arendsen Hein
clone: activate @ bookmark if updating to it...
r17870 * @ 2:db815d6d32e6
David Soria Parra
hg: add support for cloning bookmarks
r13604 X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276 a@ 2:db815d6d32e6
David Soria Parra
hg: add support for cloning bookmarks
r13604 x y 2:db815d6d32e6
test clone with pull protocol
$ hg clone --pull . cloned-bookmarks-pull
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets f7b1eb17ad24:db815d6d32e6
Adrian Buehlmann
clone: show status "updating to bookmark @"...
r17882 updating to bookmark @
David Soria Parra
hg: add support for cloning bookmarks
r13604 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks-pull bookmarks
Thomas Arendsen Hein
clone: activate @ bookmark if updating to it...
r17870 * @ 2:db815d6d32e6
Alexander Solovyov
fix bookmarks rollback behavior...
r14266 X2 1:925d80f479bb
David Soria Parra
hg: add support for cloning bookmarks
r13604 Y 2:db815d6d32e6
Z 2:db815d6d32e6
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276 a@ 2:db815d6d32e6
David Soria Parra
hg: add support for cloning bookmarks
r13604 x y 2:db815d6d32e6
Kevin Bullock
bookmarks: allow bookmark command to take multiple arguments...
r19147 delete multiple bookmarks at once
$ hg bookmark -d @ a@
Kevin Bullock
bookmarks: clone non-divergent bookmarks with @ in them
r16276
Thomas Arendsen Hein
test-bookmarks.t: check that bookmark "default" is not automatically checked out...
r17868 test clone with a bookmark named "default" (issue3677)
$ hg bookmark -r 1 -f -i default
$ hg clone . cloned-bookmark-default
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmark-default bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
default 1:925d80f479bb
x y 2:db815d6d32e6
$ hg -R cloned-bookmark-default parents -q
2:db815d6d32e6
$ hg bookmark -d default
David Soria Parra
hg: add support for cloning bookmarks
r13604 test clone with a specific revision
$ hg clone -r 925d80 . cloned-bookmarks-rev
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets f7b1eb17ad24:925d80f479bb
David Soria Parra
hg: add support for cloning bookmarks
r13604 updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks-rev bookmarks
X2 1:925d80f479bb
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663
Thomas Arendsen Hein
clone: activate bookmark specified with --updaterev
r17703 test clone with update to a bookmark
Siddharth Agarwal
test-bookmarks.t: avoid nested repo...
r25893 $ hg clone -u Z . ../cloned-bookmarks-update
Thomas Arendsen Hein
clone: activate bookmark specified with --updaterev
r17703 updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Siddharth Agarwal
test-bookmarks.t: avoid nested repo...
r25893 $ hg -R ../cloned-bookmarks-update bookmarks
Thomas Arendsen Hein
clone: activate bookmark specified with --updaterev
r17703 X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 2:db815d6d32e6
x y 2:db815d6d32e6
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663 create bundle with two heads
$ hg clone . tobundle
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo x > tobundle/x
$ hg -R tobundle add tobundle/x
$ hg -R tobundle commit -m'x'
$ hg -R tobundle update -r -2
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo y > tobundle/y
$ hg -R tobundle branch test
marked working directory as branch test
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663 $ hg -R tobundle add tobundle/y
$ hg -R tobundle commit -m'y'
$ hg -R tobundle bundle tobundle.hg
searching for changes
2 changesets found
$ hg unbundle tobundle.hg
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 125c9a1d6df6:9ba5f110a0b3
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663 (run 'hg heads' to see heads, 'hg merge' to merge)
Kevin Bullock
update: update to current bookmark if it moved out from under us (issue3682)...
r18471
Ryan McElroy
commands: rename current to active in variables and comments...
r25349 update to active bookmark if it's not the parent
Kevin Bullock
update: update to current bookmark if it moved out from under us (issue3682)...
r18471
FUJIWARA Katsunori
tests: make output lines conditional for testing with fsmonitor...
r33210 (it is known issue that fsmonitor can't handle nested repositories. In
this test scenario, cloned-bookmark-default and tobundle exist in the
working directory of current repository)
Kevin Bullock
summary: test that current bookmark isn't shown...
r18620 $ hg summary
parent: 2:db815d6d32e6
2
branch: default
Matt Mackall
unbundle: don't advance bookmarks (issue4322) (BC)...
r22091 bookmarks: *Z Y x y
FUJIWARA Katsunori
tests: make output lines conditional for testing with fsmonitor...
r33210 commit: 1 added, 1 unknown (new branch head) (no-fsmonitor !)
commit: 1 added, * unknown (new branch head) (glob) (fsmonitor !)
Kevin Bullock
summary: test that current bookmark isn't shown...
r18620 update: 2 new changesets (update)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 5 draft
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663 $ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
unbundle: don't advance bookmarks (issue4322) (BC)...
r22091 updating bookmark Z
David Soria Parra
bundle: update current bookmark to most recent revision on current branch...
r13663 $ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 3:125c9a1d6df6
x y 2:db815d6d32e6
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 pull --update works the same as pull && update
$ hg bookmark -r3 Y
moving bookmark 'Y' forward from db815d6d32e6
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R ../cloned-bookmarks-update ../cloned-bookmarks-manual-update
$ cp -R ../cloned-bookmarks-update ../cloned-bookmarks-manual-update-with-divergence
Pierre-Yves David
bookmark: actually test update behavior in both cases...
r26285
(manual version)
$ hg -R ../cloned-bookmarks-manual-update update Y
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark Y)
$ hg -R ../cloned-bookmarks-manual-update pull .
pulling from .
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
updating bookmark Y
updating bookmark Z
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 125c9a1d6df6:9ba5f110a0b3
Pierre-Yves David
bookmark: actually test update behavior in both cases...
r26285 (run 'hg heads' to see heads, 'hg merge' to merge)
Pierre-Yves David
bookmark: do not crash when active bookmark is forward and --date is used...
r26286
(# tests strange but with --date crashing when bookmark have to move)
$ hg -R ../cloned-bookmarks-manual-update update -d 1986
abort: revision matching date not found
[255]
Pierre-Yves David
bookmark: actually test update behavior in both cases...
r26285 $ hg -R ../cloned-bookmarks-manual-update update
updating to active bookmark Y
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(all in one version)
Siddharth Agarwal
test-bookmarks.t: avoid nested repo...
r25893 $ hg -R ../cloned-bookmarks-update update Y
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Stephen Lee
update: show message when a bookmark is activated by update...
r21503 (activating bookmark Y)
Siddharth Agarwal
test-bookmarks.t: avoid nested repo...
r25893 $ hg -R ../cloned-bookmarks-update pull --update .
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 pulling from .
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
updating bookmark Y
updating bookmark Z
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 125c9a1d6df6:9ba5f110a0b3
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 updating to active bookmark Y
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 We warn about divergent during bare update to the active bookmark
$ hg -R ../cloned-bookmarks-manual-update-with-divergence update Y
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark Y)
$ hg -R ../cloned-bookmarks-manual-update-with-divergence bookmarks -r X2 Y@1
$ hg -R ../cloned-bookmarks-manual-update-with-divergence bookmarks
X2 1:925d80f479bb
* Y 2:db815d6d32e6
Y@1 1:925d80f479bb
Z 2:db815d6d32e6
x y 2:db815d6d32e6
$ hg -R ../cloned-bookmarks-manual-update-with-divergence pull
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/repo
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
updating bookmark Y
updating bookmark Z
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 125c9a1d6df6:9ba5f110a0b3
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg -R ../cloned-bookmarks-manual-update-with-divergence update
updating to active bookmark Y
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 other divergent bookmarks for "Y"
Pierre-Yves David
bookmarks: more robust parsing of bookmarks file
r14845 test wrongly formated bookmark
$ echo '' >> .hg/bookmarks
$ hg bookmarks
X2 1:925d80f479bb
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 Y 3:125c9a1d6df6
Pierre-Yves David
bookmarks: more robust parsing of bookmarks file
r14845 * Z 3:125c9a1d6df6
x y 2:db815d6d32e6
Pierre-Yves David
bookmarks: add a warning for non empty malformed line
r14846 $ echo "Ican'thasformatedlines" >> .hg/bookmarks
$ hg bookmarks
malformed line in .hg/bookmarks: "Ican'thasformatedlines"
X2 1:925d80f479bb
Kevin Bullock
bookmarks: pull --update updates to active bookmark if it moved (issue4007)...
r19523 Y 3:125c9a1d6df6
Pierre-Yves David
bookmarks: add a warning for non empty malformed line
r14846 * Z 3:125c9a1d6df6
x y 2:db815d6d32e6
Matt Mackall
bookmarks: catch the proper exception for missing revisions...
r16573 test missing revisions
bookmarks: explicitly convert to 'node' during initialization...
r32735 $ echo "925d80f479b925d80f479bc925d80f479bccabab z" > .hg/bookmarks
Matt Mackall
bookmarks: catch the proper exception for missing revisions...
r16573 $ hg book
no bookmarks set
Augie Fackler
strip: move bookmarks to nearest ancestor rather than '.'...
r17264
test stripping a non-checked-out but bookmarked revision
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log --graph
Augie Fackler
strip: move bookmarks to nearest ancestor rather than '.'...
r17264 o changeset: 4:9ba5f110a0b3
| branch: test
| tag: tip
| parent: 2:db815d6d32e6
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: y
|
| @ changeset: 3:125c9a1d6df6
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: x
|
o changeset: 2:db815d6d32e6
| parent: 0:f7b1eb17ad24
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 2
|
| o changeset: 1:925d80f479bb
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 1
|
o changeset: 0:f7b1eb17ad24
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
$ hg book should-end-on-two
$ hg co --clean 4
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Siddharth Agarwal
update: when deactivating a bookmark, print a message...
r21404 (leaving bookmark should-end-on-two)
Augie Fackler
strip: move bookmarks to nearest ancestor rather than '.'...
r17264 $ hg book four
$ hg --config extensions.mq= strip 3
saved backup bundle to * (glob)
should-end-on-two should end up pointing to revision 2, as that's the
tipmost surviving ancestor of the stripped revision.
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log --graph
Augie Fackler
strip: move bookmarks to nearest ancestor rather than '.'...
r17264 @ changeset: 3:9ba5f110a0b3
| branch: test
| bookmark: four
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: y
|
o changeset: 2:db815d6d32e6
| bookmark: should-end-on-two
| parent: 0:f7b1eb17ad24
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 2
|
| o changeset: 1:925d80f479bb
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 1
|
o changeset: 0:f7b1eb17ad24
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
Sean Farley
bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant...
r19109
Mads Kiilerich
spelling: fixes of non-dictionary words
r30332 no-op update doesn't deactivate bookmarks
Matt Mackall
bookmarks: don't deactivate on no-op update (issue4901)
r26676
FUJIWARA Katsunori
tests: make output lines conditional for testing with fsmonitor...
r33210 (it is known issue that fsmonitor can't handle nested repositories. In
this test scenario, cloned-bookmark-default and tobundle exist in the
working directory of current repository)
FUJIWARA Katsunori
update: omit redundant activating message for already active bookmark...
r28500 $ hg bookmarks
* four 3:9ba5f110a0b3
should-end-on-two 2:db815d6d32e6
Pierre-Yves David
update: change default destination to tipmost descendant (issue4673) (BC)...
r28065 $ hg up four
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
bookmarks: don't deactivate on no-op update (issue4901)
r26676 $ hg up
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg sum
parent: 3:9ba5f110a0b3 tip
y
branch: test
bookmarks: *four
FUJIWARA Katsunori
tests: make output lines conditional for testing with fsmonitor...
r33210 commit: 2 unknown (clean) (no-fsmonitor !)
commit: * unknown (clean) (glob) (fsmonitor !)
Matt Mackall
bookmarks: don't deactivate on no-op update (issue4901)
r26676 update: (current)
phases: 4 draft
Sean Farley
bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant...
r19109 test clearing divergent bookmarks of linear ancestors
$ hg bookmark Z -r 0
$ hg bookmark Z@1 -r 1
$ hg bookmark Z@2 -r 2
$ hg bookmark Z@3 -r 3
$ hg book
Z 0:f7b1eb17ad24
Z@1 1:925d80f479bb
Z@2 2:db815d6d32e6
Sean Farley
bookmarks: fix bug that activated a bookmark even with -r passed...
r19112 Z@3 3:9ba5f110a0b3
* four 3:9ba5f110a0b3
Sean Farley
bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant...
r19109 should-end-on-two 2:db815d6d32e6
$ hg bookmark Z
moving bookmark 'Z' forward from f7b1eb17ad24
$ hg book
* Z 3:9ba5f110a0b3
Z@1 1:925d80f479bb
four 3:9ba5f110a0b3
should-end-on-two 2:db815d6d32e6
Sean Farley
bookmarks: resolve divergent bookmark when moving across a branch...
r19111
test clearing only a single divergent bookmark across branches
$ hg book foo -r 1
$ hg book foo@1 -r 0
$ hg book foo@2 -r 2
$ hg book foo@3 -r 3
$ hg book foo -r foo@3
$ hg book
Sean Farley
bookmarks: fix bug that activated a bookmark even with -r passed...
r19112 * Z 3:9ba5f110a0b3
Sean Farley
bookmarks: resolve divergent bookmark when moving across a branch...
r19111 Z@1 1:925d80f479bb
Sean Farley
bookmarks: fix bug that activated a bookmark even with -r passed...
r19112 foo 3:9ba5f110a0b3
Sean Farley
bookmarks: resolve divergent bookmark when moving across a branch...
r19111 foo@1 0:f7b1eb17ad24
foo@2 2:db815d6d32e6
four 3:9ba5f110a0b3
should-end-on-two 2:db815d6d32e6
FUJIWARA Katsunori
commands: advance current active bookmark at pull --update correctly...
r27948
pull --update works the same as pull && update (case #2)
It is assumed that "hg pull" itself doesn't update current active
bookmark ('Y' in tests below).
$ hg pull -q ../cloned-bookmarks-update
divergent bookmark Z stored as Z@2
(pulling revision on another named branch with --update updates
neither the working directory nor current active bookmark: "no-op"
case)
$ echo yy >> y
$ hg commit -m yy
$ hg -R ../cloned-bookmarks-update bookmarks | grep ' Y '
* Y 3:125c9a1d6df6
$ hg -R ../cloned-bookmarks-update pull . --update
pulling from .
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
divergent bookmark Z stored as Z@default
adding remote bookmark foo
adding remote bookmark four
adding remote bookmark should-end-on-two
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 5fb12f0f2d51
FUJIWARA Katsunori
commands: advance current active bookmark at pull --update correctly...
r27948 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R ../cloned-bookmarks-update parents -T "{rev}:{node|short}\n"
3:125c9a1d6df6
$ hg -R ../cloned-bookmarks-update bookmarks | grep ' Y '
* Y 3:125c9a1d6df6
(pulling revision on current named/topological branch with --update
updates the working directory and current active bookmark)
$ hg update -C -q 125c9a1d6df6
$ echo xx >> x
$ hg commit -m xx
$ hg -R ../cloned-bookmarks-update bookmarks | grep ' Y '
* Y 3:125c9a1d6df6
$ hg -R ../cloned-bookmarks-update pull . --update
pulling from .
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
divergent bookmark Z stored as Z@default
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 81dcce76aa0b
FUJIWARA Katsunori
commands: advance current active bookmark at pull --update correctly...
r27948 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating bookmark Y
$ hg -R ../cloned-bookmarks-update parents -T "{rev}:{node|short}\n"
6:81dcce76aa0b
$ hg -R ../cloned-bookmarks-update bookmarks | grep ' Y '
* Y 6:81dcce76aa0b
Durham Goode
transaction: allow running file generators after finalizers...
r28830
$ cd ..
ensure changelog is written before bookmarks
$ hg init orderrepo
$ cd orderrepo
$ touch a
$ hg commit -Aqm one
$ hg book mybook
$ echo a > a
$ cat > $TESTTMP/pausefinalize.py <<EOF
Augie Fackler
tests: update test-bookmarks to pass the import checker
r33948 > from __future__ import absolute_import
> import os
> import time
Durham Goode
transaction: allow running file generators after finalizers...
r28830 > from mercurial import extensions, localrepo
> def transaction(orig, self, desc, report=None):
> tr = orig(self, desc, report)
> def sleep(*args, **kwargs):
> retry = 20
Augie Fackler
tests: port test-bookmarks.t extension to Python 3...
r36588 > while retry > 0 and not os.path.exists(b"$TESTTMP/unpause"):
Durham Goode
transaction: allow running file generators after finalizers...
r28830 > retry -= 1
> time.sleep(0.5)
Augie Fackler
tests: port test-bookmarks.t extension to Python 3...
r36588 > if os.path.exists(b"$TESTTMP/unpause"):
> os.remove(b"$TESTTMP/unpause")
Durham Goode
transaction: allow running file generators after finalizers...
r28830 > # It is important that this finalizer start with 'a', so it runs before
> # the changelog finalizer appends to the changelog.
Augie Fackler
tests: port test-bookmarks.t extension to Python 3...
r36588 > tr.addfinalize(b'a-sleep', sleep)
Durham Goode
transaction: allow running file generators after finalizers...
r28830 > return tr
>
> def extsetup(ui):
> # This extension inserts an artifical pause during the transaction
> # finalizer, so we can run commands mid-transaction-close.
> extensions.wrapfunction(localrepo.localrepository, 'transaction',
> transaction)
> EOF
$ hg commit -qm two --config extensions.pausefinalize=$TESTTMP/pausefinalize.py &
$ sleep 2
$ hg log -r .
changeset: 0:867bc5792c8c
bookmark: mybook
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: one
$ hg bookmarks
* mybook 0:867bc5792c8c
$ touch $TESTTMP/unpause
$ cd ..
FUJIWARA Katsunori
bookmarks: check HG_PENDING strictly...
r31052
check whether HG_PENDING makes pending changes only in related
repositories visible to an external hook.
(emulate a transaction running concurrently by copied
.hg/bookmarks.pending in subsequent test)
$ cat > $TESTTMP/savepending.sh <<EOF
> cp .hg/bookmarks.pending .hg/bookmarks.pending.saved
> exit 1 # to avoid adding new bookmark for subsequent tests
> EOF
$ hg init unrelated
$ cd unrelated
$ echo a > a
$ hg add a
$ hg commit -m '#0'
$ hg --config hooks.pretxnclose="sh $TESTTMP/savepending.sh" bookmarks INVISIBLE
transaction abort!
rollback completed
abort: pretxnclose hook exited with status 1
[255]
$ cp .hg/bookmarks.pending.saved .hg/bookmarks.pending
(check visible bookmarks while transaction running in repo)
$ cat > $TESTTMP/checkpending.sh <<EOF
> echo "@repo"
Matt Harbison
tests: quote paths in shell script hooks...
r31767 > hg -R "$TESTTMP/repo" bookmarks
FUJIWARA Katsunori
bookmarks: check HG_PENDING strictly...
r31052 > echo "@unrelated"
Matt Harbison
tests: quote paths in shell script hooks...
r31767 > hg -R "$TESTTMP/unrelated" bookmarks
FUJIWARA Katsunori
bookmarks: check HG_PENDING strictly...
r31052 > exit 1 # to avoid adding new bookmark for subsequent tests
> EOF
$ cd ../repo
$ hg --config hooks.pretxnclose="sh $TESTTMP/checkpending.sh" bookmarks NEW
@repo
* NEW 6:81dcce76aa0b
X2 1:925d80f479bb
Y 4:125c9a1d6df6
Z 5:5fb12f0f2d51
Z@1 1:925d80f479bb
Z@2 4:125c9a1d6df6
foo 3:9ba5f110a0b3
foo@1 0:f7b1eb17ad24
foo@2 2:db815d6d32e6
four 3:9ba5f110a0b3
should-end-on-two 2:db815d6d32e6
x y 2:db815d6d32e6
@unrelated
no bookmarks set
transaction abort!
rollback completed
abort: pretxnclose hook exited with status 1
[255]
Boris Feld
bookmark: add a dedicated pretxnclose-bookmark hook...
r34710
Check pretxnclose-bookmark can abort a transaction
--------------------------------------------------
add hooks:
* to prevent NEW bookmark on a non-public changeset
* to prevent non-forward move of NEW bookmark
$ cat << EOF >> .hg/hgrc
> [hooks]
Matt Harbison
tests: adjust hooks for Windows...
r34939 > pretxnclose-bookmark.force-public = sh -c "(echo \$HG_BOOKMARK| grep -v NEW > /dev/null) || [ -z \"\$HG_NODE\" ] || (hg log -r \"\$HG_NODE\" -T '{phase}' | grep public > /dev/null)"
> pretxnclose-bookmark.force-forward = sh -c "(echo \$HG_BOOKMARK| grep -v NEW > /dev/null) || [ -z \"\$HG_NODE\" ] || (hg log -r \"max(\$HG_OLDNODE::\$HG_NODE)\" -T 'MATCH' | grep MATCH > /dev/null)"
Boris Feld
bookmark: add a dedicated pretxnclose-bookmark hook...
r34710 > EOF
$ hg log -G -T phases
@ changeset: 6:81dcce76aa0b
| tag: tip
| phase: draft
| parent: 4:125c9a1d6df6
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: xx
|
| o changeset: 5:5fb12f0f2d51
| | branch: test
| | bookmark: Z
| | phase: draft
| | parent: 3:9ba5f110a0b3
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: yy
| |
o | changeset: 4:125c9a1d6df6
| | bookmark: Y
| | bookmark: Z@2
| | phase: public
| | parent: 2:db815d6d32e6
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: x
| |
| o changeset: 3:9ba5f110a0b3
|/ branch: test
| bookmark: foo
| bookmark: four
| phase: public
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: y
|
o changeset: 2:db815d6d32e6
| bookmark: foo@2
| bookmark: should-end-on-two
| bookmark: x y
| phase: public
| parent: 0:f7b1eb17ad24
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 2
|
| o changeset: 1:925d80f479bb
|/ bookmark: X2
| bookmark: Z@1
| phase: public
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 1
|
o changeset: 0:f7b1eb17ad24
bookmark: foo@1
phase: public
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 0
attempt to create on a default changeset
$ hg bookmark -r 81dcce76aa0b NEW
transaction abort!
rollback completed
abort: pretxnclose-bookmark.force-public hook exited with status 1
[255]
create on a public changeset
$ hg bookmark -r 9ba5f110a0b3 NEW
move to the other branch
$ hg bookmark -f -r 125c9a1d6df6 NEW
transaction abort!
rollback completed
abort: pretxnclose-bookmark.force-forward hook exited with status 1
[255]