##// END OF EJS Templates
wireprotov2: implement commands as a generator of objects...
wireprotov2: implement commands as a generator of objects Previously, wire protocol version 2 inherited version 1's model of having separate types to represent the results of different wire protocol commands. As I implemented more powerful commands in future commits, I found I was using a common pattern of returning a special type to hold a generator. This meant the command function required a closure to do most of the work. That made logic flow more difficult to follow. I also noticed that many commands were effectively a sequence of objects to be CBOR encoded. I think it makes sense to define version 2 commands as generators. This way, commands can simply emit the data structures they wish to send to the client. This eliminates the need for a closure in command functions and removes encoding from the bodies of commands. As part of this commit, the handling of response objects has been moved into the serverreactor class. This puts the reactor in the driver's seat with regards to CBOR encoding and error handling. Having error handling in the function that emits frames is particularly important because exceptions in that function can lead to things getting in a bad state: I'm fairly certain that uncaught exceptions in the frame generator were causing deadlocks. I also introduced a dedicated error type for explicit error reporting in command handlers. This will be used in subsequent commits. There's still a bit of work to be done here, especially around formalizing the error handling "protocol." I've added yet another TODO to track this so we don't forget. Test output changed because we're using generators and no longer know we are at the end of the data until we hit the end of the generator. This means we can't emit the end-of-stream flag until we've exhausted the generator. Hence the introduction of 0-sized end-of-stream frames. Differential Revision: https://phab.mercurial-scm.org/D4472

File last commit:

