Mercurial > hg
annotate tests/test-obsolete-changeset-exchange.t @ 18944:a9c443b3b240
unionrepo: read-only operations on a union of two localrepos
unionrepo is just like bundlerepo without bundles.
The implementation is very similar to bundlerepo, but I don't see any obvious
way to generalize it.
Some most obvious use cases for this would be log and diff across local repos,
as a kind of preview of pulls, for instance:
$ hg -R union:repo1+repo2 heads
$ hg -R union:repo1+repo2 log -r REPO1REV -r REPO2REV
$ hg -R union:repo1+repo2 log -r '::REPO1REV-::REPO2REV'
$ hg -R union:repo1+repo2 log -r 'ancestor(REPO1REV,REPO2REV)'
$ hg -R union:repo1+repo2 diff -r REPO1REV -r REPO2REV
This is going to be used in RhodeCode, and Bitbucket already uses something
similar. Having a core implementation would be beneficial.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 18 Jan 2013 15:54:09 +0100 |
parents | d07834e52b4e |
children | fab9dda0f2a3 |
rev | line source |
---|---|
17248
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
1 Test changesets filtering during exchanges (some tests are still in |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
2 test-obsolete.t) |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
3 |
17296
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
4 $ cat > obs.py << EOF |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
5 > import mercurial.obsolete |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
6 > mercurial.obsolete._enabled = True |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
7 > EOF |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
8 $ echo '[extensions]' >> $HGRCPATH |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
9 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH |
a1f8869f2eee
obsolete: introduce an `_enabled` switch to disable the feature by default
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17248
diff
changeset
|
10 |
17327
7f5094bb3f42
test: fix typo in test comment
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17296
diff
changeset
|
11 Push does not corrupt remote |
7f5094bb3f42
test: fix typo in test comment
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17296
diff
changeset
|
12 ---------------------------- |
17248
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
13 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
14 Create a DAG where a changeset reuses a revision from a file first used in an |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
15 extinct changeset. |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
16 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
17 $ hg init local |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
18 $ cd local |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
19 $ echo 'base' > base |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
20 $ hg commit -Am base |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
21 adding base |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
22 $ echo 'A' > A |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
23 $ hg commit -Am A |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
24 adding A |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
25 $ hg up 0 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
26 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
27 $ hg revert -ar 1 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
28 adding A |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
29 $ hg commit -Am "A'" |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
30 created new head |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
31 $ hg log -G --template='{desc} {node}' |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
32 @ A' f89bcc95eba5174b1ccc3e33a82e84c96e8338ee |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
33 | |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
34 | o A 9d73aac1b2ed7d53835eaeec212ed41ea47da53a |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
35 |/ |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
36 o base d20a80d4def38df63a4b330b7fb688f3d4cae1e3 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
37 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
38 $ hg debugobsolete 9d73aac1b2ed7d53835eaeec212ed41ea47da53a f89bcc95eba5174b1ccc3e33a82e84c96e8338ee |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
39 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
40 Push it. The bundle should not refer to the extinct changeset. |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
41 |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
42 $ hg init ../other |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
43 $ hg push ../other |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
44 pushing to ../other |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
45 searching for changes |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
46 adding changesets |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
47 adding manifests |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
48 adding file changes |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
49 added 2 changesets with 2 changes to 2 files |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
50 $ hg -R ../other verify |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
51 checking changesets |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
52 checking manifests |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
53 crosschecking files in changesets and manifests |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
54 checking files |
6ffb35b2284c
discovery: add extinct changesets to outgoing.excluded
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
55 2 files, 2 changesets, 2 total revisions |
18498
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
56 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
57 Adding a changeset going extinct locally |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
58 ------------------------------------------ |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
59 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
60 Pull a changeset that will immediatly goes extinct (because you already have a |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
61 marker to obsolete him) |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
62 (test resolution of issue3788) |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
63 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
64 $ hg phase --draft --force f89bcc95eba5 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
65 $ hg phase -R ../other --draft --force f89bcc95eba5 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
66 $ hg commit --amend -m "A''" |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
67 $ hg --hidden --config extensions.mq= strip --no-backup f89bcc95eba5 |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
68 $ hg pull ../other |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
69 pulling from ../other |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
70 searching for changes |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
71 adding changesets |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
72 adding manifests |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
73 adding file changes |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
74 added 1 changesets with 0 changes to 1 files (+1 heads) |
4d9f7dd2ac82
pull: fix crash when pulling changeset that get hidden locally (issue3788)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
17327
diff
changeset
|
75 (run 'hg heads' to see heads, 'hg merge' to merge) |
18499
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
76 |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
77 check that bundle is not affected |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
78 |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
79 $ hg bundle --hidden --rev f89bcc95eba5 --base "f89bcc95eba5^" ../f89bcc95eba5.hg |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
80 1 changesets found |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
81 $ hg --hidden --config extensions.mq= strip --no-backup f89bcc95eba5 |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
82 $ hg unbundle ../f89bcc95eba5.hg |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
83 adding changesets |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
84 adding manifests |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
85 adding file changes |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
86 added 1 changesets with 0 changes to 1 files (+1 heads) |
d07834e52b4e
test-obsolete: validate that bundle is not affected by issue3788
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
18498
diff
changeset
|
87 (run 'hg heads' to see heads) |