[PATCH 6 of 8 phases] mq qclone: Let secret phase handle the exclusion of mq changeset
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Tue Jan 17 17:35:39 UTC 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1326770025 -3600
# Node ID 1b22ef5905a472f8264839b3eb70091666e61205
# Parent f94ce6d6181b16c432def3d5a7eba1c604eda9ec
mq qclone: Let secret phase handle the exclusion of mq changeset
mq changeset are now handled by the core concept of secret phase. We keep the
strip based logic for remote server not supporting phase.
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -2121,28 +2121,24 @@ def clone(ui, source, dest=None, **opts)
try:
hg.repository(ui, patchespath)
except error.RepoError:
raise util.Abort(_('versioned patch repository not found'
' (see init --mq)'))
- qbase, destrev = None, None
- if sr.local():
- if sr.mq.applied:
- qbase = sr.mq.applied[0].node
- if not hg.islocal(dest):
- heads = set(sr.heads())
- destrev = list(heads.difference(sr.heads(qbase)))
- destrev.append(sr.changelog.parents(qbase)[0])
- elif sr.capable('lookup'):
+
+ # try to compute qbase from remote to be able to strip mq changeset
+ # afterward. This is not necessary for local repo has mq changeset are now
+ # in the secret phase.
+ qbase = None
+ if 'phases' not in sr.listkeys('namespaces') and sr.capable('lookup'):
try:
qbase = sr.lookup('qbase')
except error.RepoError:
pass
ui.note(_('cloning main repository\n'))
sr, dr = hg.clone(ui, opts, sr.url(), dest,
pull=opts.get('pull'),
- rev=destrev,
update=False,
stream=opts.get('uncompressed'))
ui.note(_('cloning patch repository\n'))
hg.clone(ui, opts, opts.get('patches') or patchdir(sr), patchdir(dr),
diff --git a/tests/test-mq-qclone-http.t b/tests/test-mq-qclone-http.t
--- a/tests/test-mq-qclone-http.t
+++ b/tests/test-mq-qclone-http.t
@@ -41,11 +41,11 @@ test with recursive collection
$ hg qclone http://localhost:$HGPORT/a b
requesting all changes
adding changesets
adding manifests
adding file changes
- added 2 changesets with 2 changes to 2 files
+ added 1 changesets with 1 changes to 1 files
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files
@@ -80,11 +80,11 @@ test with normal collection
$ hg qclone http://localhost:$HGPORT1/a c
requesting all changes
adding changesets
adding manifests
adding file changes
- added 2 changesets with 2 changes to 2 files
+ added 1 changesets with 1 changes to 1 files
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files
@@ -119,11 +119,11 @@ test with old-style collection
$ hg qclone http://localhost:$HGPORT2/a d
requesting all changes
adding changesets
adding manifests
adding file changes
- added 2 changesets with 2 changes to 2 files
+ added 1 changesets with 1 changes to 1 files
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files
diff --git a/tests/test-mq.t b/tests/test-mq.t
--- a/tests/test-mq.t
+++ b/tests/test-mq.t
@@ -1211,10 +1211,15 @@ repo with unversioned patch dir
repo with patches applied
$ hg qclone qclonesource qclonedest
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd qclonedest
$ qlog
More information about the Mercurial-devel
mailing list