Re: [PATCH 2/2] git-p4: Add copy detection support
From: Pete Wyckoff <hidden>
Date: 2016-06-15 22:50:31
vitor.hda@gmail.com wrote on Sun, 06 Feb 2011 17:25 +0000:
Hi Pete, On Sun, Feb 6, 2011 at 12:25 AM, Pete Wyckoff [off-list ref] wrote:quoted
You can use integrate -t to force the filetype even if the file already existed, and skip the whole execbit change.(Copying help text: The -t flag makes the source file's filetype propagate to the target file. Normally, the target file retains its previous filetype. Newly branched files always use the source file's filetype. The filetype can still be changed before 'p4 submit' with 'p4 reopen'. ) Since in git we're only considering newly branched files, I think in this case "-t" will not add anything. In fact, what is being done here is detecting exec bit changes from source to target files - we're not trying to force P4 to use the source's exec bit. Do you agree?
That sounds fine to me. The code seemed to indicate that sometimes the destination file exists.
+ elif modifier == "C":
+ src, dest = diff['src'], diff['dst']
+ p4_system("integrate -Dt \"%s\" \"%s\"" % (src, dest))
+ if diff['src_sha1'] != diff['dst_sha1']:
+ p4_system("edit \"%s\"" % (dest))
+ if isModeExecChanged(diff['src_mode'], diff['dst_mode']):
+ filesToChangeExecBit[dest] = diff['dst_mode']
+ os.unlink(dest)
+ editedFiles.add(dest)If you're happy the dest never exists, you may be able to get rid of the edit step and the mode-change check entirely. As long as you've tested this, you're the expert here. The change makes sense overall. -- Pete