# HG changeset patch # User Matt Mackall # Date 1120614602 28800 # Node ID e9fe5d5e67f7e17e8dfe0b08a8f3de292a09fece # Parent 004e811f7706be0b2041d2eaa6fb62cfaf625971 Add generic repo commands for pull and push diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -995,6 +995,26 @@ class localrepository: # this is the set of all roots we have to push return subset + def pull(self, remote): + lock = self.lock() + fetch = self.findincoming(remote) + if not fetch: + self.ui.status("no changes found\n") + return 1 + + cg = remote.changegroup(fetch) + return self.addchangegroup(cg) + + def push(self, remote): + lock = remote.lock() + update = self.findoutgoing(remote) + if not update: + self.ui.status("no changes found\n") + return 1 + + cg = self.changegroup(update) + return remote.addchangegroup(cg) + def changegroup(self, basenodes): nodes = self.newer(basenodes) @@ -1062,7 +1082,6 @@ class localrepository: changesets = files = revisions = 0 source = genread(generator) - lock = self.lock() tr = self.transaction() # pull off the changeset group