aboutsummaryrefslogtreecommitdiff
path: root/tools/git-notify
diff options
context:
space:
mode:
authorGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2009-10-24 22:55:44 +0200
committerGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2009-10-24 22:55:44 +0200
commita6b329689782ddd22b4ecd52d0b375e0841ca682 (patch)
tree54bcd885c32dc4de0cdf8980ceb93b9bb5573925 /tools/git-notify
parentaa5dfec91726da8d9d4a4fa63f11c7b0da8c9401 (diff)
downloadmonitoring-plugins-a6b329689782ddd22b4ecd52d0b375e0841ca682.tar.gz
git-nofity: Try to shorten Gitweb URLs
Instead of using the full SHA1 values of commit object names within Gitweb URLs, try to abbreviate them to a shorter unique name.
Diffstat (limited to 'tools/git-notify')
-rwxr-xr-xtools/git-notify19
1 files changed, 18 insertions, 1 deletions
diff --git a/tools/git-notify b/tools/git-notify
index a786f839..a158e872 100755
--- a/tools/git-notify
+++ b/tools/git-notify
@@ -168,6 +168,11 @@ sub format_table(@)
return @table;
}
+# return the gitweb URL of the given commit or undef
+sub gitweb_url($$)
+{
+}
+
# format an integer date + timezone as string
# algorithm taken from git's date.c
sub format_date($$)
@@ -317,6 +322,7 @@ sub send_commit_notice($$)
my ($ref,$obj) = @_;
my %info = get_object_info($obj);
my @notice = ();
+ my $url;
open DIFF, "-|" or exec "git", "diff-tree", "-p", "-M", "--no-commit-id", $obj or die "cannot exec git-diff-tree";
my $diff = join("", <DIFF>);
@@ -324,6 +330,17 @@ sub send_commit_notice($$)
return if length($diff) == 0;
+ if ($gitweb_url)
+ {
+ open REVPARSE, "-|" or exec "git", "rev-parse", "--short", $obj or die "cannot exec git-rev-parse";
+ my $short_obj = <REVPARSE>;
+ close REVPARSE or die $! ? "Cannot execute rev-parse: $!" : "rev-parse exited with status: $?";
+
+ $short_obj = $obj if not defined $short_obj;
+ chomp $short_obj;
+ $url = "$gitweb_url/?a=commit;h=$short_obj";
+ }
+
push @notice, format_table(
"Module: $repos_name",
"Branch: $ref",
@@ -331,7 +348,7 @@ sub send_commit_notice($$)
"Author:" . $info{"author"},
$info{"committer"} ne $info{"author"} ? "Committer:" . $info{"committer"} : undef,
"Date:" . format_date($info{"author_date"},$info{"author_tz"}),
- $gitweb_url ? "URL: $gitweb_url/?a=commit;h=$obj" : undef),
+ $url ? "URL: $url" : undef),
"",
@{$info{"log"}},
"",