diff options
author | H. Peter Anvin <hpa@zytor.com> | 2011-09-26 22:28:01 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2011-09-26 22:28:01 -0700 |
commit | e9fefea4d4e7c63f4db4d627467706dfaff8b1c2 (patch) | |
tree | 413d3f69e3fbac91a48612e354aa94cfb79b7412 | |
parent | 1214de431b53ab3f07ecf3d94600dc4c76b489c8 (diff) | |
download | kup-e9fefea4d4e7c63f4db4d627467706dfaff8b1c2.tar.gz |
Handle generation of diff files from git trees
-rwxr-xr-x | korgupload | 25 | ||||
-rw-r--r-- | test/7 | 21 |
2 files changed, 35 insertions, 11 deletions
@@ -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; @@ -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 |