mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
3e592b81ae
Summary: When you get an error, let's print the number of conflicts in each file. This will give the user some sense of how much work they have to do. The code change is entirely in `filemerge.py`, and `tests/test-merge-conflict-count.t` adds a new test. Reviewed By: quark-zju Differential Revision: D9815243 fbshipit-source-id: 1b73a1db293902ac7242997a7d6ae09478344068
314 lines
5.3 KiB
Raku
314 lines
5.3 KiB
Raku
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> rebase=
|
|
>
|
|
> [extensions]
|
|
> EOF
|
|
|
|
Rebasing D onto B detaching from C (one commit):
|
|
|
|
$ hg init a1
|
|
$ cd a1
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> D
|
|
> |
|
|
> C B
|
|
> |/
|
|
> A
|
|
> EOF
|
|
$ hg phase --force --secret D
|
|
|
|
$ hg rebase -s D -d B
|
|
rebasing 3:e7b3f00ed42e "D" (D tip)
|
|
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/e7b3f00ed42e-6f368371-rebase.hg
|
|
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
|
o 3:secret 'D'
|
|
|
|
|
| o 2:draft 'C'
|
|
| |
|
|
o | 1:draft 'B'
|
|
|/
|
|
o 0:draft 'A'
|
|
|
|
$ hg manifest --rev tip
|
|
A
|
|
B
|
|
D
|
|
|
|
$ cd ..
|
|
|
|
|
|
Rebasing D onto B detaching from C (two commits):
|
|
|
|
$ hg init a2
|
|
$ cd a2
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> E
|
|
> |
|
|
> D
|
|
> |
|
|
> C B
|
|
> |/
|
|
> A
|
|
> EOF
|
|
|
|
$ hg rebase -s D -d B
|
|
rebasing 3:e7b3f00ed42e "D" (D)
|
|
rebasing 4:69a34c08022a "E" (E tip)
|
|
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg
|
|
|
|
$ tglog
|
|
o 4: ee79e0744528 'E'
|
|
|
|
|
o 3: 10530e1d72d9 'D'
|
|
|
|
|
| o 2: dc0947a82db8 'C'
|
|
| |
|
|
o | 1: 112478962961 'B'
|
|
|/
|
|
o 0: 426bada5c675 'A'
|
|
|
|
$ hg manifest --rev tip
|
|
A
|
|
B
|
|
D
|
|
E
|
|
|
|
$ cd ..
|
|
|
|
Rebasing C onto B using detach (same as not using it):
|
|
|
|
$ hg init a3
|
|
$ cd a3
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> D
|
|
> |
|
|
> C B
|
|
> |/
|
|
> A
|
|
> EOF
|
|
|
|
$ hg rebase -s C -d B
|
|
rebasing 2:dc0947a82db8 "C" (C)
|
|
rebasing 3:e7b3f00ed42e "D" (D tip)
|
|
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/dc0947a82db8-b8481714-rebase.hg
|
|
|
|
$ tglog
|
|
o 3: 7375f3dbfb0f 'D'
|
|
|
|
|
o 2: bbfdd6cb49aa 'C'
|
|
|
|
|
o 1: 112478962961 'B'
|
|
|
|
|
o 0: 426bada5c675 'A'
|
|
|
|
$ hg manifest --rev tip
|
|
A
|
|
B
|
|
C
|
|
D
|
|
|
|
$ cd ..
|
|
|
|
|
|
Rebasing D onto B detaching from C and collapsing:
|
|
|
|
$ hg init a4
|
|
$ cd a4
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> E
|
|
> |
|
|
> D
|
|
> |
|
|
> C B
|
|
> |/
|
|
> A
|
|
> EOF
|
|
$ hg phase --force --secret E
|
|
|
|
$ hg rebase --collapse -s D -d B
|
|
rebasing 3:e7b3f00ed42e "D" (D)
|
|
rebasing 4:69a34c08022a "E" (E tip)
|
|
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg
|
|
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
|
o 3:secret 'Collapsed revision
|
|
| * D
|
|
| * E'
|
|
| o 2:draft 'C'
|
|
| |
|
|
o | 1:draft 'B'
|
|
|/
|
|
o 0:draft 'A'
|
|
|
|
$ hg manifest --rev tip
|
|
A
|
|
B
|
|
D
|
|
E
|
|
|
|
$ cd ..
|
|
|
|
Rebasing across null as ancestor
|
|
$ hg init a5
|
|
$ cd a5
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> E
|
|
> |
|
|
> D
|
|
> |
|
|
> C
|
|
> |
|
|
> A B
|
|
> EOF
|
|
|
|
$ hg rebase -s C -d B
|
|
rebasing 2:dc0947a82db8 "C" (C)
|
|
rebasing 3:e7b3f00ed42e "D" (D)
|
|
rebasing 4:69a34c08022a "E" (E tip)
|
|
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/dc0947a82db8-3eefec98-rebase.hg
|
|
|
|
$ tglog
|
|
o 4: e3d0c70d606d 'E'
|
|
|
|
|
o 3: e9153d36a1af 'D'
|
|
|
|
|
o 2: a7ac28b870a8 'C'
|
|
|
|
|
o 1: fc2b737bb2e5 'B'
|
|
|
|
o 0: 426bada5c675 'A'
|
|
|
|
$ hg rebase -d 1 -s 3
|
|
rebasing 3:e9153d36a1af "D"
|
|
rebasing 4:e3d0c70d606d "E" (tip)
|
|
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/e9153d36a1af-db7388ed-rebase.hg
|
|
$ tglog
|
|
o 4: 2c24e540eccd 'E'
|
|
|
|
|
o 3: 73f786ed52ff 'D'
|
|
|
|
|
| o 2: a7ac28b870a8 'C'
|
|
|/
|
|
o 1: fc2b737bb2e5 'B'
|
|
|
|
o 0: 426bada5c675 'A'
|
|
|
|
$ cd ..
|
|
|
|
Verify that target is not selected as external rev (issue3085)
|
|
|
|
$ hg init a6
|
|
$ cd a6
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> H
|
|
> | G
|
|
> |/|
|
|
> F E
|
|
> |/
|
|
> A
|
|
> EOF
|
|
$ hg up -q G
|
|
|
|
$ echo "I" >> E
|
|
$ hg ci -m "I"
|
|
$ hg tag --local I
|
|
$ hg merge H
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
$ hg ci -m "Merge"
|
|
$ echo "J" >> F
|
|
$ hg ci -m "J"
|
|
$ tglog
|
|
@ 7: c6aaf0d259c0 'J'
|
|
|
|
|
o 6: 0cfbc7e8faaf 'Merge'
|
|
|\
|
|
| o 5: b92d164ad3cb 'I'
|
|
| |
|
|
o | 4: 4ea5b230dea3 'H'
|
|
| |
|
|
| o 3: c6001eacfde5 'G'
|
|
|/|
|
|
o | 2: 8908a377a434 'F'
|
|
| |
|
|
| o 1: 7fb047a69f22 'E'
|
|
|/
|
|
o 0: 426bada5c675 'A'
|
|
|
|
$ hg rebase -s I -d H --collapse --config ui.merge=internal:other
|
|
rebasing 5:b92d164ad3cb "I" (I)
|
|
rebasing 6:0cfbc7e8faaf "Merge"
|
|
rebasing 7:c6aaf0d259c0 "J" (tip)
|
|
saved backup bundle to $TESTTMP/a6/.hg/strip-backup/b92d164ad3cb-88fd7ab7-rebase.hg
|
|
|
|
$ tglog
|
|
@ 5: 65079693dac4 'Collapsed revision
|
|
| * I
|
|
| * Merge
|
|
| * J'
|
|
o 4: 4ea5b230dea3 'H'
|
|
|
|
|
| o 3: c6001eacfde5 'G'
|
|
|/|
|
|
o | 2: 8908a377a434 'F'
|
|
| |
|
|
| o 1: 7fb047a69f22 'E'
|
|
|/
|
|
o 0: 426bada5c675 'A'
|
|
|
|
|
|
$ hg log --rev tip
|
|
changeset: 5:65079693dac4
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: Collapsed revision
|
|
|
|
|
|
$ cd ..
|
|
|
|
Ensure --continue restores a correct state (issue3046) and phase:
|
|
$ hg init a7
|
|
$ cd a7
|
|
|
|
$ hg debugdrawdag <<EOF
|
|
> C B
|
|
> |/
|
|
> A
|
|
> EOF
|
|
$ hg up -q C
|
|
$ echo 'B2' > B
|
|
$ hg ci -A -m 'B2'
|
|
adding B
|
|
$ hg phase --force --secret .
|
|
$ hg rebase -s . -d B --config ui.merge=internal:fail
|
|
rebasing 3:17b4880d2402 "B2" (tip)
|
|
merging B
|
|
warning: 1 conflicts while merging B! (edit, then use 'hg resolve --mark')
|
|
unresolved conflicts (see hg resolve, then hg rebase --continue)
|
|
[1]
|
|
$ hg resolve --all -t internal:local
|
|
(no more unresolved files)
|
|
continue: hg rebase --continue
|
|
$ hg rebase -c
|
|
rebasing 3:17b4880d2402 "B2" (tip)
|
|
note: rebase of 3:17b4880d2402 created no changes to commit
|
|
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/17b4880d2402-1ae1f6cc-rebase.hg
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
|
o 2:draft 'C'
|
|
|
|
|
| @ 1:draft 'B'
|
|
|/
|
|
o 0:draft 'A'
|
|
|
|
|
|
$ cd ..
|