Subject: Re: bug#62731: 29.0.60; diff-apply-hunk doesn't work for creating new files

From: Juri Linkov <[email-masked]>
Date: Tue, 15 Oct 2024 19:13:32 +0300

>> All right, the attached seems to support both creation and deletion,
>> including applying hunks in reverse direction.
>> Things got trickier but not by a lot.
>
> Now pushed to master, seems useful enough. Let's see if some unforeseen
> problems are reported.

This change broke diff of files:

@@ -1957,7 +1970,7 @@ diff-find-source-location
                                 diff-context-mid-hunk-header-re nil t)
 			 (error "Can't find the hunk separator"))
 		       (match-string 1)))))
-	   (file (or (diff-find-file-name other noprompt)
+	   (file (or (diff-find-file-name (xor other reverse) noprompt)
                      (error "Can't find the file")))
 	   (revision (and other diff-vc-backend
                           (if reverse (nth 1 diff-vc-revisions)

So after 'dired-backup-diff', typing 'C-c C-c' visits wrong file:
visits the backup when point is on the file line, and vice versa:
visits the file when point is on backup file line.