git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] git-p4: Don't edit renamed files if not necessary.

From
Vitor Antunes <vitor.hda@gmail.com>
Date
Nov 19, 2010, 01:38 UTC
Message-ID
<1290130693-30855-2-git-send-email-vitor.hda@gmail.com>
In-Reply-To
<1290130693-30855-1-git-send-email-vitor.hda@gmail.com>
Only open files for edit after integrating if the SHA1 of source and
destination differ from each other.
Also added git config option to allow permanent rename detection.
The detectRenames option should be set to the desired threshold value.
Rename detection can still be enabled through -M option.
---
 contrib/fast-import/git-p4 |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 04ce7e3..ba18512 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -613,7 +613,13 @@ class P4Submit(Command):
 
     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) > 0:
+            diffOpts = "-M%s" % detectRenames
+        else:
+            diffOpts = ("", "-M")[self.detectRenames]
+
         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)
-- 
1.7.2.3
Previous: Vitor AntunesNext: Vitor Antunes
Message 2 of 15 in “git-p4: Rename and copy detection improvements.”
  1. 0/2 git-p4: Rename and copy detection improvements.Vitor Antunes, Nov 19, 2010
  2. 1/2 git-p4: Don't edit renamed files if not necessary.Vitor Antunes, Nov 19, 2010
  3. Vitor AntunesNov 19, 2010
  4. git-p4: Corrected typo.Vitor Antunes, Nov 25, 2010
  5. Vitor AntunesJan 27, 2011
  6. Thomas BergJan 28, 2011
  7. Vitor AntunesJan 29, 2011
  8. Vitor AntunesJan 30, 2011
  9. Thomas BergJan 30, 2011
  10. Vitor AntunesJan 31, 2011
  11. Thomas BergJan 31, 2011
  12. Vitor AntunesJan 31, 2011
  13. Vitor AntunesJan 31, 2011
  14. Thomas BergFeb 4, 2011
  15. 2/2 git-p4: Added copy detection supportVitor Antunes, Nov 19, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.