Make --with-origin the default for syncing.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
This commit is contained in:
parent
417a7a6fc8
commit
01265103fe
@ -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]
|
||||||
|
@ -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
|
||||||
========
|
========
|
||||||
|
Loading…
Reference in New Issue
Block a user