Re: [PATCH v2 2/3] git-p4: Search for parent commit on branch creation
From: Vitor Antunes <hidden>
Date: 2016-06-15 22:52:51
Hi Junio, On Sat, Jan 21, 2012 at 4:55 AM, Junio C Hamano [off-list ref] wrote:
Vitor Antunes [off-list ref] writes:quoted
A fast-import "checkpoint" call is required for each comparison because diff-tree is only able to work with blobs on disk. But most of these commits will not be part of the final imported tree, making fast-import fail. To avoid this, the temporary branches are tracked and then removed at the end of the import process. Signed-off-by: Vitor Antunes <redacted> ---It might make sense to squash 1/3 with this patch; the definition alone without any actual user would not be very useful and won't help hunting for breakages, if exists, in the future.
Makes sense. WIll correct as you suggest in v3.
quoted
@@ -2012,7 +2014,27 @@ class P4Sync(Command, P4UserMap):parent = self.initialParents[branch] del self.initialParents[branch] - self.commit(description, filesForCommit, branch, [branchPrefix], parent) + parentFound = False + if len(parent) > 0: + tempBranch = os.path.join(self.tempBranchLocation, "%d" % (change)) + if self.verbose: + print "Creating temporary branch: " + tempBranch + self.commit(description, filesForCommit, tempBranch, [branchPrefix]) + self.tempBranches.append(tempBranch) + self.checkpoint() + for blob in read_pipe_lines("git rev-list --reverse --no-merges %s" % parent): + blob = blob.strip() + if len( read_pipe("git diff-tree %s %s" % (blob, tempBranch)) ) == 0: + parentFound = True + if self.verbose: + print "Found parent of %s in commit %s" % (branch, blob)... also this looks excessively deeply nested, which is a sign that it might be a good idea to refactor this part into a separate helper function or something.
I have to agree with you. Since v3 is required, I'll also include this fix along. Thanks, Vitor