Re: [PATCH 2/4] Tweak diff output further to make it a bit less distracting.
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 17, 2005, 19:08 UTC
- Message-ID
- <7vu0l1fz6p.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.58.0505170812060.18337@ppc970.osdl.org>
>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:
LT> There's also a real technical reason for this: since the rename format LT> would not be a valid patch for a traditional "patch" program, and if we LT> ever want to actually teach "patch" to handle it, we really need to be LT> explicit. There are tons of traditional patches around that say
LT> diff -Nur a/kernel/sched.c.old b/kernel/sched.c LT> --- a/kernel/sched.c.old LT> +++ b/kernel/sched.c LT> ...
LT> and clearly the above is _not_ a rename from "sched.c.old" to "sched.c", LT> so if we want to teach "patch" about the magic git rules, we'd have to LT> have something unambiguous that a GNU patch maintainer might be willing to LT> trigger on. The combination of the "diff -git " and "rename" markers might LT> be such a thing.
LT> So it's a combination of clarity, canonical names, and "patch" issues.
I've been thinking about doing some rename detection in diff-helper for some time. Here is what that would produce in your proposed file format (BTW, wouldn't the earlier patch ready for merge already?), if you move file frotz to file nitfol and at the same time do some edits:
diff -git a/frotz b/frotz
rename old frotz
rename new nitfol
delete file mode 100644
--- a/frotz
+++ /dev/null
@@ -1,2 +0,0 @@
-xyzzy
-rezrov
diff -git a/nitfol b/nitfol
rename old frotz
rename new nitfol
new file mode 100644
--- /dev/null
+++ b/nitfol
@@ -0,0 +1,2 @@
+xyzzy
+rezrov
diff -git a/nitfol b/nitfol
rename old frotz
rename new nitfol
--- a/nitfol
+++ b/nitfol
@@ -1,2 +1,3 @@
xyzzy
rezrov
+gnustoThe basic idea is to express the pure rename with traditional two patches against /dev/null, plus optionally contents patch on top after pure rename patches.
I am still debating myself where rename lines should be, though. I cannot decide so I placed them in all three in the above example.