##// END OF EJS Templates
exchange: support for streaming clone bundles...
exchange: support for streaming clone bundles Now that we have a mechanism to produce and consume streaming clone bundles, we need to teach the human-facing bundle specification parser and the internal bundle file header reading code to be aware of this new format. This patch does so. For the human-facing bundle specification, we choose the name "packed" to describe "streaming clone bundles" because the bundle is essentially a "pack" of raw revlog files that are "packed" together. There should probably be a bikeshed over the name, especially since it is human facing.

File last commit:

r25474:8c14f87b default
r26756:9e272a96 default
Show More
test-phases-exchange.t
1198 lines | 24.7 KiB | text/troff | Tads3Lexer
/ tests / test-phases-exchange.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require killdaemons
Mads Kiilerich
tests: skip new tests with requirements not available on windows
r16539
Pierre-Yves David
test: use bundle2 for exchange in test-push-warn...
r25355 $ cat << EOF >> $HGRCPATH
> [experimental]
> # drop me once bundle2 is the default,
> # added to get test change early.
> bundle2-exp = True
> 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
$ mkcommit a-B
$ mkcommit a-C
$ mkcommit a-D
$ 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
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
$ 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)
(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
[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
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)
(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
$ 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)
(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
(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)
(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
(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
$ mkcommit n-B
$ 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
(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
(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
$ 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
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
$ mkcommit a-F
$ mkcommit a-G
$ hg up d6bcb4f74035 -q
$ mkcommit a-H
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
$ 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
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
$ 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
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
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)
$ 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
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
$ 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
test: use bundle2 for exchange in test-push-warn...
r25355 192 (changelog)
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)
$ 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
$ 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
(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
$ 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
$ 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!
FUJIWARA Katsunori
push: hide description about "-f" in the hint to prevent from using it easily...
r19934 (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
$ 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'
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)
$ cd ../mu
$ hg phase --secret --force 1c5cfd894796
$ hg up -q 435b5d83910c
$ mkcommit 'mu-more'
$ 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
(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
# pathological case are
#
# * secret remotely
# * known locally
# * repo have uncommon changeset
$ hg -R beta phase --secret --force f54f1bb90ff3
$ hg -R gamma phase --draft --force f54f1bb90ff3
$ 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
(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
test: explicitly test wire protocol discovery with bundle1 and bundle2...
r25356 $ hg pull http://localhost:$HGPORT/ --config experimental.bundle2-exp=True
pulling from http://localhost:$HGPORT/
searching for changes
no changes found
$ hg phase f54f1bb90ff3
2: draft
enforce bundle1
$ hg pull http://localhost:$HGPORT/ --config experimental.bundle2-exp=False
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
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()'
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)
$ chmod -R +w .hg
2. Test that failed phases movement are reported
$ hg phase --force --draft 3
$ 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
$ hgph Upsilon
$ cd ..
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Pierre-Yves David
phases: make secret changeset undiscoverable in all case...
r15889
Brendan Cully
tests: skip permissions tests in test-phases-exchange when fs lacks permissions
r19116 #endif