mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
011f0f625e
The default behaviour to forbid this makes a lot of sense for novice users because it's safeguarding them from dangerous behavior but making it configurable will be apprieciated by power users in at least one big organization. It allows an user to look an histedit rules from declarative perspective and make the rules reflect the state after histedit. If we can move lines t move commits why can't we drop lines to drop commits? Let's put this behind config knob and inform users about this feature the very moment they are trying to use it so they can choose desired behaviour.
174 lines
4.2 KiB
Raku
174 lines
4.2 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
|
|
|
|
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
|
|
|
|
|
|
$ hg histedit cb9a9f314b8b --commands - 2>&1 << EOF | fixbundle
|
|
> pick cb9a9f314b8b a
|
|
> pick ee283cb5f2d5 e
|
|
> EOF
|
|
abort: missing rules for changeset a4f7421b80f7
|
|
(use "drop a4f7421b80f7" to discard, see also: "hg help -e histedit.config")
|
|
$ hg --config histedit.dropmissing=True histedit cb9a9f314b8b --commands - 2>&1 << EOF | fixbundle
|
|
> pick cb9a9f314b8b a
|
|
> pick ee283cb5f2d5 e
|
|
> EOF
|
|
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
|
|
$ hg log --graph
|
|
@ changeset: 1:e99c679bf03e
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|