summaryrefslogtreecommitdiff
path: root/contrib/fast-import
diff options
context:
space:
mode:
authorLibravatar Simon Hausmann <shausman@trolltech.com>2007-05-19 11:07:32 +0200
committerLibravatar Simon Hausmann <shausman@trolltech.com>2007-05-19 11:07:32 +0200
commitd5904674d1a52620a702b4f5efa1afe21f8a5947 (patch)
treeca21ebf934ac00f205d766171d5d4156a85145e3 /contrib/fast-import
parentMore work on the incremental importing of multiple branches. (diff)
downloadtgif-d5904674d1a52620a702b4f5efa1afe21f8a5947.tar.xz
Cleanup/speed up the branch<> file split and removed change range limitation that I added
for debugging (oops). Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Diffstat (limited to 'contrib/fast-import')
-rwxr-xr-xcontrib/fast-import/git-p426
1 files changed, 9 insertions, 17 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 2c1dc9e2b3..35c5f9c696 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -461,15 +461,17 @@ class P4Sync(Command):
fnum = fnum + 1
return files
- def branchesForCommit(self, files):
- branches = Set()
+ def splitFilesIntoBranches(self, files):
+ branches = {}
for file in files:
path = file["path"][len(self.depotPath):]
for branch in self.knownBranches.keys():
if path.startswith(branch):
- branches.add(branch)
+ if branch not in branches:
+ branches[branch] = []
+ branches[branch].append(file["path"])
return branches
@@ -574,16 +576,6 @@ class P4Sync(Command):
if not self.silent:
print "Tag %s does not match with change %s: file count is different." % (labelDetails["label"], change)
- def extractFilesInCommitToBranch(self, files, branchPrefix):
- newFiles = []
-
- for file in files:
- path = file["path"]
- if path.startswith(branchPrefix):
- newFiles.append(file)
-
- return newFiles
-
def getUserMap(self):
self.users = {}
@@ -713,8 +705,7 @@ class P4Sync(Command):
if p4Change > 0:
self.depotPath = self.previousDepotPath
- #self.changeRange = "@%s,#head" % p4Change
- self.changeRange = "@%s,%s" % (p4Change, p4Change + 10)
+ self.changeRange = "@%s,#head" % p4Change
self.initialParent = parseRevision(self.branch)
if not self.silent:
print "Performing incremental import into %s git branch" % self.branch
@@ -857,12 +848,13 @@ class P4Sync(Command):
try:
files = self.extractFilesFromCommit(description)
if self.detectBranches:
- for branch in self.branchesForCommit(files):
+ branches = self.splitFilesIntoBranches(files)
+ for branch in branches.keys():
branchPrefix = self.depotPath + branch + "/"
parent = ""
- filesForCommit = self.extractFilesInCommitToBranch(files, branch)
+ filesForCommit = branches[branch]
if self.verbose:
print "branch is %s" % branch