aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2011-09-26 22:28:01 -0700
committerH. Peter Anvin <hpa@zytor.com>2011-09-26 22:28:01 -0700
commite9fefea4d4e7c63f4db4d627467706dfaff8b1c2 (patch)
tree413d3f69e3fbac91a48612e354aa94cfb79b7412
parent1214de431b53ab3f07ecf3d94600dc4c76b489c8 (diff)
downloadkup-e9fefea4d4e7c63f4db4d627467706dfaff8b1c2.tar.gz
Handle generation of diff files from git trees
-rwxr-xr-xkorgupload25
-rw-r--r--test/721
2 files changed, 35 insertions, 11 deletions
diff --git a/korgupload b/korgupload
index 4c35518..aa056ef 100755
--- a/korgupload
+++ b/korgupload
@@ -307,25 +307,28 @@ sub get_diff_data(@)
} "400 Invalid git repository\n";
my ($sha1, $type1, $len1) = check_ref($repo, $ref1);
- if ($type1 !~ /^(commit|tag)$/) {
- fatal("400 Invalid commit reference");
+ if ($type1 !~ /^(tree|commit|tag)$/) {
+ fatal("400 Invalid tree reference");
}
my ($sha2, $type2, $len2) = check_ref($repo, $ref2);
- if ($type2 !~ /^(commit|tag)$/) {
- fatal("400 Invalid commit reference");
+ if ($type2 !~ /^(tree|commit|tag)$/) {
+ fatal("400 Invalid tree reference");
}
git_cmd_try {
- open(OLDSTDOUT, '>&', \*STDOUT) or die;
- sysopen(OUT, $tmpdir.'/data', O_WRONLY) or die;
- open(STDOUT, '>&', \*OUT) or die;
- close(OUT);
+ my $oldstdout;
+ my $out;
+
+ open($oldstdout, '>&', \*STDOUT) or die;
+ sysopen($out, $tmpdir.'/data', O_WRONLY|O_CREAT|O_TRUNC) or die;
+ open(STDOUT, '>&', $out) or die;
+ close($out);
- $repo->command_noisy('diff', $sha1.'..'.$sha2);
+ $repo->command_noisy('diff-tree', '-p', $sha1, $sha2);
- open(STDOUT, '>&', \*OLDSTDOUT);
- close(OLDSTDOUT);
+ open(STDOUT, '>&', $oldstdout);
+ close($oldstdout);
} "400 Failed to acquire patch file\n";
$have_data = 1;
diff --git a/test/7 b/test/7
new file mode 100644
index 0000000..3613480
--- /dev/null
+++ b/test/7
@@ -0,0 +1,21 @@
+# This is a good signature
+DIFF /kernel/linux.git v2.6.39 v3.0
+SIGN 836
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQIcBAABAgAGBQJOgV5KAAoJEEufR1CN4Qs85o4P/jWMrqIc+fHm5pd8ngEdDVFP
+C1h5jc/AKTfSE+aHbIk2kmDcacguDZAyVLTghCV/JNPsW3bb1j7/dKrfAkoeFnLU
+H6voD4tyGcd+Szyj6YOg/94ChENhK+6j9D3faPAegW+fquwhLZkGtClnN6lJ3dLe
+2UzYoR52RzNRiCcMkVQ+ZT/kiyOo4oV5iQLeXc2o10EqHHEEArPs3bJQr+bnO3pp
+YqB4MKd0gDwEO1qmcDNffirpEfTtfq9zgDnjSxat6XM3TvAC5z/FVR09c8/tO7ZH
+k1EIJ4wCsaJtOW9q05vyBG0KALeWjNgFmh09+gFGJM2so5dRI6OGSXmwZDYcPghY
+Bngf773gZO26se8FYANSruCUcZKm1F4pAa3SgM3WMHLdU64JCszBR8gSyZ0f3lbx
+2Uh+cKEPXT61MB+gUJYKDM9c3KdqvEF9y5r5OvGJyRDzJ9xoCA5iCv37NIAMqzbN
+tzTd8ZO7aCCX2an4IccjzW7iT2hNAxIx6s9OBSCFqexrQxzhn/qRx6vqYyMX834S
+tydqRGzT8jBBM9qG5OFM5bVsLS2wq75zqxHM0E0Yzn7wu354zFdtTsoCMuK2EVmY
+gAf5/6QRJ4/vyyy7UuaLAZy+3CVD3AOJvIlKv07Rl6y2Jn6pSvgI58GupHQxJCGR
+uUvhOBLLnf8D/R4582af
+=Bybx
+-----END PGP SIGNATURE-----
+PUT /kernel/patch-3.0.gz