mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
316cae170e
Summary: This feature allows the user to choose what lines exist in what changesets precisely, for example: HG: editing a HG: "y" means the line to the right exists in the changeset to the top HG: HG: /---- 991104c93ef1 commit 1 HG: |/--- aa7e21df9b0b commit 2 HG: ||/-- 05b39f5d9141 commit 3 HG: ||| yyy : 1 yy : 2 y : 3 The feature can be used to "move" lines among changesets, or generally editing the contents in a new way. So it's not limited in the "absorb" use-case. We may want to give it another name in the future. Test Plan: Added a new test case Reviewers: #mercurial, rmcelroy, ttung Reviewed By: rmcelroy Subscribers: rmcelroy, mjpieters Differential Revision: https://phabricator.intern.facebook.com/D3841494 Signature: t1:3841494:1473769708:1bb2a46c010222438ceaae69ea0dca39e37581d2
66 lines
1.1 KiB
Perl
66 lines
1.1 KiB
Perl
$ PYTHONPATH=$TESTDIR/../:$PYTHONPATH
|
|
$ export PYTHONPATH
|
|
|
|
$ extpath=`dirname $TESTDIR`
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> absorb=$extpath/hgext3rd/absorb.py
|
|
> EOF
|
|
|
|
$ hg init repo1
|
|
$ cd repo1
|
|
|
|
Make some commits:
|
|
|
|
$ for i in 1 2 3; do
|
|
> echo $i >> a
|
|
> hg commit -A a -m "commit $i" -q
|
|
> done
|
|
|
|
absorb --edit-lines will run the editor if filename is provided:
|
|
|
|
$ hg absorb --edit-lines
|
|
nothing applied
|
|
[1]
|
|
$ HGEDITOR=cat hg absorb --edit-lines a
|
|
HG: editing a
|
|
HG: "y" means the line to the right exists in the changeset to the top
|
|
HG:
|
|
HG: /---- 4ec16f85269a commit 1
|
|
HG: |/--- 5c5f95224a50 commit 2
|
|
HG: ||/-- 43f0a75bede7 commit 3
|
|
HG: |||
|
|
yyy : 1
|
|
yy : 2
|
|
y : 3
|
|
nothing applied
|
|
[1]
|
|
|
|
Edit the file using --edit-lines:
|
|
|
|
$ cat > editortext << EOF
|
|
> y : a
|
|
> yy : b
|
|
> y : c
|
|
> yy : d
|
|
> y y : e
|
|
> y : f
|
|
> yyy : g
|
|
> EOF
|
|
$ HGEDITOR='cat editortext >' hg absorb -q --edit-lines a
|
|
$ hg cat -r 0 a
|
|
d
|
|
e
|
|
f
|
|
g
|
|
$ hg cat -r 1 a
|
|
b
|
|
c
|
|
d
|
|
g
|
|
$ hg cat -r 2 a
|
|
a
|
|
b
|
|
e
|
|
g
|