1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-04 03:06:13 +02:00

Added git-p4 rebase convenience

Signed-off-by: Simon Hausmann <simon@lst.de>
This commit is contained in:
Simon Hausmann 2007-04-07 23:46:50 +02:00
parent 711544b00c
commit 01ce1fe967
2 changed files with 33 additions and 3 deletions

View File

@ -804,7 +804,11 @@ class P4Sync(Command):
def getLabels(self):
self.labels = {}
for output in p4CmdList("labels %s..." % self.globalPrefix):
l = p4CmdList("labels %s..." % self.globalPrefix)
if len(l) > 0:
print "Finding files belonging to labels in %s" % self.globalPrefix
for output in l:
label = output["label"]
revisions = {}
newestChange = 0
@ -1039,6 +1043,19 @@ class P4Sync(Command):
return True
class P4Rebase(Command):
def __init__(self):
Command.__init__(self)
self.options = [ ]
self.description = "Fetches the latest revision from perforce and rebases the current work (branch) against it"
def run(self, args):
sync = P4Sync()
sync.run([])
print "Rebasing the current branch"
system("git rebase p4")
return True
class HelpFormatter(optparse.IndentedHelpFormatter):
def __init__(self):
optparse.IndentedHelpFormatter.__init__(self)
@ -1061,7 +1078,8 @@ commands = {
"debug" : P4Debug(),
"clean-tags" : P4CleanTags(),
"submit" : P4Submit(),
"sync" : P4Sync()
"sync" : P4Sync(),
"rebase" : P4Rebase()
}
if len(sys.argv[1:]) == 0:

View File

@ -40,12 +40,24 @@ newer changes from the Perforce depot by just calling
git-p4 sync
in your git repository.
in your git repository. By default the "p4" branch is updated.
It is recommended to run 'git repack -a -d -f' from time to time when using
incremental imports to optimally combine the individual git packs that each
incremental import creates through the use of git-fast-import.
Updating
========
A common working pattern is to fetch the latest changes from the Perforce depot
and merge them with local uncommitted changes. The recommended way is to use
git's rebase mechanism to preserve linear history. git-p4 provides a convenient
git-p4 rebase
command that calls git-p4 sync followed by git rebase to rebase the current
working branch.
Submitting
==========