From: Yves Orton Date: Mon, 27 Jul 2009 20:10:55 +0000 (+0200) Subject: add a simple utility to Porting/ which knows how to generate .patch files X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=031cefa092a35217a3ac4abe595ffb31b4d6ec81;p=p5sagit%2Fp5-mst-13.2.git add a simple utility to Porting/ which knows how to generate .patch files --- diff --git a/Porting/make_dot_patch.pl b/Porting/make_dot_patch.pl new file mode 100755 index 0000000..cf545ac --- /dev/null +++ b/Porting/make_dot_patch.pl @@ -0,0 +1,46 @@ +use strict; +use warnings; + +# This is a quickie script which I wrote to generate the .patch file for +# an arbitrary commit. It takes on sha1 as an argument, or saving that +# uses the sha1 associated to HEAD. +# It tries to find which of our primary branches the sha1 can be found on, +# and then prints to standard out something similar to what our rsync feed +# would produce for that situation. The main difference being, in that case +# we KNOW what branch we are on, and in this one we dont, and in that case +# the $tstamp field holds the time the snapshot was generated (so that multiple +# fetches will always have an increasing tstamp field), however in this case +# we use the commit date of the sha1. +# +# This is more or less intended to be used as a utility to generated .patch +# files for other processes, like gitweb and snapshots. +# +# The script assumes it is being run from a git WD. +# +# Yves + +use POSIX qw(strftime); +sub isotime { strftime "%Y-%m-%d.%H:%M:%S",gmtime(shift||time) } + +my $sha1= shift || `git rev-parse HEAD`; +chomp($sha1); +my @branches=( + 'origin/blead', + 'origin/maint-5.10', + 'origin/maint-5.8', + 'origin/maint-5.8-dor', + 'origin/maint-5.6', + 'origin/maint-5.005', + 'origin/maint-5.004', +); +my $branch; +foreach my $b (@branches) { + $branch= $b and last + if `git log --pretty='format:%H' $b | grep $sha1`; +} + +$branch ||= "unknown-branch"; +my $tstamp= isotime(`git log -1 --pretty="format:%ct" $sha1`); +chomp(my $describe= `git describe`); +print join(" ", $branch, $tstamp, $sha1, $describe) . "\n"; +