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