mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
de4c701f51
When you rebased with a currently active bookmark, that bookmark would always point at the new tip, regardless of what revision it pointed at before the rebase. All bookmarks will now point at the equivalent post-rebase commit. However, the currently active bookmark will cease to be active unless it points at the new tip post-rebase. Rebase will always leave the new tip as the working copy parent, which is incompatible with having an active bookmark that points at some other revision. The common case should be that the active bookmark will point at the new tip post-rebase.
114 lines
1.6 KiB
Raku
114 lines
1.6 KiB
Raku
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> graphlog=
|
|
> rebase=
|
|
>
|
|
> [phases]
|
|
> publish=False
|
|
>
|
|
> [alias]
|
|
> tglog = log -G --template "{rev}: '{desc}' bookmarks: {bookmarks}\n"
|
|
> EOF
|
|
|
|
Create a repo with several bookmarks
|
|
$ hg init a
|
|
$ cd a
|
|
|
|
$ echo a > a
|
|
$ hg ci -Am A
|
|
adding a
|
|
|
|
$ echo b > b
|
|
$ hg ci -Am B
|
|
adding b
|
|
$ hg book 'X'
|
|
$ hg book 'Y'
|
|
|
|
$ echo c > c
|
|
$ hg ci -Am C
|
|
adding c
|
|
$ hg book 'Z'
|
|
|
|
$ hg up -q 0
|
|
|
|
$ echo d > d
|
|
$ hg ci -Am D
|
|
adding d
|
|
created new head
|
|
|
|
$ hg book W
|
|
|
|
$ hg tglog
|
|
@ 3: 'D' bookmarks: W
|
|
|
|
|
| o 2: 'C' bookmarks: Y Z
|
|
| |
|
|
| o 1: 'B' bookmarks: X
|
|
|/
|
|
o 0: 'A' bookmarks:
|
|
|
|
|
|
Move only rebased bookmarks
|
|
|
|
$ cd ..
|
|
$ hg clone -q a a1
|
|
|
|
$ cd a1
|
|
$ hg up -q Z
|
|
|
|
$ hg rebase -s Y -d 3
|
|
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg tglog
|
|
@ 3: 'C' bookmarks: Y Z
|
|
|
|
|
o 2: 'D' bookmarks: W
|
|
|
|
|
| o 1: 'B' bookmarks: X
|
|
|/
|
|
o 0: 'A' bookmarks:
|
|
|
|
Keep bookmarks to the correct rebased changeset
|
|
|
|
$ cd ..
|
|
$ hg clone -q a a2
|
|
|
|
$ cd a2
|
|
$ hg up -q Z
|
|
|
|
$ hg rebase -s 1 -d 3
|
|
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg tglog
|
|
@ 3: 'C' bookmarks: Y Z
|
|
|
|
|
o 2: 'B' bookmarks: X
|
|
|
|
|
o 1: 'D' bookmarks: W
|
|
|
|
|
o 0: 'A' bookmarks:
|
|
|
|
|
|
Keep active bookmark on the correct changeset
|
|
|
|
$ cd ..
|
|
$ hg clone -q a a3
|
|
|
|
$ cd a3
|
|
$ hg up -q X
|
|
|
|
$ hg rebase -d W
|
|
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg tglog
|
|
@ 3: 'C' bookmarks: Y Z
|
|
|
|
|
o 2: 'B' bookmarks: X
|
|
|
|
|
o 1: 'D' bookmarks: W
|
|
|
|
|
o 0: 'A' bookmarks:
|
|
|
|
|
|
$ cd ..
|