summary: show active bookmark even if not at current changeset
Before this change, 'hg summary' would not show the active bookmark
unless it pointed to the working directory parent. After this change, it
will show it in parentheses, like so:
parent: 18581:
f0ff45fe6700 tip
summary: simplify handling of active bookmark
branch: default
bookmarks: [crew]
commit: (clean)
update: (current)
$ cat >> $HGRCPATH <<EOF
> [extensions]
> graphlog=
> rebase=
>
> [alias]
> tlog = log --template "{rev}: '{desc}' {branches}\n"
> tglog = tlog --graph
> EOF
$ hg init a
$ cd a
$ echo a > a
$ hg ci -Am A
adding a
$ echo b > b
$ hg ci -Am B
adding b
$ hg mv b b-renamed
$ hg ci -m 'rename B'
$ hg up -q -C 1
$ hg mv a a-renamed
$ hg ci -m 'rename A'
created new head
$ hg tglog
@ 3: 'rename A'
|
| o 2: 'rename B'
|/
o 1: 'B'
|
o 0: 'A'
Rename is tracked:
$ hg tlog -p --git -r tip
3: 'rename A'
diff --git a/a b/a-renamed
rename from a
rename to a-renamed
Rebase the revision containing the rename:
$ hg rebase -s 3 -d 2
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@ 3: 'rename A'
|
o 2: 'rename B'
|
o 1: 'B'
|
o 0: 'A'
Rename is not lost:
$ hg tlog -p --git -r tip
3: 'rename A'
diff --git a/a b/a-renamed
rename from a
rename to a-renamed
Rebased revision does not contain information about b (issue3739)
$ hg log -r 3 --debug
changeset: 3:3b905b1064f14ace3ad02353b79dd42d32981655
tag: tip
phase: draft
parent: 2:920a371a5635af23a26a011ca346cecd1cfcb942
parent: -1:0000000000000000000000000000000000000000
manifest: 3:c4a62b2b64593c8fe0523d4c1ba2e243a8bd4dce
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files+: a-renamed
files-: a
extra: branch=default
extra: rebase_source=89af05cb38a281f891c6f5581dd027092da29166
description:
rename A
$ cd ..
$ hg init b
$ cd b
$ echo a > a
$ hg ci -Am A
adding a
$ echo b > b
$ hg ci -Am B
adding b
$ hg cp b b-copied
$ hg ci -Am 'copy B'
$ hg up -q -C 1
$ hg cp a a-copied
$ hg ci -m 'copy A'
created new head
$ hg tglog
@ 3: 'copy A'
|
| o 2: 'copy B'
|/
o 1: 'B'
|
o 0: 'A'
Copy is tracked:
$ hg tlog -p --git -r tip
3: 'copy A'
diff --git a/a b/a-copied
copy from a
copy to a-copied
Rebase the revision containing the copy:
$ hg rebase -s 3 -d 2
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@ 3: 'copy A'
|
o 2: 'copy B'
|
o 1: 'B'
|
o 0: 'A'
Copy is not lost:
$ hg tlog -p --git -r tip
3: 'copy A'
diff --git a/a b/a-copied
copy from a
copy to a-copied
Rebased revision does not contain information about b (issue3739)
$ hg log -r 3 --debug
changeset: 3:98f6e6dbf45ab54079c2237fbd11066a5c41a11d
tag: tip
phase: draft
parent: 2:39e588434882ff77d01229d169cdc77f29e8855e
parent: -1:0000000000000000000000000000000000000000
manifest: 3:2232f329d66fffe3930d43479ae624f66322b04d
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files+: a-copied
extra: branch=default
extra: rebase_source=0a8162ff18a8900df8df8ef7ac0046955205613e
description:
copy A
$ cd ..
Test rebase across repeating renames:
$ hg init repo
$ cd repo
$ echo testing > file1.txt
$ hg add file1.txt
$ hg ci -m "Adding file1"
$ hg rename file1.txt file2.txt
$ hg ci -m "Rename file1 to file2"
$ echo Unrelated change > unrelated.txt
$ hg add unrelated.txt
$ hg ci -m "Unrelated change"
$ hg rename file2.txt file1.txt
$ hg ci -m "Rename file2 back to file1"
$ hg update -r -2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo Another unrelated change >> unrelated.txt
$ hg ci -m "Another unrelated change"
created new head
$ hg tglog
@ 4: 'Another unrelated change'
|
| o 3: 'Rename file2 back to file1'
|/
o 2: 'Unrelated change'
|
o 1: 'Rename file1 to file2'
|
o 0: 'Adding file1'
$ hg rebase -s 4 -d 3
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
$ hg diff --stat -c .
unrelated.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$ cd ..