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.
Tá an tiomantas seo le fáil i:
Michael Halstead 2012-11-14 12:41:01 -08:00 tiomanta ag Jason A. Donenfeld
tuismitheoir 633a66c822
tiomantas 62a40c78fe
D'athraigh 2 comhad le 22 breiseanna agus 14 scriosta

Féach ar an gComhad

@ -229,11 +229,6 @@ static void header(unsigned char *sha1, char *path1, int mode1,
html(" b/"); html(" b/");
html_txt(path2); html_txt(path2);
if (is_null_sha1(sha1))
path1 = "dev/null";
if (is_null_sha1(sha2))
path2 = "dev/null";
if (mode1 == 0) if (mode1 == 0)
htmlf("<br/>new file mode %.6o", mode2); htmlf("<br/>new file mode %.6o", mode2);
@ -251,13 +246,21 @@ static void header(unsigned char *sha1, char *path1, int mode1,
if (mode2 != mode1) if (mode2 != mode1)
htmlf("..%.6o", mode2); htmlf("..%.6o", mode2);
} }
html("<br/>--- a/"); if (is_null_sha1(sha1)) {
path1 = "dev/null";
html("<br/>--- /");
} else
html("<br/>--- a/");
if (mode1 != 0) if (mode1 != 0)
cgit_tree_link(path1, NULL, NULL, ctx.qry.head, cgit_tree_link(path1, NULL, NULL, ctx.qry.head,
sha1_to_hex(old_rev_sha1), path1); sha1_to_hex(old_rev_sha1), path1);
else else
html_txt(path1); html_txt(path1);
html("<br/>+++ b/"); if (is_null_sha1(sha2)) {
path2 = "dev/null";
html("<br/>+++ /");
} else
html("<br/>+++ b/");
if (mode2 != 0) if (mode2 != 0)
cgit_tree_link(path2, NULL, NULL, ctx.qry.head, cgit_tree_link(path2, NULL, NULL, ctx.qry.head,
sha1_to_hex(new_rev_sha1), path2); sha1_to_hex(new_rev_sha1), path2);

Féach ar an gComhad

@ -28,11 +28,6 @@ static void header(unsigned char *sha1, char *path1, int mode1,
subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2)); subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2));
htmlf("diff --git a/%s b/%s\n", path1, path2); 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) if (mode1 == 0)
htmlf("new file mode %.6o\n", mode2); htmlf("new file mode %.6o\n", mode2);
@ -50,8 +45,18 @@ static void header(unsigned char *sha1, char *path1, int mode1,
if (mode2 != mode1) if (mode2 != mode1)
htmlf("..%.6o", mode2); 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);
} }
} }