cgit

commit 62a40c78fed772e795eca8d4e7d6f6ead4d9a125

Author: Michael Halstead <michael@yoctoproject.org>

Format git diff headers correctly when adding or removing files.

Copying the output of cgit and using it in patches now works when adding
files to or removing files from the repository. This is helpful for people
who use cgit in their patch workflow.

 ui-diff.c | 17 ++++++++++-------
 ui-patch.c | 19 ++++++++++++-------


diff --git a/ui-diff.c b/ui-diff.c
index c6bad6374b0f1074b6cd7d86ea37c9c857365754..3d46da2e6d08d627034c3ee854fd99c39911306d 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -229,11 +229,6 @@ 	html_txt(path1);
 	html(" b/");
 	html_txt(path2);
 
-	if (is_null_sha1(sha1))
-		path1 = "dev/null";
-	if (is_null_sha1(sha2))
-		path2 = "dev/null";
-
 	if (mode1 == 0)
 		htmlf("<br/>new file mode %.6o", mode2);
 
@@ -251,13 +246,21 @@ 			htmlf(" %.6o", mode1);
 			if (mode2 != mode1)
 				htmlf("..%.6o", mode2);
 		}
-		html("<br/>--- a/");
+		if (is_null_sha1(sha1)) {
+			path1 = "dev/null";
+			html("<br/>--- /");
+		} else
+			html("<br/>--- a/");
 		if (mode1 != 0)
 			cgit_tree_link(path1, NULL, NULL, ctx.qry.head,
 				       sha1_to_hex(old_rev_sha1), path1);
 		else
 			html_txt(path1);
-		html("<br/>+++ b/");
+		if (is_null_sha1(sha2)) {
+			path2 = "dev/null";
+			html("<br/>+++ /");
+		} else
+			html("<br/>+++ b/");
 		if (mode2 != 0)
 			cgit_tree_link(path2, NULL, NULL, ctx.qry.head,
 				       sha1_to_hex(new_rev_sha1), path2);




diff --git a/ui-patch.c b/ui-patch.c
index ca008f360c4e73d0af3f15980379409845c86ab6..79bc5096d47b87fd7437d9ae14fca6e69ecd8bcf 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -28,11 +28,6 @@
 	subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2));
 	htmlf("diff --git a/%s b/%s\n", path1, path2);
 
-	if (is_null_sha1(sha1))
-		path1 = "dev/null";
-	if (is_null_sha1(sha2))
-		path2 = "dev/null";
-
 	if (mode1 == 0)
 		htmlf("new file mode %.6o\n", mode2);
 
@@ -50,8 +45,18 @@ 			htmlf(" %.6o", mode1);
 			if (mode2 != mode1)
 				htmlf("..%.6o", mode2);
 		}
-		htmlf("\n--- a/%s\n", path1);
-		htmlf("+++ b/%s\n", path2);
+
+		if (is_null_sha1(sha1)) {
+			path1 = "dev/null";
+			htmlf("\n--- /%s\n", path1);
+		} else
+			htmlf("\n--- a/%s\n", path1);
+
+		if (is_null_sha1(sha2)) {
+			path2 = "dev/null";
+			htmlf("+++ /%s\n", path2);
+		} else
+			htmlf("+++ b/%s\n", path2);
 	}
 }