Subject: Re: [ANNOUNCE] Git v1.9-rc0

From: Kacper Kornet <[email-masked]>
Date: Tue, 28 Jan 2014 13:28:51 +0100

On Mon, Jan 27, 2014 at 10:58:29AM -0800, Jonathan Nieder wrote:
> Hi,

> Kacper Kornet wrote:

> > The change in release numbering also breaks down gitolite v2 setups. One
> > of the gitolite commands, gl-compile-conf, expects the output of git --version 
> > to match /git version (\d+)\.(\d+)\.(\d+)/. 

> > I have no idea how big problem it is, as I don't know how many people
> > hasn't migrate to gitolite v3 yet. 

> http://qa.debian.org/popcon.php?package=gitolite says there are some.
> I guess soon we'll see if there are complaints.

> http://gitolite.com/gitolite/migr.html says gitolite v2 is still
> maintained.  Hopefully the patch to gitolite v2 to fix this would not
> be too invasive --- e.g., how about this patch (untested)?

> Thanks,
> Jonathan

> diff --git i/src/gl-compile-conf w/src/gl-compile-conf
> index f497ae5..8508313 100755
> --- i/src/gl-compile-conf
> +++ w/src/gl-compile-conf
> @@ -394,8 +394,9 @@ die "
>      the server.  If it is not, please edit ~/.gitolite.rc on the server and
>      set the \$GIT_PATH variable to the correct value\n
>  " unless $git_version;
> -my ($gv_maj, $gv_min, $gv_patchrel) = ($git_version =~ m/git version (\d+)\.(\d+)\.(\d+)/);
> +my ($gv_maj, $gv_min, $gv_patchrel) = ($git_version =~ m/git version (\d+)\.(\d+)\.([^.-]*)/);
>  die "$ABRT I can't understand $git_version\n" unless ($gv_maj >= 1);
> +$gv_patchrel = 0 unless ($gv_patchrel =~ m/^\d+$/);
>  $git_version = $gv_maj*10000 + $gv_min*100 + $gv_patchrel;  # now it's "normalised"

>  die "\n\t\t***** AAARGH! *****\n" .

It works for 1.9.rc1 but I think it will fail with final 1.9. The
following version should be ok:

diff --git a/src/gl-compile-conf b/src/gl-compile-conf
index f497ae5..c391468 100755
--- a/src/gl-compile-conf
+++ b/src/gl-compile-conf
@@ -394,7 +394,7 @@ die "
     the server.  If it is not, please edit ~/.gitolite.rc on the server and
     set the \$GIT_PATH variable to the correct value\n
 " unless $git_version;
-my ($gv_maj, $gv_min, $gv_patchrel) = ($git_version =~ m/git version (\d+)\.(\d+)\.(\d+)/);
+my ($gv_maj, $gv_min, undef, $gv_patchrel) = ($git_version =~ m/git version (\d+)\.(\d+)(\.(\d+))?/);
 die "$ABRT I can't understand $git_version\n" unless ($gv_maj >= 1);
 $git_version = $gv_maj*10000 + $gv_min*100 + $gv_patchrel;  # now it's "normalised"
 
-- 
  Kacper