Make --with-origin the default for syncing.

Signed-off-by: Simon Hausmann <shausman@trolltech.com>
This commit is contained in:
Simon Hausmann 2007-05-25 10:36:10 +02:00
parent 417a7a6fc8
commit 01265103fe
2 changed files with 13 additions and 17 deletions

View File

@ -118,6 +118,9 @@ def gitBranchExists(branch):
proc = subprocess.Popen(["git", "rev-parse", branch], stderr=subprocess.PIPE, stdout=subprocess.PIPE);
return proc.wait() == 0;
def gitConfig(key):
return mypopen("git config %s" % key).read()[:-1]
class Command:
def __init__(self):
self.usage = "usage: %prog [options]"
@ -514,7 +517,6 @@ class P4Sync(Command):
optparse.make_option("--changesfile", dest="changesFile"),
optparse.make_option("--silent", dest="silent", action="store_true"),
optparse.make_option("--detect-labels", dest="detectLabels", action="store_true"),
optparse.make_option("--with-origin", dest="syncWithOrigin", action="store_true"),
optparse.make_option("--verbose", dest="verbose", action="store_true"),
optparse.make_option("--import-local", dest="importIntoRemotes", action="store_false"),
optparse.make_option("--max-changes", dest="maxChanges")
@ -536,12 +538,15 @@ class P4Sync(Command):
self.detectBranches = False
self.detectLabels = False
self.changesFile = ""
self.syncWithOrigin = False
self.syncWithOrigin = True
self.verbose = False
self.importIntoRemotes = True
self.maxChanges = ""
self.isWindows = (platform.system() == "Windows")
if gitConfig("git-p4.syncFromOrigin") == "false":
self.syncWithOrigin = False
def p4File(self, depotPath):
return os.popen("p4 print -q \"%s\"" % depotPath, "rb").read()
@ -847,7 +852,8 @@ class P4Sync(Command):
if self.syncWithOrigin:
if gitBranchExists("origin"):
print "Syncing with origin first as requested by calling git fetch origin"
if not self.silent:
print "Syncing with origin first by calling git fetch origin"
system("git fetch origin")
createP4HeadRef = False;
@ -1116,13 +1122,11 @@ class P4Sync(Command):
class P4Rebase(Command):
def __init__(self):
Command.__init__(self)
self.options = [ optparse.make_option("--with-origin", dest="syncWithOrigin", action="store_true") ]
self.options = [ ]
self.description = "Fetches the latest revision from perforce and rebases the current work (branch) against it"
self.syncWithOrigin = False
def run(self, args):
sync = P4Sync()
sync.syncWithOrigin = self.syncWithOrigin
sync.run([])
print "Rebasing the current branch"
oldHead = mypopen("git rev-parse HEAD").read()[:-1]

View File

@ -70,18 +70,10 @@ repository can be used to clone the working repository from and one would
import from Perforce directly after cloning using git-p4. If the connection to
the Perforce server is slow and the working repository hasn't been synced for a
while it may be desirable to fetch changes from the origin git repository using
the efficient git protocol. git-p4 supports this through
the efficient git protocol. git-p4 supports this setup by calling "git fetch origin"
by default if there is an origin branch. You can disable this using
git-p4 sync --with-origin
or
git-p4 rebase --with-origin
In that case "git fetch origin" is called and if it turns out that the origin
branch is newer than the git "p4" import branch then the latter is updated from
the former and the direct import from Perforce is resumed, which will result in
fewer changes to be imported using the slower perforce connection.
git config git-p4.syncFromOrigin false
Updating
========