##// END OF EJS Templates
repository: define manifest interfaces...
repository: define manifest interfaces The long march towards declaring interfaces for repository primitives continues. This commit essentially defines interfaces based on the following types: * manifest.manifestdict -> imanifestdict * manifest.manifestlog -> imanifestlog * manifest.memmanifestctx -> imanifestrevisionwritable * manifest.manifestctx -> imanifestrevisionstored * manifest.memtreemanifestctx -> imanifestrevisionwritable * manifest.treemanifestctx -> imanifestrevisionstored * util.dirs -> idirs The interfaces are thoroughly documented. Their documentation is now better than the documentation in manifest.py in many cases. With the exception of util.dirs, classes have been annotated with their interfaces. (I didn't feel like util.dirs needed the proper interface treatment.) Tests have been added demonstrating that all classes and instances conform to their interfaces. This work was much easier than filelogs. That's because Durham did an excellent job formalizing the manifest API a while back. There are still some minor kludges with the interfaces that should probably be addressed. But the primary goal with interface declarations is getting something established. Once we have an interface, we can modify it later easily enough. Differential Revision: https://phab.mercurial-scm.org/D3869

File last commit:

r35386:469b06b4 default
r38549:c82ea938 default
Show More
test-rebase-detach.t
317 lines | 5.5 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-detach.t
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
> [alias]
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 > tglog = log -G --template "{rev}: {node|short} '{desc}'\n"
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 >
> [extensions]
> drawdag=$TESTDIR/drawdag.py
Adrian Buehlmann
tests: unify test-rebase*
r12608 > EOF
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 Rebasing D onto B detaching from C (one commit):
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ hg init a1
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cd a1
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/e7b3f00ed42e-6f368371-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 o 3:secret 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 2:draft 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 o | 1:draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o 0:draft 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Pierre-Yves David
tests: prepare rebase test for wc parent preservation...
r19924 $ hg manifest --rev tip
Adrian Buehlmann
tests: unify test-rebase*
r12608 A
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 B
Adrian Buehlmann
tests: unify test-rebase*
r12608 D
$ cd ..
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 Rebasing D onto B detaching from C (two commits):
$ hg init a2
$ cd a2
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a2/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: ee79e0744528 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 10530e1d72d9 'D'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: dc0947a82db8 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: 112478962961 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Pierre-Yves David
tests: prepare rebase test for wc parent preservation...
r19924 $ hg manifest --rev tip
Adrian Buehlmann
tests: unify test-rebase*
r12608 A
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/dc0947a82db8-b8481714-rebase.hg
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 7375f3dbfb0f 'D'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: bbfdd6cb49aa 'C'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: 112478962961 'B'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
$ hg manifest --rev tip
A
B
Adrian Buehlmann
tests: unify test-rebase*
r12608 C
D
$ cd ..
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a4/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/dc0947a82db8-3eefec98-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: e3d0c70d606d 'E'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: e9153d36a1af 'D'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: a7ac28b870a8 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: fc2b737bb2e5 'B'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
$ hg rebase -d 1 -s 3
rebasing 3:e9153d36a1af "D"
rebasing 4:e3d0c70d606d "E" (tip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/e9153d36a1af-db7388ed-rebase.hg
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 2c24e540eccd 'E'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 73f786ed52ff 'D'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: a7ac28b870a8 'C'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: fc2b737bb2e5 'B'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ cd ..
Verify that target is not selected as external rev (issue3085)
$ hg init a6
$ cd a6
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ 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"
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 7: c6aaf0d259c0 'J'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 6: 0cfbc7e8faaf 'Merge'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 |\
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 5: b92d164ad3cb 'I'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 4: 4ea5b230dea3 'H'
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: c6001eacfde5 'G'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |/|
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 2: 8908a377a434 'F'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 7fb047a69f22 'E'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a6/.hg/strip-backup/b92d164ad3cb-88fd7ab7-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 5: 65079693dac4 'Collapsed revision
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 | * I
| * Merge
| * J'
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 4ea5b230dea3 'H'
Henrik Stuart
rebase: support --detach when null is common ancestor
r13021 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: c6001eacfde5 'G'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |/|
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 2: 8908a377a434 'F'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 7fb047a69f22 'E'
Nicolas Dumazet
tests: change test-rebase-detach to use bundle/rebase.hg
r14121 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 426bada5c675 'A'
Henrik Stuart
rebase: support --detach when null is common ancestor
r13021
Pierre-Yves David
rebase: allow rebase to ancestor (issue3010)...
r15132
Pierre-Yves David
tests: prepare rebase test for wc parent preservation...
r19924 $ hg log --rev tip
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 changeset: 5:65079693dac4
Stefano Tortarolo
rebase: ensure target is not taken as external (issue3085)...
r15469 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: Collapsed revision
$ cd ..
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 Ensure --continue restores a correct state (issue3046) and phase:
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 $ hg init a7
Stefano Tortarolo
rebase: ensure target is not taken as external (issue3085)...
r15469 $ cd a7
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560
$ 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: conflicts while merging B! (edit, then use 'hg resolve --mark')
Augie Fackler
rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
r18933 unresolved conflicts (see hg resolve, then hg rebase --continue)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Stefano Tortarolo
rebase: treat nullmerge as a special case in rebasestate (issue3046)...
r15464 $ hg resolve --all -t internal:local
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
timeless
rebase: hook afterresolvedstates
r27626 continue: hg rebase --continue
Stefano Tortarolo
rebase: treat nullmerge as a special case in rebasestate (issue3046)...
r15464 $ hg rebase -c
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 rebasing 3:17b4880d2402 "B2" (tip)
note: rebase of 3:17b4880d2402 created no changes to commit
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a7/.hg/strip-backup/17b4880d2402-1ae1f6cc-rebase.hg
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 o 2:draft 'C'
Stefano Tortarolo
rebase: treat nullmerge as a special case in rebasestate (issue3046)...
r15464 |
Martin von Zweigbergk
tests: rewrite test-rebase-detach.t using drawdag...
r33560 | @ 1:draft 'B'
Stefano Tortarolo
rebase: treat nullmerge as a special case in rebasestate (issue3046)...
r15464 |/
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o 0:draft 'A'
Stefano Tortarolo
rebase: treat nullmerge as a special case in rebasestate (issue3046)...
r15464
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..