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); } }