[PATCH 08 of 16] exchangeutil: Move push parameter as pulloperation attributes

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Wed Apr 17 10:58:43 CDT 2013


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1366206748 -7200
#      Wed Apr 17 15:52:28 2013 +0200
# Node ID 2aa3dc70d3130eeb31e756e60c9956e756e0e03c
# Parent  e98361603d55211f03b4a2a6aa8af2f92d9661b5
exchangeutil: Move push parameter as pulloperation attributes

This permits future slicing of the god function in multiple smaller one.

diff --git a/mercurial/exchangeutil.py b/mercurial/exchangeutil.py
--- a/mercurial/exchangeutil.py
+++ b/mercurial/exchangeutil.py
@@ -236,19 +236,28 @@ class pushoperation(object):
                                            ' failed!\n') % k)
 
 
 class pulloperation(object):
 
-    def perform(self, repo, remote, heads=None, force=False):
+    def __init__(self, repo, remote, heads=None, force=False):
+        self.repo = repo
+        self.remote = remote
+        self.heads = heads
+        self.force = force
+
+    def perform(self):
+        repo = self.repo
+        remote = self.remote
+        heads = self.heads
         # don't open transaction for nothing or you break future useful
         # rollback call
         tr = None
         trname = 'pull\n' + util.hidepassword(remote.url())
         lock = repo.lock()
         try:
             tmp = discovery.findcommonincoming(repo, remote, heads=heads,
-                                               force=force)
+                                               force=self.force)
             common, fetch, rheads = tmp
             if not fetch:
                 repo.ui.status(_("no changes found\n"))
                 added = []
                 result = 0
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1650,12 +1650,12 @@ class localrepository(object):
             r.append(l)
 
         return r
 
     def pull(self, remote, heads=None, force=False):
-        pull = exchangeutil.pulloperation()
-        return pull.perform(self, remote, heads, force)
+        pull = exchangeutil.pulloperation(self, remote, heads, force)
+        return pull.perform()
 
     def checkpush(self, force, revs):
         """Extensions can override this function if additional checks have
         to be performed before pushing, or call it if they override push
         command.


More information about the Mercurial-devel mailing list