Re: [PATCH 2/2] git-p4: Add copy detection support
- From
- Pete Wyckoff <pw@padd.com>
- Date
- Feb 6, 2011, 22:05 UTC
- Message-ID
- <20110206220546.GA9024@mew.padd.com>
- In-Reply-To
- <AANLkTi=Awi6d77QcbbZ2rDTv6LpP+qjsReJ5=4NyhUBz@mail.gmail.com>
vitor.hda@gmail.com wrote on Sun, 06 Feb 2011 17:25 +0000:
Show 17 quoted lines
> Hi Pete, > > On Sun, Feb 6, 2011 at 12:25 AM, Pete Wyckoff <pw@padd.com> wrote: > > 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.
Show 9 quoted lines
> + 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