unbundle: accept multiple file arguments
update test-bundle for multiple unbundle support
--- a/mercurial/commands.py Sun Jun 24 07:22:58 2007 -0700
+++ b/mercurial/commands.py Sun Jun 24 10:08:38 2007 -0500
@@ -2614,18 +2614,22 @@
"""
cmdutil.show_changeset(ui, repo, opts).show(nullrev+repo.changelog.count())
-def unbundle(ui, repo, fname, **opts):
- """apply a changegroup file
-
- Apply a compressed changegroup file generated by the bundle
- command.
+def unbundle(ui, repo, fname1, *fnames, **opts):
+ """apply one or more changegroup files
+
+ Apply one or more compressed changegroup files generated by the
+ bundle command.
"""
- if os.path.exists(fname):
- f = open(fname, "rb")
- else:
- f = urllib.urlopen(fname)
- gen = changegroup.readbundle(f, fname)
- modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
+ fnames = (fname1,) + fnames
+ result = None
+ for fname in fnames:
+ if os.path.exists(fname):
+ f = open(fname, "rb")
+ else:
+ f = urllib.urlopen(fname)
+ gen = changegroup.readbundle(f, fname)
+ modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
+
return postincoming(ui, repo, modheads, opts['update'])
def update(ui, repo, node=None, rev=None, clean=False, date=None):
@@ -3079,7 +3083,7 @@
(unbundle,
[('u', 'update', None,
_('update to new tip if changesets were unbundled'))],
- _('hg unbundle [-u] FILE')),
+ _('hg unbundle [-u] FILE...')),
"^update|up|checkout|co":
(update,
[('C', 'clean', None, _('overwrite locally modified files')),
--- a/tests/test-bundle Sun Jun 24 07:22:58 2007 -0700
+++ b/tests/test-bundle Sun Jun 24 10:08:38 2007 -0500
@@ -62,6 +62,13 @@
hg -R bundle://../does-not-exist.hg outgoing ../partial2
cd ..
+# test for http://www.selenic.com/mercurial/bts/issue216
+rm -r empty
+hg init empty
+hg -R test bundle --base null -r 0 ../0.hg
+hg -R test bundle --base 0 -r 1 ../1.hg
+hg -R empty unbundle -u ../0.hg ../1.hg
+
# test for 540d1059c802
hg init orig
cd orig
--- a/tests/test-bundle.out Sun Jun 24 07:22:58 2007 -0700
+++ b/tests/test-bundle.out Sun Jun 24 10:08:38 2007 -0500
@@ -211,6 +211,15 @@
summary: 0.3m
abort: No such file or directory: ../does-not-exist.hg
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
searching for changes
comparing with ../bundle.hg
--- a/tests/test-globalopts.out Sun Jun 24 07:22:58 2007 -0700
+++ b/tests/test-globalopts.out Sun Jun 24 10:08:38 2007 -0500
@@ -161,7 +161,7 @@
tag add a tag for the current or given revision
tags list repository tags
tip show the tip revision
- unbundle apply a changegroup file
+ unbundle apply one or more changegroup files
update update working directory
verify verify the integrity of the repository
version output version and copyright information
@@ -213,7 +213,7 @@
tag add a tag for the current or given revision
tags list repository tags
tip show the tip revision
- unbundle apply a changegroup file
+ unbundle apply one or more changegroup files
update update working directory
verify verify the integrity of the repository
version output version and copyright information
--- a/tests/test-help.out Sun Jun 24 07:22:58 2007 -0700
+++ b/tests/test-help.out Sun Jun 24 10:08:38 2007 -0500
@@ -84,7 +84,7 @@
tag add a tag for the current or given revision
tags list repository tags
tip show the tip revision
- unbundle apply a changegroup file
+ unbundle apply one or more changegroup files
update update working directory
verify verify the integrity of the repository
version output version and copyright information
@@ -132,7 +132,7 @@
tag add a tag for the current or given revision
tags list repository tags
tip show the tip revision
- unbundle apply a changegroup file
+ unbundle apply one or more changegroup files
update update working directory
verify verify the integrity of the repository
version output version and copyright information