mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
4e97391ce2
Previously histedit only stored the short version of the rule nodes in the state. This meant that later we couldn't resolve a rule node to its full form if the commit had been deleted from the repo. Let's store the full form from the beginning.
155 lines
3.6 KiB
Raku
155 lines
3.6 KiB
Raku
$ . "$TESTDIR/histedit-helpers.sh"
|
|
|
|
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> histedit=
|
|
> EOF
|
|
|
|
$ initrepo ()
|
|
> {
|
|
> hg init r
|
|
> cd r
|
|
> for x in a b c d e f ; do
|
|
> echo $x > $x
|
|
> hg add $x
|
|
> hg ci -m $x
|
|
> done
|
|
> }
|
|
|
|
$ initrepo
|
|
|
|
log before edit
|
|
$ hg log --graph
|
|
@ changeset: 5:652413bf663e
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: f
|
|
|
|
|
o changeset: 4:e860deea161a
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 3:055a42cdd887
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: d
|
|
|
|
|
o changeset: 2:177f92b77385
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: c
|
|
|
|
|
o changeset: 1:d2ae7f538514
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: b
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
|
|
edit the history
|
|
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF | fixbundle
|
|
> drop 177f92b77385 c
|
|
> pick e860deea161a e
|
|
> pick 652413bf663e f
|
|
> pick 055a42cdd887 d
|
|
> EOF
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
log after edit
|
|
$ hg log --graph
|
|
@ changeset: 4:f518305ce889
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: d
|
|
|
|
|
o changeset: 3:a4f7421b80f7
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: f
|
|
|
|
|
o changeset: 2:ee283cb5f2d5
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 1:d2ae7f538514
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: b
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
|
|
Check histedit_source
|
|
|
|
$ hg log --debug --rev f518305ce889
|
|
changeset: 4:f518305ce889c07cb5bd05522176d75590ef3324
|
|
tag: tip
|
|
phase: draft
|
|
parent: 3:a4f7421b80f79fcc59fff01bcbf4a53d127dd6d3
|
|
parent: -1:0000000000000000000000000000000000000000
|
|
manifest: 4:d3d4f51c157ff242c32ff745d4799aaa26ccda44
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files+: d
|
|
extra: branch=default
|
|
extra: histedit_source=055a42cdd88768532f9cf79daa407fc8d138de9b
|
|
description:
|
|
d
|
|
|
|
|
|
|
|
manifest after edit
|
|
$ hg manifest
|
|
a
|
|
b
|
|
d
|
|
e
|
|
f
|
|
|
|
Drop the last changeset
|
|
|
|
$ hg histedit ee283cb5f2d5 --commands - 2>&1 << EOF | fixbundle
|
|
> pick ee283cb5f2d5 e
|
|
> pick a4f7421b80f7 f
|
|
> drop f518305ce889 d
|
|
> EOF
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
$ hg log --graph
|
|
@ changeset: 3:a4f7421b80f7
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: f
|
|
|
|
|
o changeset: 2:ee283cb5f2d5
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 1:d2ae7f538514
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: b
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
|
|
$ cd ..
|