Added git-p4 rebase convenience
Signed-off-by: Simon Hausmann <simon@lst.de>
This commit is contained in:
		@ -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:
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user