vitor.hda@xxxxxxxxx wrote on Sun, 30 Jan 2011 23:19 +0000: > Only open files for edit after integrating if the SHA1 of source and destination > differ from each other. > Add git config option detectRenames to allow permanent rename detection. This > options should be set to a true/false value. I like the idea. > def applyCommit(self, id): > print "Applying %s" % (read_pipe("git log --max-count=1 --pretty=oneline %s" % id)) > - diffOpts = ("", "-M")[self.detectRename] > + > + detectRenames = gitConfig("git-p4.detectRenames") > + if len(detectRenames) and detectRenames.lower() != "false" > 0: > + diffOpts = "-M" > + else: > + diffOpts = ("", "-M")[self.detectRename] The comparisons confuse me. detectRenames != "false" > 0 ? How about just detectRenames == "true"? You could rename the existing self.detectRename to add an "s" so it all makes a bit more sense. if not self.detectRenames: # not explicitly set, check the config variable b = gitConfig("git-p4.detectRenames") if b == "true": self.detectRenames = "-M" if self.detectRenames: diffOpts = "-M" else: diffOpts = "" > diff = read_pipe_lines("git diff-tree -r %s \"%s^\" \"%s\"" % (diffOpts, id, id)) > filesToAdd = set() > filesToDelete = set() > @@ -640,7 +646,8 @@ class P4Submit(Command): > elif modifier == "R": > src, dest = diff['src'], diff['dst'] > p4_system("integrate -Dt \"%s\" \"%s\"" % (src, dest)) > - p4_system("edit \"%s\"" % (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) If you rename the file and also cause its perms to change (say add +x), does it still work if dest is not open? -- Pete -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html