r39516:89630d0b default
r39595:07b58266 default
Show More
test-phases-exchange.t
1561 lines | 35.2 KiB | text/troff | Tads3Lexer
/ tests / test-phases-exchange.t
Boris Feld
phases: test phases tracking at the transaction level...
r33459 $ cat >> $HGRCPATH << EOF
> [extensions]
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 > drawdag=$TESTDIR/drawdag.py
Boris Feld
phases: test phases tracking at the transaction level...
r33459 > phasereport=$TESTDIR/testlib/ext-phase-report.py
> EOF
Mads Kiilerich
tests: don't use alias...
r16013 $ hgph() { hg log -G --template "{rev} {phase} {desc} - {node|short}\n" $*; }
Pierre-Yves David
phases: marked content of a changegroup as published
r15484
$ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 > message="$1"
> shift
> hg ci -m "$message" $*
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 > }
$ hg init alpha
$ cd alpha
$ mkcommit a-A
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 1
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ mkcommit a-B
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 1: x -> 1
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ mkcommit a-C
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 2: x -> 1
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ mkcommit a-D
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 3: x -> 1
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 3 draft a-D - b555f63b6063
|
o 2 draft a-C - 54acac6f23ab
|
o 1 draft a-B - 548a3d25dbf0
|
o 0 draft a-A - 054250a37db4
Pierre-Yves David
phases: marked content of a changegroup as published
r15484
$ hg init ../beta
$ hg push -r 1 ../beta
pushing to ../beta
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
test-debug-phase: move rev 0: 1 -> 0
test-debug-phase: move rev 1: 1 -> 0
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 3 draft a-D - b555f63b6063
|
o 2 draft a-C - 54acac6f23ab
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ cd ../beta
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ hg up -q
$ mkcommit b-A
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 2: x -> 1
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 2 draft b-A - f54f1bb90ff3
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 $ hg pull ../alpha
pulling from ../alpha
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 54acac6f23ab:b555f63b6063
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 3: x -> 0
test-debug-phase: new rev 4: x -> 0
Pierre-Yves David
phases: marked content of a changegroup as published
r15484 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 public a-D - b555f63b6063
|
o 3 public a-C - 54acac6f23ab
|
| @ 2 draft b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: marked content of a changegroup as published
r15484
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485 pull did not updated ../alpha state.
Mads Kiilerich
fix trivial spelling errors
r17424 push from alpha to beta should update phase even if nothing is transferred
Pierre-Yves David
phases: marked content of a changegroup as published
r15484
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485 $ cd ../alpha
$ hgph # not updated by remote pull
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 3 draft a-D - b555f63b6063
|
o 2 draft a-C - 54acac6f23ab
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phase: properly compute ancestors of --rev on push (issue3786)...
r20314 $ hg push -r 2 ../beta
pushing to ../beta
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 1 -> 0
Pierre-Yves David
phase: properly compute ancestors of --rev on push (issue3786)...
r20314 [1]
$ hgph
@ 3 draft a-D - b555f63b6063
|
o 2 public a-C - 54acac6f23ab
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485 $ hg push ../beta
pushing to ../beta
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 3: 1 -> 0
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 3 public a-D - b555f63b6063
|
o 2 public a-C - 54acac6f23ab
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: mark content pushed as public in local repo on push
r15485
Pierre-Yves David
phases: set common changeset to public on pull
r15486 update must update phase of common changeset too
$ hg pull ../beta # getting b-A
pulling from ../beta
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets f54f1bb90ff3
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 4: x -> 0
Pierre-Yves David
phases: set common changeset to public on pull
r15486 (run 'hg heads' to see heads, 'hg merge' to merge)
$ cd ../beta
$ hgph # not updated by remote pull
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 public a-D - b555f63b6063
|
o 3 public a-C - 54acac6f23ab
|
| @ 2 draft b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: set common changeset to public on pull
r15486 $ hg pull ../alpha
pulling from ../alpha
searching for changes
no changes found
Boris Feld
phases: use "published" in the phase movement message...
r38268 1 local changesets published
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 1 -> 0
Pierre-Yves David
phases: set common changeset to public on pull
r15486 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 public a-D - b555f63b6063
|
o 3 public a-C - 54acac6f23ab
|
| @ 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: set common changeset to public on pull
r15486
Pierre-Yves David
phases: add a phases.publish option...
r15646 Publish configuration option
----------------------------
Pierre-Yves David
phases: set common changeset to public on pull
r15486
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 Pull
````
Pierre-Yves David
phases: add a phases.publish option...
r15646 changegroup are added without phase movement
$ hg bundle -a ../base.bundle
5 changesets found
$ cd ..
$ hg init mu
$ cd mu
$ cat > .hg/hgrc << EOF
> [phases]
> publish=0
> EOF
$ hg unbundle ../base.bundle
adding changesets
adding manifests
adding file changes
added 5 changesets with 5 changes to 5 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 054250a37db4:b555f63b6063 (5 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 1
test-debug-phase: new rev 1: x -> 1
test-debug-phase: new rev 2: x -> 1
test-debug-phase: new rev 3: x -> 1
test-debug-phase: new rev 4: x -> 1
Pierre-Yves David
phases: add a phases.publish option...
r15646 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 draft a-D - b555f63b6063
|
o 3 draft a-C - 54acac6f23ab
|
| o 2 draft b-A - f54f1bb90ff3
|/
o 1 draft a-B - 548a3d25dbf0
|
o 0 draft a-A - 054250a37db4
Pierre-Yves David
phases: update exchange test to include node hash....
r15647 $ cd ..
Pierre-Yves David
phases: add a phases.publish option...
r15646
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 Pulling from publish=False to publish=False does not move boundary.
$ hg init nu
$ cd nu
$ cat > .hg/hgrc << EOF
> [phases]
> publish=0
> EOF
$ hg pull ../mu -r 54acac6f23ab
pulling from ../mu
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 054250a37db4:54acac6f23ab (3 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 1
test-debug-phase: new rev 1: x -> 1
test-debug-phase: new rev 2: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 (run 'hg update' to get a working copy)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 2 draft a-C - 54acac6f23ab
|
o 1 draft a-B - 548a3d25dbf0
|
o 0 draft a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650
Even for common
$ hg pull ../mu -r f54f1bb90ff3
pulling from ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets f54f1bb90ff3 (1 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 3: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 3 draft b-A - f54f1bb90ff3
|
| o 2 draft a-C - 54acac6f23ab
|/
o 1 draft a-B - 548a3d25dbf0
|
o 0 draft a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650
Pulling from Publish=True to Publish=False move boundary in common set.
we are in nu
$ hg pull ../alpha -r b555f63b6063
pulling from ../alpha
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets b555f63b6063
Boris Feld
phases: use "published" in the phase movement message...
r38268 3 local changesets published
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 0: 1 -> 0
test-debug-phase: move rev 1: 1 -> 0
test-debug-phase: move rev 2: 1 -> 0
test-debug-phase: new rev 4: x -> 0
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 (run 'hg update' to get a working copy)
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 $ hgph # f54f1bb90ff3 stay draft, not ancestor of -r
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 public a-D - b555f63b6063
|
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 3 draft b-A - f54f1bb90ff3
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
o | 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650
pulling from Publish=False to publish=False with some public
$ hg up -q f54f1bb90ff3
$ mkcommit n-A
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 5: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ mkcommit n-B
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 6: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 6 draft n-B - 145e75495359
|
o 5 draft n-A - d6bcb4f74035
|
| o 4 public a-D - b555f63b6063
| |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 o | 3 draft b-A - f54f1bb90ff3
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ cd ../mu
$ hg pull ../nu
pulling from ../nu
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets d6bcb4f74035:145e75495359 (2 drafts)
Boris Feld
phases: use "published" in the phase movement message...
r38268 4 local changesets published
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 0: 1 -> 0
test-debug-phase: move rev 1: 1 -> 0
test-debug-phase: move rev 3: 1 -> 0
test-debug-phase: move rev 4: 1 -> 0
test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 (run 'hg update' to get a working copy)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 6 draft n-B - 145e75495359
|
o 5 draft n-A - d6bcb4f74035
|
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 o | 2 draft b-A - f54f1bb90ff3
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 |/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ cd ..
pulling into publish=True
$ cd alpha
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 4 public b-A - f54f1bb90ff3
|
| @ 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ hg pull ../mu
pulling from ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets d6bcb4f74035:145e75495359 (2 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 (run 'hg update' to get a working copy)
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 6 draft n-B - 145e75495359
|
o 5 draft n-A - d6bcb4f74035
|
o 4 public b-A - f54f1bb90ff3
|
| @ 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ cd ..
pulling back into original repo
$ cd nu
$ hg pull ../alpha
pulling from ../alpha
searching for changes
no changes found
Boris Feld
phases: use "published" in the phase movement message...
r38268 3 local changesets published
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 3: 1 -> 0
test-debug-phase: move rev 5: 1 -> 0
test-debug-phase: move rev 6: 1 -> 0
Pierre-Yves David
phases: exchange phase boundaries on pull...
r15650 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 6 public n-B - 145e75495359
|
o 5 public n-A - d6bcb4f74035
|
| o 4 public a-D - b555f63b6063
| |
o | 3 public b-A - f54f1bb90ff3
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Push
````
Pierre-Yves David
phases: change publish behavior to only alter behavior when server....
r15659 (inserted)
Test that phase are pushed even when they are nothing to pus
(this might be tested later bu are very convenient to not alter too much test)
Push back to alpha
$ hg push ../alpha # from nu
pushing to ../alpha
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 5: 1 -> 0
test-debug-phase: move rev 6: 1 -> 0
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Pierre-Yves David
phases: change publish behavior to only alter behavior when server....
r15659 $ cd ..
$ cd alpha
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 6 public n-B - 145e75495359
|
o 5 public n-A - d6bcb4f74035
|
o 4 public b-A - f54f1bb90ff3
|
| @ 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: change publish behavior to only alter behavior when server....
r15659
(end insertion)
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 initial setup
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G # of alpha
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 o changeset: 6:145e75495359
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: n-B
|
o changeset: 5:d6bcb4f74035
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: n-A
|
o changeset: 4:f54f1bb90ff3
| parent: 1:548a3d25dbf0
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b-A
|
| @ changeset: 3:b555f63b6063
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: a-D
| |
| o changeset: 2:54acac6f23ab
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: a-C
|
o changeset: 1:548a3d25dbf0
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: a-B
|
o changeset: 0:054250a37db4
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a-A
$ mkcommit a-E
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 7: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ mkcommit a-F
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 8: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ mkcommit a-G
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 9: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hg up d6bcb4f74035 -q
$ mkcommit a-H
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 10: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 created new head
$ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 10 draft a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 draft a-F - b740e3e5c05d
| |
| o 7 draft a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pierre-Yves David
bundlerepo: bundle repos should be non-publishing (issue3266)...
r16195 Pulling from bundle does not alter phases of changeset not present in the bundle
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #if repobundlerepo
Pierre-Yves David
bundlerepo: bundle repos should be non-publishing (issue3266)...
r16195 $ hg bundle --base 1 -r 6 -r 3 ../partial-bundle.hg
5 changesets found
$ hg pull ../partial-bundle.hg
pulling from ../partial-bundle.hg
searching for changes
no changes found
$ hgph
@ 10 draft a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 draft a-F - b740e3e5c05d
| |
| o 7 draft a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #endif
Pierre-Yves David
bundlerepo: bundle repos should be non-publishing (issue3266)...
r16195
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 Pushing to Publish=False (unknown changeset)
$ hg push ../mu -r b740e3e5c05d # a-F
pushing to ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 7: x -> 1
test-debug-phase: new rev 8: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 10 draft a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 draft a-F - b740e3e5c05d
| |
| o 7 draft a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
$ cd ../mu
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 $ hgph # again f54f1bb90ff3, d6bcb4f74035 and 145e75495359 stay draft,
> # not ancestor of -r
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 8 draft a-F - b740e3e5c05d
|
o 7 draft a-E - e9f537e46dea
|
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 6 draft n-B - 145e75495359
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 5 draft n-A - d6bcb4f74035
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
o | 4 public a-D - b555f63b6063
| |
o | 3 public a-C - 54acac6f23ab
| |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 2 draft b-A - f54f1bb90ff3
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 |/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pushing to Publish=True (unknown changeset)
$ hg push ../beta -r b740e3e5c05d
pushing to ../beta
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 5: x -> 0
test-debug-phase: new rev 6: x -> 0
test-debug-phase: move rev 7: 1 -> 0
test-debug-phase: move rev 8: 1 -> 0
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 $ hgph # again f54f1bb90ff3, d6bcb4f74035 and 145e75495359 stay draft,
> # not ancestor of -r
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 8 public a-F - b740e3e5c05d
|
o 7 public a-E - e9f537e46dea
|
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 6 draft n-B - 145e75495359
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 5 draft n-A - d6bcb4f74035
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
o | 4 public a-D - b555f63b6063
| |
o | 3 public a-C - 54acac6f23ab
| |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 | o 2 draft b-A - f54f1bb90ff3
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 |/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pushing to Publish=True (common changeset)
$ cd ../beta
$ hg push ../alpha
pushing to ../alpha
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 7: 1 -> 0
test-debug-phase: move rev 8: 1 -> 0
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 6 public a-F - b740e3e5c05d
|
o 5 public a-E - e9f537e46dea
|
o 4 public a-D - b555f63b6063
|
o 3 public a-C - 54acac6f23ab
|
| @ 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ cd ../alpha
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 10 draft a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pushing to Publish=False (common changeset that change phase + unknown one)
$ hg push ../mu -r 967b449fbc94 -f
pushing to ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 1 -> 0
test-debug-phase: move rev 5: 1 -> 0
test-debug-phase: new rev 9: x -> 1
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 10 draft a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ cd ../mu
$ hgph # d6bcb4f74035 should have changed phase
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 > # 145e75495359 is still draft. not ancestor of -r
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 9 draft a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
Pierre-Yves David
push: prevent moving phases outside of the pushed subset
r15956 +---o 6 draft n-B - 145e75495359
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 | |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pushing to Publish=True (common changeset from publish=False)
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 (in mu)
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hg push ../alpha
pushing to ../alpha
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 10: 1 -> 0
test-debug-phase: move rev 6: 1 -> 0
test-debug-phase: move rev 9: 1 -> 0
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 9 public a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651 $ hgph -R ../alpha # a-H should have been synced to 0
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 10 public a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: exchange phase boundaries on push...
r15651
Pierre-Yves David
phases: do not exchange secret changesets...
r15713
Pierre-Yves David
phase: add a passing test for (issue3575)...
r21010 Bare push with next changeset and common changeset needing sync (issue3575)
Mads Kiilerich
spelling: fixes from proofreading of spell checker issues
r23139 (reset some stat on remote repo to avoid confusing other tests)
Pierre-Yves David
phase: add a passing test for (issue3575)...
r21010
$ hg -R ../alpha --config extensions.strip= strip --no-backup 967b449fbc94
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg phase --force --draft b740e3e5c05d 967b449fbc94
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 8: 0 -> 1
test-debug-phase: move rev 9: 0 -> 1
Pierre-Yves David
phase: add a passing test for (issue3575)...
r21010 $ hg push -fv ../alpha
pushing to ../alpha
searching for changes
1 changesets found
Mads Kiilerich
bundle: when verbose, show what takes up the space in the generated bundle...
r23748 uncompressed size of bundle content:
Pierre-Yves David
changegroup: skip delta when the underlying revlog do not use them...
r30211 178 (changelog)
Martin von Zweigbergk
changegroup3: introduce experimental.changegroup3 boolean config...
r27752 165 (manifests)
131 a-H
Pierre-Yves David
phase: add a passing test for (issue3575)...
r21010 adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 10: x -> 0
test-debug-phase: move rev 8: 1 -> 0
test-debug-phase: move rev 9: 1 -> 0
Pierre-Yves David
phase: add a passing test for (issue3575)...
r21010 $ hgph
o 9 public a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
$ hg -R ../alpha update 967b449fbc94 #for latter test consistency
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hgph -R ../alpha
@ 10 public a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 Discovery locally secret changeset on a remote repository:
- should make it non-secret
$ cd ../alpha
$ mkcommit A-secret --config phases.new-commit=2
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 11: x -> 2
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 11 secret A-secret - 435b5d83910c
|
o 10 public a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 $ hg bundle --base 'parents(.)' -r . ../secret-bundle.hg
1 changesets found
$ hg -R ../mu unbundle ../secret-bundle.hg
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 435b5d83910c (1 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 10: x -> 1
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 (run 'hg update' to get a working copy)
$ hgph -R ../mu
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 10 draft A-secret - 435b5d83910c
|
o 9 public a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 $ hg pull ../mu
pulling from ../mu
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 11: 2 -> 1
Pierre-Yves David
phases: do not exchange secret changesets...
r15713 $ hgph
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 @ 11 draft A-secret - 435b5d83910c
|
o 10 public a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889
Mads Kiilerich
spelling: fixes from spell checker
r21024 pushing a locally public and draft changesets remotely secret should make them
Pierre-Yves David
branchmap: server should not advertise secret changeset in branchmap (Issue3303)...
r16535 appear on the remote side.
Pierre-Yves David
phases: move phase according what was pushed not only what was added added...
r15891 $ hg -R ../mu phase --secret --force 967b449fbc94
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 9: 0 -> 2
test-debug-phase: move rev 10: 1 -> 2
Pierre-Yves David
phases: move phase according what was pushed not only what was added added...
r15891 $ hg push -r 435b5d83910c ../mu
pushing to ../mu
searching for changes
Pierre-Yves David
branchmap: server should not advertise secret changeset in branchmap (Issue3303)...
r16535 abort: push creates new remote head 435b5d83910c!
timeless
discovery: use single quotes in use warning
r29973 (merge or see 'hg help push' for details about pushing new heads)
Pierre-Yves David
branchmap: server should not advertise secret changeset in branchmap (Issue3303)...
r16535 [255]
$ hg push -fr 435b5d83910c ../mu # because the push will create new visible head
pushing to ../mu
searching for changes
Pierre-Yves David
phases: move phase according what was pushed not only what was added added...
r15891 adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 2 files
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 9: 2 -> 0
test-debug-phase: move rev 10: 2 -> 1
Pierre-Yves David
phases: move phase according what was pushed not only what was added added...
r15891 $ hgph -R ../mu
o 10 draft A-secret - 435b5d83910c
|
o 9 public a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 pull new changeset with common draft locally
$ hg up -q 967b449fbc94 # create a new root for draft
$ mkcommit 'alpha-more'
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 12: x -> 1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 created new head
$ hg push -fr . ../mu
pushing to ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 11: x -> 1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ cd ../mu
$ hg phase --secret --force 1c5cfd894796
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 11: 1 -> 2
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ hg up -q 435b5d83910c
$ mkcommit 'mu-more'
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 12: x -> 1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ cd ../alpha
$ hg pull ../mu
pulling from ../mu
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 5237fb433fc8 (1 drafts)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 13: x -> 1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 (run 'hg update' to get a working copy)
$ hgph
o 13 draft mu-more - 5237fb433fc8
|
| @ 12 draft alpha-more - 1c5cfd894796
| |
o | 11 draft A-secret - 435b5d83910c
|/
o 10 public a-H - 967b449fbc94
|
| o 9 draft a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Test that test are properly ignored on remote event when existing locally
Pierre-Yves David
phases: copy phases data on local clone
r15740 $ cd ..
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ hg clone -qU -r b555f63b6063 -r f54f1bb90ff3 beta gamma
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
test-debug-phase: new rev 2: x -> 0
test-debug-phase: new rev 3: x -> 0
test-debug-phase: new rev 4: x -> 0
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889
# pathological case are
#
# * secret remotely
# * known locally
# * repo have uncommon changeset
$ hg -R beta phase --secret --force f54f1bb90ff3
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 0 -> 2
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ hg -R gamma phase --draft --force f54f1bb90ff3
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 0 -> 1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889
$ cd gamma
$ hg pull ../beta
pulling from ../beta
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets e9f537e46dea:b740e3e5c05d
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 5: x -> 0
test-debug-phase: new rev 6: x -> 0
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 (run 'hg update' to get a working copy)
$ hg phase f54f1bb90ff3
2: draft
same over the wire
$ cd ../beta
$ hg serve -p $HGPORT -d --pid-file=../beta.pid -E ../beta-error.log
$ cat ../beta.pid >> $DAEMON_PIDS
$ cd ../gamma
Pierre-Yves David
tests: remove all remaining usage of experimental.bundle2-exp...
r29688 $ hg pull http://localhost:$HGPORT/ # bundle2+
Pierre-Yves David
test: explicitly test wire protocol discovery with bundle1 and bundle2...
r25356 pulling from http://localhost:$HGPORT/
searching for changes
no changes found
$ hg phase f54f1bb90ff3
2: draft
enforce bundle1
Pierre-Yves David
tests: use 'legacy.exchange' option in various mixed tests...
r29687 $ hg pull http://localhost:$HGPORT/ --config devel.legacy.exchange=bundle1
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 pulling from http://localhost:$HGPORT/
searching for changes
no changes found
$ hg phase f54f1bb90ff3
2: draft
check that secret local on both side are not synced to public
$ hg push -r b555f63b6063 http://localhost:$HGPORT/
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 $ hg phase f54f1bb90ff3
2: draft
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 $ killdaemons.py
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 put the changeset in the draft state again
(first test after this one expect to be able to copy)
$ cd ..
Pierre-Yves David
phases: copy phases data on local clone
r15740 Test Clone behavior
Pierre-Yves David
phases: do not exchange secret changesets...
r15713
Pierre-Yves David
phases: copy phases data on local clone
r15740 A. Clone without secret changeset
Pierre-Yves David
phases: do not exchange secret changesets...
r15713
Pierre-Yves David
phases: copy phases data on local clone
r15740 1. cloning non-publishing repository
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 (Phase should be preserved)
Pierre-Yves David
phases: copy phases data on local clone
r15740
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 # make sure there is no secret so we can use a copy clone
$ hg -R mu phase --draft 'secret()'
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 11: 2 -> 1
Pierre-Yves David
phases: copy phases data on local clone
r15740
$ hg clone -U mu Tau
$ hgph -R Tau
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 o 12 draft mu-more - 5237fb433fc8
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 |
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 | o 11 draft alpha-more - 1c5cfd894796
| |
o | 10 draft A-secret - 435b5d83910c
|/
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 9 public a-H - 967b449fbc94
|
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
| o 4 public a-D - b555f63b6063
| |
| o 3 public a-C - 54acac6f23ab
| |
o | 2 public b-A - f54f1bb90ff3
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Pierre-Yves David
phases: copy phases data on local clone
r15740
Pierre-Yves David
phases: on copy clone, do not copy phases data if repote is publishing
r15741 2. cloning publishing repository
(everything should be public)
$ hg clone -U alpha Upsilon
$ hgph -R Upsilon
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 o 13 public mu-more - 5237fb433fc8
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 |
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889 | o 12 public alpha-more - 1c5cfd894796
| |
o | 11 public A-secret - 435b5d83910c
|/
Pierre-Yves David
phases: use graph and phase name in exchange test
r15824 o 10 public a-H - 967b449fbc94
|
| o 9 public a-G - 3e27b6f1eee1
| |
| o 8 public a-F - b740e3e5c05d
| |
| o 7 public a-E - e9f537e46dea
| |
+---o 6 public n-B - 145e75495359
| |
o | 5 public n-A - d6bcb4f74035
| |
o | 4 public b-A - f54f1bb90ff3
| |
| o 3 public a-D - b555f63b6063
| |
| o 2 public a-C - 54acac6f23ab
|/
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
Matt Mackall
tests: skip tests that require not having root (issue4089)...
r20008 #if unix-permissions no-root
Pierre-Yves David
push: make locking of source optional (issue3684)...
r19097
Pushing From an unlockable repo
--------------------------------
(issue3684)
Unability to lock the source repo should not prevent the push. It will prevent
the retrieval of remote phase during push. For example, pushing to a publishing
server won't turn changeset public.
1. Test that push is not prevented
$ hg init Phi
$ cd Upsilon
$ chmod -R -w .hg
$ hg push ../Phi
pushing to ../Phi
searching for changes
adding changesets
adding manifests
adding file changes
added 14 changesets with 14 changes to 14 files (+3 heads)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
test-debug-phase: new rev 2: x -> 0
test-debug-phase: new rev 3: x -> 0
test-debug-phase: new rev 4: x -> 0
test-debug-phase: new rev 5: x -> 0
test-debug-phase: new rev 6: x -> 0
test-debug-phase: new rev 7: x -> 0
test-debug-phase: new rev 8: x -> 0
test-debug-phase: new rev 9: x -> 0
test-debug-phase: new rev 10: x -> 0
test-debug-phase: new rev 11: x -> 0
test-debug-phase: new rev 12: x -> 0
test-debug-phase: new rev 13: x -> 0
Pierre-Yves David
push: make locking of source optional (issue3684)...
r19097 $ chmod -R +w .hg
2. Test that failed phases movement are reported
$ hg phase --force --draft 3
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 3: 0 -> 1
test-debug-phase: move rev 7: 0 -> 1
test-debug-phase: move rev 8: 0 -> 1
test-debug-phase: move rev 9: 0 -> 1
Pierre-Yves David
push: make locking of source optional (issue3684)...
r19097 $ chmod -R -w .hg
$ hg push ../Phi
pushing to ../Phi
searching for changes
no changes found
cannot lock source repo, skipping local public phase update
[1]
$ chmod -R +w .hg
Yuya Nishihara
push: continue without locking on lock failure other than EEXIST (issue5882)...
r38111 3. Test that push is prevented if lock was already acquired (not a permission
error, but EEXIST)
$ touch .hg/store/lock
$ hg push ../Phi --config ui.timeout=1
pushing to ../Phi
waiting for lock on repository $TESTTMP/Upsilon held by ''
abort: repository $TESTTMP/Upsilon: timed out waiting for lock held by ''
(lock might be very busy)
[255]
$ rm .hg/store/lock
Pierre-Yves David
push: make locking of source optional (issue3684)...
r19097 $ cd ..
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 #endif
Matt Harbison
test-phase-exchange: stabilize for Windows
r33508 Test that clone behaves like pull and doesn't publish changesets as plain push
does. The conditional output accounts for changes in the conditional block
above.
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198
Matt Harbison
test-phases-exchange: properly conditionalize output...
r33563 #if unix-permissions no-root
$ hg -R Upsilon phase -q --force --draft 2
test-debug-phase: move rev 2: 0 -> 1
#else
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 $ hg -R Upsilon phase -q --force --draft 2
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 0 -> 1
Matt Harbison
test-phases-exchange: properly conditionalize output...
r33563 test-debug-phase: move rev 3: 0 -> 1
test-debug-phase: move rev 7: 0 -> 1
test-debug-phase: move rev 8: 0 -> 1
test-debug-phase: move rev 9: 0 -> 1
#endif
Matt Harbison
test-phase-exchange: stabilize for Windows
r33508
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 $ hg clone -q Upsilon Pi -r 7
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
test-debug-phase: new rev 2: x -> 0
test-debug-phase: new rev 3: x -> 0
test-debug-phase: new rev 4: x -> 0
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 $ hgph Upsilon -r 'min(draft())'
o 2 draft a-C - 54acac6f23ab
|
~
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 $ hg -R Upsilon push Pi -r 7
pushing to Pi
searching for changes
no changes found
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: move rev 2: 1 -> 0
test-debug-phase: move rev 3: 1 -> 0
test-debug-phase: move rev 7: 1 -> 0
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198 [1]
$ hgph Upsilon -r 'min(draft())'
o 8 draft a-F - b740e3e5c05d
|
~
$ hg -R Upsilon push Pi -r 8
pushing to Pi
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Boris Feld
phases: test phases tracking at the transaction level...
r33459 test-debug-phase: new rev 5: x -> 0
test-debug-phase: move rev 8: 1 -> 0
Mads Kiilerich
tests: add more test coverage of phase changes when pushing...
r30198
$ hgph Upsilon -r 'min(draft())'
o 9 draft a-G - 3e27b6f1eee1
|
~
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699
Test phases exchange when a phaseroot is on a merge
$ hg init mergetest
$ cd mergetest
> cat > .hg/hgrc << EOF
> [phases]
> publish = false
> EOF
$ hg debugdrawdag << EOF
> E Z
> |\|
> D Y
> | |
> C X
> |/
> B
> |
> A
> EOF
test-debug-phase: new rev 0: x -> 1
test-debug-phase: new rev 1: x -> 1
test-debug-phase: new rev 2: x -> 1
test-debug-phase: new rev 3: x -> 1
test-debug-phase: new rev 4: x -> 1
test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
test-debug-phase: new rev 7: x -> 1
$ hg phase --public -r D
test-debug-phase: move rev 0: 1 -> 0
test-debug-phase: move rev 1: 1 -> 0
test-debug-phase: move rev 2: 1 -> 0
test-debug-phase: move rev 4: 1 -> 0
$ hg log -G -T '{shortest(node, 5)} {phase}'
o bb947 draft
|
| o 5ac28 draft
|/|
o | 13b7b draft
| |
| o f5853 public
| |
o | c67c4 draft
| |
| o 26805 public
|/
o 11247 public
|
o 426ba public
$ cd ..
Works with default settings
$ hg -R mergetest serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ hg clone -U http://localhost:$HGPORT mergetest-normal
requesting all changes
adding changesets
adding manifests
adding file changes
added 8 changesets with 7 changes to 7 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 426bada5c675:bb94757e651a (4 drafts)
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
test-debug-phase: new rev 2: x -> 0
test-debug-phase: new rev 3: x -> 1
test-debug-phase: new rev 4: x -> 0
test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
test-debug-phase: new rev 7: x -> 1
$ hg -R mergetest-normal log -G -T '{shortest(node, 5)} {phase}'
o bb947 draft
|
| o 5ac28 draft
|/|
o | 13b7b draft
| |
| o f5853 public
| |
o | c67c4 draft
| |
| o 26805 public
|/
o 11247 public
|
o 426ba public
$ killdaemons.py
With legacy listkeys over bundle2
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 (issue 5939: public phase was lost on 26805 and f5853 before, due to a bug
of phase heads computation)
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699
$ hg -R mergetest --config devel.legacy.exchange=phases serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ hg clone -U http://localhost:$HGPORT mergetest-nobinarypart
requesting all changes
adding changesets
adding manifests
adding file changes
added 8 changesets with 7 changes to 7 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 426bada5c675:bb94757e651a (4 drafts)
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 test-debug-phase: new rev 2: x -> 0
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 3: x -> 1
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 test-debug-phase: new rev 4: x -> 0
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
test-debug-phase: new rev 7: x -> 1
$ hg -R mergetest-nobinarypart log -G -T '{shortest(node, 5)} {phase}'
o bb947 draft
|
| o 5ac28 draft
|/|
o | 13b7b draft
| |
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 | o f5853 public
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 | |
o | c67c4 draft
| |
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 | o 26805 public
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 |/
o 11247 public
|
o 426ba public
$ killdaemons.py
Without bundle2
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 (issue 5939: public phase was lost on 26805 and f5853 before, due to a bug
of phase heads computation)
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699
$ hg -R mergetest serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ hg --config devel.legacy.exchange=bundle1 clone -U http://localhost:$HGPORT mergetest-bundle1
requesting all changes
adding changesets
adding manifests
adding file changes
added 8 changesets with 7 changes to 7 files (+1 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 426bada5c675:bb94757e651a (4 drafts)
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 0: x -> 0
test-debug-phase: new rev 1: x -> 0
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 test-debug-phase: new rev 2: x -> 0
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 3: x -> 1
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 test-debug-phase: new rev 4: x -> 0
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 test-debug-phase: new rev 5: x -> 1
test-debug-phase: new rev 6: x -> 1
test-debug-phase: new rev 7: x -> 1
$ hg -R mergetest-bundle1 log -G -T '{shortest(node, 5)} {phase}'
o bb947 draft
|
| o 5ac28 draft
|/|
o | 13b7b draft
| |
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 | o f5853 public
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 | |
o | c67c4 draft
| |
Yuya Nishihara
phases: remove excessive optimization from newheads() (issue5939)...
r38704 | o 26805 public
Gregory Szorc
tests: add test demonstrating phase loss when cloning (issue5939)...
r38699 |/
o 11247 public
|
o 426ba public