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

[PATCH] Fix handling of git-p4 on deleted files

From
AWAndrew Waters <apwaters@googlemail.com>
Date
Oct 18, 2010, 15:39 UTC
Message-ID
<AANLkTimzN9ZGwQZ-pi6SMWGY9KS0fjmXu=1gjdfck=W-@mail.gmail.com>

When you submit changes containing deleted file the command 'p4 diff -du ...' includes diffs for deleted files. This causes the failure:

open for read: <deleted file>: No such file or directory Command failed: p4 diff -du ...

The problem is that perforce has been told to delete the file and then we try to apply diffs to a file which no longer exists.

---
 contrib/fast-import/git-p4 |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index c1ea643..04ce7e3 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -706,7 +706,9 @@ class P4Submit(Command):
             submitTemplate = self.prepareLogMessage(template, logMessage)
             if os.environ.has_key("P4DIFF"):
                 del(os.environ["P4DIFF"])
-            diff = p4_read_pipe("diff -du ...")
+            diff = ""
+            for editedFile in editedFiles:
+                diff += p4_read_pipe("diff -du %r" % editedFile)

             newdiff = ""
             for newFile in filesToAdd:
-- 
1.7.2.2
Next: Thomas Berg
Message 1 of 4 in “Fix handling of git-p4 on deleted files”
  1. Fix handling of git-p4 on deleted filesAndrew Waters, Oct 18, 2010
  2. Thomas BergOct 22, 2010
  3. Fix handling of git-p4 on deleted filesAndrew Waters, Oct 22, 2010
  4. Junio C HamanoOct 22, 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.