[Nagiosplug-checkins] SF.net SVN: nagiosplug:[2269] nagiosplug/trunk/tools/git-notify

dermoth at users.sourceforge.net dermoth at users.sourceforge.net
Sat Oct 24 23:01:06 CEST 2009


Revision: 2269
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2269&view=rev
Author:   dermoth
Date:     2009-10-24 21:01:06 +0000 (Sat, 24 Oct 2009)

Log Message:
-----------
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.

From: Holger Weiss <holger at zedat.fu-berlin.de>

Modified Paths:
--------------
    nagiosplug/trunk/tools/git-notify

Modified: nagiosplug/trunk/tools/git-notify
===================================================================
--- nagiosplug/trunk/tools/git-notify	2009-10-24 21:00:55 UTC (rev 2268)
+++ nagiosplug/trunk/tools/git-notify	2009-10-24 21:01:06 UTC (rev 2269)
@@ -168,6 +168,11 @@
     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 @@
     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 @@
 
     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 @@
         "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"}},
         "",


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Commits mailing list