[PATCH 1 of 2] unbundle command does not accept multiple file arguments

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Apr 25 10:15:08 CDT 2007


# HG changeset patch
# User Giorgos Keramidas <keramida at ceid.upatras.gr>
# Date 1177513354 -10800
# Node ID 01961367edf80514d51af1128b86384cd76cfc06
# Parent  bf8319ee3428048a9ef96cc855492860f88ecceb
unbundle command does not accept multiple file arguments

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2555,19 +2555,25 @@ def tip(ui, repo, **opts):
     """
     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.
-    """
-    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 unbundle(ui, repo, fname1, *fnames, **opts):
+    """apply one or more changegroup files
+
+    Apply one or more compressed changegroup files generated by the
+    bundle command.
+    """
+    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)
+        result = postincoming(ui, repo, modheads, opts['update'])
+        if result:
+            return result
+    return result
 
 def update(ui, repo, node=None, clean=False, date=None):
     """update working directory
@@ -2997,7 +3003,7 @@ table = {
         (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')),


More information about the Mercurial-devel mailing list