summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorSimon Hausmann <simon@lst.de>2007-04-07 23:46:50 +0200
committerSimon Hausmann <simon@lst.de>2007-04-07 23:46:50 +0200
commit01ce1fe9676e3f714f3a2d068bf8cfe021f4073c (patch)
tree8215536c5b894c0e6ae670c9fa31f3f54045d169 /contrib
parent711544b00c22b1c2559333e8925e449812f9e5cf (diff)
downloadgit-01ce1fe9676e3f714f3a2d068bf8cfe021f4073c.tar.gz
Added git-p4 rebase convenience
Signed-off-by: Simon Hausmann <simon@lst.de>
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/fast-import/git-p422
-rw-r--r--contrib/fast-import/git-p4.txt14
2 files changed, 33 insertions, 3 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 24c8e66e87..aa85800d69 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -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:
diff --git a/contrib/fast-import/git-p4.txt b/contrib/fast-import/git-p4.txt
index 30e2cb9a55..5f7251c2d6 100644
--- a/contrib/fast-import/git-p4.txt
+++ b/contrib/fast-import/git-p4.txt
@@ -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
==========