##// END OF EJS Templates
sshpeer: initial definition and implementation of new SSH protocol...
sshpeer: initial definition and implementation of new SSH protocol The existing SSH protocol has several design flaws. Future commits will elaborate on these flaws as new features are introduced to combat these flaws. For now, hopefully you can take me for my word that a ground up rewrite of the SSH protocol is needed. This commit lays the foundation for a new SSH protocol by defining a mechanism to upgrade the SSH transport channel away from the default (version 1) protocol to something modern (which we'll call "version 2" for now). This upgrade process is detailed in the internals documentation for the wire protocol. The gist of it is the client sends a request line preceding the "hello" command/line which basically says "I'm requesting an upgrade: here's what I support." If the server recognizes that line, it processes the upgrade request and the transport channel is switched to use the new version of the protocol. If not, it sends an empty response, which is how all Mercurial SSH servers from the beginning of time reacted to unknown commands. The upgrade request is effectively ignored and the client continues to use the existing version of the protocol as if nothing happened. The new version of the SSH protocol is completely identical to version 1 aside from the upgrade dance and the bytes that follow. The immediate bytes that follow the protocol switch are defined to be a length framed "capabilities: " line containing the remote's advertised capabilities. In reality, this looks very similar to what the "hello" response would look like. But it will evolve quickly. The methodology by which the protocol will evolve is important. I'm not going to introduce the new protocol all at once. That would likely lead to endless bike shedding and forward progress would stall. Instead, I intend to tricle out new features and diversions from the existing protocol in small, incremental changes. To support the gradual evolution of the protocol, the on-the-wire advertised protocol name contains an "exp" to denote "experimental" and a 4 digit field to capture the sub-version of the protocol. Whenever we make a BC change to the wire protocol, we can increment this version and lock out all older clients because it will appear as a completely different protocol version. This means we can incur as many breaking changes as we want. We don't have to commit to supporting any one feature or idea for a long period of time. We can even evolve the handshake mechanism, because that is defined as being an implementation detail of the negotiated protocol version! Hopefully this lowers the barrier to accepting changes to the protocol and for experimenting with "radical" ideas during its development. In core, sshpeer received most of the attention. We haven't even implemented the server bits for the new protocol in core yet. Instead, we add very primitive support to our test server, mainly just to exercise the added code paths in sshpeer. Differential Revision: https://phab.mercurial-scm.org/D2061 # no-check-commit because of required foo_bar naming

File last commit:

r35386:469b06b4 default
r35994:48a3a928 default
Show More
test-rebase-interruptions.t
465 lines | 9.6 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-interruptions.t
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
Pierre-Yves David
phases: prevent rebase to rebase immutable changeset.
r15742 > [phases]
> publish=False
>
Adrian Buehlmann
tests: unify test-rebase*
r12608 > [alias]
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 > tglog = log -G --template "{rev}: {node|short} '{desc}' {branches}\n"
> tglogp = log -G --template "{rev}: {node|short} {phase} '{desc}' {branches}\n"
Adrian Buehlmann
tests: unify test-rebase*
r12608 > EOF
$ hg init a
$ cd a
$ echo A > A
$ hg ci -Am A
adding A
$ echo B > B
$ hg ci -Am B
adding B
$ echo C >> A
$ hg ci -m C
$ hg up -q -C 0
$ echo D >> A
$ hg ci -m D
created new head
$ echo E > E
$ hg ci -Am E
adding E
$ cd ..
Changes during an interruption - continue:
$ hg clone -q -u . a a1
$ cd a1
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 4: ae36e8e3dfd7 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Force a commit on C during the interruption:
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 2 --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ echo 'Extra' > Extra
$ hg add Extra
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 Force this commit onto secret phase
$ hg phase --force --secret 6
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: deb5d2f93d8b secret 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 5: 45396c49d53b draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 4: ae36e8e3dfd7 draft 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: 46b37eabc604 draft 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 2: 965c486023db draft 'C'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: 27547f69f254 draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b draft 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Resume the rebasing:
$ hg rebase --continue
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 already rebased 1:27547f69f254 "B" as 45396c49d53b
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Solve the conflict and go on:
$ echo 'conflict solved' > A
$ rm A.orig
$ hg resolve -m A
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
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg rebase --continue
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 already rebased 1:27547f69f254 "B" as 45396c49d53b
rebasing 2:965c486023db "C"
Jun Wu
rebase: use scmutil.cleanupnodes (issue5606) (BC)...
r33332 warning: orphaned descendants detected, not stripping 27547f69f254, 965c486023db
Adrian Buehlmann
tests: unify test-rebase*
r12608
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 7: d2d25e26288e draft 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 6: deb5d2f93d8b secret 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 5: 45396c49d53b draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ | 4: ae36e8e3dfd7 draft 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 3: 46b37eabc604 draft 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db draft 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b draft 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ cd ..
Changes during an interruption - abort:
$ hg clone -q -u . a a2
$ cd a2
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 4: ae36e8e3dfd7 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Force a commit on B' during the interruption:
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 5 --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ echo 'Extra' > Extra
$ hg add Extra
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 402ee3642b59 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 45396c49d53b 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: ae36e8e3dfd7 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Abort the rebasing:
$ hg rebase --abort
Martin von Zweigbergk
rebase: rename "target" to "destination" in messages...
r32249 warning: new changesets detected on destination branch, can't strip
Matt Mackall
rebase: allow aborting when descendants detected...
r19518 rebase aborted
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 402ee3642b59 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 45396c49d53b 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: ae36e8e3dfd7 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ cd ..
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 Changes during an interruption - abort (again):
$ hg clone -q -u . a a3
$ cd a3
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 4: ae36e8e3dfd7 draft 'E'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 draft 'D'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db draft 'C'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 draft 'B'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b draft 'A'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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]
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
Change phase on B and B'
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 5 --config 'extensions.rebase=!'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg phase --public 1
$ hg phase --public 5
$ hg phase --secret -f 2
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 5: 45396c49d53b public 'B'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: ae36e8e3dfd7 public 'E'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 public 'D'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db secret 'C'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
Abort the rebasing:
$ hg rebase --abort
Jordi Gutiérrez Hermoso
phases: rewrite "immutable changeset" to "public changeset"...
r25411 warning: can't clean up public changesets 45396c49d53b
Matt Mackall
rebase: continue abort without strip for immutable csets (issue3997)...
r19517 rebase aborted
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 5: 45396c49d53b public 'B'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: ae36e8e3dfd7 public 'E'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 46b37eabc604 public 'D'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db secret 'C'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 Test rebase interrupted by hooks
rebase: provides test case for (issue5610)...
r33137
$ hg up 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo F > F
$ hg add F
$ hg ci -m F
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138
$ cd ..
(precommit version)
$ cp -R a3 hook-precommit
$ cd hook-precommit
$ hg rebase --source 2 --dest 5 --tool internal:other --config 'hooks.precommit=hg status | grep "M A"'
rebasing 2:965c486023db "C"
M A
rebasing 6:a0b2430ebfb8 "F" (tip)
abort: precommit hook exited with status 1
[255]
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 7: 401ccec5e39f secret 'C'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | @ 6: a0b2430ebfb8 secret 'F'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 5: 45396c49d53b public 'B'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 4: ae36e8e3dfd7 public 'E'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 3: 46b37eabc604 public 'D'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db secret 'C'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138
$ hg rebase --continue
already rebased 2:965c486023db "C" as 401ccec5e39f
rebasing 6:a0b2430ebfb8 "F"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/hook-precommit/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 $ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 6e92a149ac6b secret 'F'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 401ccec5e39f secret 'C'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 45396c49d53b public 'B'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: ae36e8e3dfd7 public 'E'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: 46b37eabc604 public 'D'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: reinforce testing around precommit hook interrupting a rebase...
r33138
$ cd ..
(pretxncommit version)
$ cp -R a3 hook-pretxncommit
$ cd hook-pretxncommit
Matt Harbison
test-rebase-interruptions: stabilize for Windows...
r33170 #if windows
$ NODE="%HG_NODE%"
#else
$ NODE="\$HG_NODE"
#endif
$ hg rebase --source 2 --dest 5 --tool internal:other --config "hooks.pretxncommit=hg log -r $NODE | grep \"summary: C\""
rebase: provides test case for (issue5610)...
r33137 rebasing 2:965c486023db "C"
summary: C
rebasing 6:a0b2430ebfb8 "F" (tip)
transaction abort!
rollback completed
abort: pretxncommit hook exited with status 1
[255]
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 7: 401ccec5e39f secret 'C'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | @ 6: a0b2430ebfb8 secret 'F'
rebase: provides test case for (issue5610)...
r33137 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 5: 45396c49d53b public 'B'
rebase: provides test case for (issue5610)...
r33137 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 4: ae36e8e3dfd7 public 'E'
rebase: provides test case for (issue5610)...
r33137 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 3: 46b37eabc604 public 'D'
rebase: provides test case for (issue5610)...
r33137 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db secret 'C'
rebase: provides test case for (issue5610)...
r33137 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: provides test case for (issue5610)...
r33137 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: provides test case for (issue5610)...
r33137
$ hg rebase --continue
already rebased 2:965c486023db "C" as 401ccec5e39f
rebasing 6:a0b2430ebfb8 "F"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/hook-pretxncommit/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg
rebase: provides test case for (issue5610)...
r33137 $ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 6e92a149ac6b secret 'F'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 401ccec5e39f secret 'C'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 45396c49d53b public 'B'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: ae36e8e3dfd7 public 'E'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: 46b37eabc604 public 'D'
rebase: provides test case for (issue5610)...
r33137 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: provides test case for (issue5610)...
r33137 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: provides test case for (issue5610)...
r33137
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ cd ..
rebase: also test abort from pretxnclose error...
r33139
(pretxnclose version)
$ cp -R a3 hook-pretxnclose
$ cd hook-pretxnclose
$ hg rebase --source 2 --dest 5 --tool internal:other --config 'hooks.pretxnclose=hg log -r tip | grep "summary: C"'
rebasing 2:965c486023db "C"
summary: C
rebasing 6:a0b2430ebfb8 "F" (tip)
transaction abort!
rollback completed
abort: pretxnclose hook exited with status 1
[255]
$ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 7: 401ccec5e39f secret 'C'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | @ 6: a0b2430ebfb8 secret 'F'
rebase: also test abort from pretxnclose error...
r33139 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 5: 45396c49d53b public 'B'
rebase: also test abort from pretxnclose error...
r33139 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 4: ae36e8e3dfd7 public 'E'
rebase: also test abort from pretxnclose error...
r33139 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 3: 46b37eabc604 public 'D'
rebase: also test abort from pretxnclose error...
r33139 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 965c486023db secret 'C'
rebase: also test abort from pretxnclose error...
r33139 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: also test abort from pretxnclose error...
r33139 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: also test abort from pretxnclose error...
r33139
$ hg rebase --continue
already rebased 2:965c486023db "C" as 401ccec5e39f
rebasing 6:a0b2430ebfb8 "F"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/hook-pretxnclose/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg
rebase: also test abort from pretxnclose error...
r33139 $ hg tglogp
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 6e92a149ac6b secret 'F'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 401ccec5e39f secret 'C'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 45396c49d53b public 'B'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: ae36e8e3dfd7 public 'E'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: 46b37eabc604 public 'D'
rebase: also test abort from pretxnclose error...
r33139 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 27547f69f254 public 'B'
rebase: also test abort from pretxnclose error...
r33139 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 4a2df7238c3b public 'A'
rebase: also test abort from pretxnclose error...
r33139
$ cd ..
Jeremy Fitzhardinge
rebase: make sure merge state is cleaned up for no-op rebases (issue5494)...
r32313
Make sure merge state is cleaned up after a no-op rebase merge (issue5494)
$ hg init repo
$ cd repo
$ echo a > a
$ hg commit -qAm base
$ echo b >> a
$ hg commit -qm b
$ hg up '.^'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c >> a
$ hg commit -qm c
$ hg rebase -s 1 -d 2 --noninteractive
rebasing 1:fdaca8533b86 "b"
merging a
warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
$ echo a > a
$ echo c >> a
$ hg resolve --mark a
(no more unresolved files)
continue: hg rebase --continue
$ hg rebase --continue
rebasing 1:fdaca8533b86 "b"
note: rebase of 1:fdaca8533b86 created no changes to commit
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fdaca8533b86-7fd70513-rebase.hg
Jeremy Fitzhardinge
rebase: make sure merge state is cleaned up for no-op rebases (issue5494)...
r32313 $ hg resolve --list
$ test -f .hg/merge
[1]