git-p4: Cleanup; moved the code to import a list of p4 changes using fast-import into a separate member function of P4Sync.

Signed-off-by: Simon Hausmann <simon@lst.de>
This commit is contained in:
Simon Hausmann 2007-08-26 16:00:52 +02:00
parent 4f6432d8cc
commit e87f37ae42

View File

@ -1118,6 +1118,76 @@ class P4Sync(Command):
self.keepRepoPath = (d.has_key('options')
and ('keepRepoPath' in d['options']))
def importChanges(self, changes):
cnt = 1
for change in changes:
description = p4Cmd("describe %s" % change)
self.updateOptionDict(description)
if not self.silent:
sys.stdout.write("\rImporting revision %s (%s%%)" % (change, cnt * 100 / len(changes)))
sys.stdout.flush()
cnt = cnt + 1
try:
if self.detectBranches:
branches = self.splitFilesIntoBranches(description)
for branch in branches.keys():
## HACK --hwn
branchPrefix = self.depotPaths[0] + branch + "/"
parent = ""
filesForCommit = branches[branch]
if self.verbose:
print "branch is %s" % branch
self.updatedBranches.add(branch)
if branch not in self.createdBranches:
self.createdBranches.add(branch)
parent = self.knownBranches[branch]
if parent == branch:
parent = ""
elif self.verbose:
print "parent determined through known branches: %s" % parent
# main branch? use master
if branch == "main":
branch = "master"
else:
## FIXME
branch = self.projectName + branch
if parent == "main":
parent = "master"
elif len(parent) > 0:
## FIXME
parent = self.projectName + parent
branch = self.refPrefix + branch
if len(parent) > 0:
parent = self.refPrefix + parent
if self.verbose:
print "looking for initial parent for %s; current parent is %s" % (branch, parent)
if len(parent) == 0 and branch in self.initialParents:
parent = self.initialParents[branch]
del self.initialParents[branch]
self.commit(description, filesForCommit, branch, [branchPrefix], parent)
else:
files = self.extractFilesFromCommit(description)
self.commit(description, files, self.branch, self.depotPaths,
self.initialParent)
self.initialParent = ""
except IOError:
print self.gitError.read()
sys.exit(1)
def run(self, args):
self.depotPaths = []
self.changeRange = ""
@ -1350,74 +1420,7 @@ class P4Sync(Command):
self.updatedBranches = set()
cnt = 1
for change in changes:
description = p4Cmd("describe %s" % change)
self.updateOptionDict(description)
if not self.silent:
sys.stdout.write("\rImporting revision %s (%s%%)" % (change, cnt * 100 / len(changes)))
sys.stdout.flush()
cnt = cnt + 1
try:
if self.detectBranches:
branches = self.splitFilesIntoBranches(description)
for branch in branches.keys():
## HACK --hwn
branchPrefix = self.depotPaths[0] + branch + "/"
parent = ""
filesForCommit = branches[branch]
if self.verbose:
print "branch is %s" % branch
self.updatedBranches.add(branch)
if branch not in self.createdBranches:
self.createdBranches.add(branch)
parent = self.knownBranches[branch]
if parent == branch:
parent = ""
elif self.verbose:
print "parent determined through known branches: %s" % parent
# main branch? use master
if branch == "main":
branch = "master"
else:
## FIXME
branch = self.projectName + branch
if parent == "main":
parent = "master"
elif len(parent) > 0:
## FIXME
parent = self.projectName + parent
branch = self.refPrefix + branch
if len(parent) > 0:
parent = self.refPrefix + parent
if self.verbose:
print "looking for initial parent for %s; current parent is %s" % (branch, parent)
if len(parent) == 0 and branch in self.initialParents:
parent = self.initialParents[branch]
del self.initialParents[branch]
self.commit(description, filesForCommit, branch, [branchPrefix], parent)
else:
files = self.extractFilesFromCommit(description)
self.commit(description, files, self.branch, self.depotPaths,
self.initialParent)
self.initialParent = ""
except IOError:
print self.gitError.read()
sys.exit(1)
self.importChanges(changes)
if not self.silent:
print ""
@ -1427,7 +1430,6 @@ class P4Sync(Command):
sys.stdout.write("%s " % b)
sys.stdout.write("\n")
self.gitStream.close()
if importProcess.wait() != 0:
die("fast-import failed: %s" % self.gitError.read())