# [TopGit PATCH] hooks/pre-commit.sh: fix it again

8 messages from 2009-03-25 to 2009-03-26. Participants: Bert Wesarg, Uwe Kleine-König, martin f krafft, Marc Kleine-Budde.
Thread: https://gitlist.dev/t/18533

## Bert Wesarg, 2009-03-25 11:43

Subject: [TopGit PATCH] hooks/pre-commit.sh: fix it again
Message-ID: <1237981384-7857-1-git-send-email-bert.wesarg@googlemail.com>
URL: https://gitlist.dev/e/1237981384-7857-1-git-send-email-bert.wesarg%40googlemail.com

```
First I think the '#' is a leftover, second this is now a bashism.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>

---
 hooks/pre-commit.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hooks/pre-commit.sh b/hooks/pre-commit.sh
index a12cfa6..edf2932 100644
--- a/hooks/pre-commit.sh
+++ b/hooks/pre-commit.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # TopGit - A different patch queue manager
 # (c) Petr Baudis <pasky@suse.cz>  2008
 # GPLv2
@@ -20,7 +20,7 @@ tg_util
 if head_=$(git symbolic-ref -q HEAD); then
 	case "$head_" in
 		refs/heads/*)
-			git rev-parse -q --verify "${head_/#refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
+			git rev-parse -q --verify "${head_/refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
 		*)
 			exit 0;;
 	esac
-- 
tg: (fcb488d..) bw/fix-hook-again (depends on: master)

```

## martin f krafft, 2009-03-25 12:17

Subject: Re: [TopGit PATCH] hooks/pre-commit.sh: fix it again
Message-ID: <20090325121721.GB13065@lapse.rw.madduck.net>
URL: https://gitlist.dev/e/20090325121721.GB13065%40lapse.rw.madduck.net
In-Reply-To: <1237981384-7857-1-git-send-email-bert.wesarg@googlemail.com>

```
also sprach Bert Wesarg <bert.wesarg@googlemail.com> [2009.03.25.1243 +0100]:
> First I think the '#' is a leftover, second this is now a bashism.

I think this can be rewritten as POSIX as follows:

> -			git rev-parse -q --verify "${head_/#refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
> +			git rev-parse -q --verify "${head_/refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;

  git rev-parse -q --verify "refs/top-bases/${head_##refs/heads/}" >/dev/null || exit 0;;

This turns e.g. refs/heads/foo into foo and prepends
refs/top-bases/, which should be the same effect, assuming that the
variable's value contains nothing else but the ref's path.

-- 
 .''`.   martin f. krafft <madduck@d.o>      Related projects:
: :'  :  proud Debian developer               http://debiansystem.info
`. `'`   http://people.debian.org/~madduck    http://vcs-pkg.org
  `-  Debian - when you have better things to do than fixing systems
 
logik ist analsadismus: gedanken werden gewaltsam
durch einen engen gang gepreßt.
                                                    -- frei nach lacan

```

## Uwe Kleine-König, 2009-03-25 12:20

Subject: Re: [TopGit PATCH] hooks/pre-commit.sh: fix it again
Message-ID: <20090325122027.GB30873@pengutronix.de>
URL: https://gitlist.dev/e/20090325122027.GB30873%40pengutronix.de
In-Reply-To: <1237981384-7857-1-git-send-email-bert.wesarg@googlemail.com>

```
On Wed, Mar 25, 2009 at 12:43:04PM +0100, Bert Wesarg wrote:
> First I think the '#' is a leftover, second this is now a bashism.
according to bash(1):

	If pattern begins with #, it must match at the beginning of the
	expanded value of parameter.

And I noticed, too, that this is a bashism.  Using dash it fails, even
with your patch.

I would prefer to really fix it now.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

```

## Bert Wesarg, 2009-03-25 12:24

Subject: Re: [TopGit PATCH] hooks/pre-commit.sh: fix it again
Message-ID: <36ca99e90903250524g3549b629g8ce1947f741878f7@mail.gmail.com>
URL: https://gitlist.dev/e/36ca99e90903250524g3549b629g8ce1947f741878f7%40mail.gmail.com
In-Reply-To: <20090325122027.GB30873@pengutronix.de>

```
2009/3/25 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> On Wed, Mar 25, 2009 at 12:43:04PM +0100, Bert Wesarg wrote:
>> First I think the '#' is a leftover, second this is now a bashism.
> according to bash(1):
>
>        If pattern begins with #, it must match at the beginning of the
>        expanded value of parameter.
That is obviously true, I first removed this # and than switch to bash
(after it stills failed), so this was just thinking not testing.

>
> And I noticed, too, that this is a bashism.  Using dash it fails, even
> with your patch.
>
> I would prefer to really fix it now.
Thanks. I intended this patch as a bug report.

Bert
>
> Best regards
> Uwe
>
> --
> Pengutronix e.K.                              | Uwe Kleine-König            |
> Industrial Linux Solutions                    | http://www.pengutronix.de/  |
>

```

## Uwe Kleine-König, 2009-03-25 21:44

Subject: Re: [TopGit PATCH] hooks/pre-commit.sh: fix it again
Message-ID: <20090325214454.GA14887@pengutronix.de>
URL: https://gitlist.dev/e/20090325214454.GA14887%40pengutronix.de
In-Reply-To: <1237981384-7857-1-git-send-email-bert.wesarg@googlemail.com>

```
Hello,

>  if head_=$(git symbolic-ref -q HEAD); then
>  	case "$head_" in
>  		refs/heads/*)
> -			git rev-parse -q --verify "${head_/#refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
> +			git rev-parse -q --verify "${head_/refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
			git rev-parse -q --verify "refs/top-bases${head_#refs/heads}" >/dev/null || exit 0;;

should work.

But I'm too tired to make a patch now.  That probably would only result
in more crap...

Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

```

## Uwe Kleine-König, 2009-03-26 09:00

Subject: [PATCH TopGit] hooks/pre-commit.sh: fix bashism
Message-ID: <20090326090009.GA7570@pengutronix.de>
URL: https://gitlist.dev/e/20090326090009.GA7570%40pengutronix.de
In-Reply-To: <1237981384-7857-1-git-send-email-bert.wesarg@googlemail.com>

```
This was introduced in fcb488d51e72c7414f9beb40ad06bf529b8b38dc.
A similar fix was suggested by martin f krafft, too.

Reported-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
Hello,

this should fix the issue now.

If I don't get negative feed back I will push this change later today.
I'm open for acks, too.

Best regards and thanks
Uwe

 hooks/pre-commit.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hooks/pre-commit.sh b/hooks/pre-commit.sh
index a12cfa6..9d677e9 100644
--- a/hooks/pre-commit.sh
+++ b/hooks/pre-commit.sh
@@ -20,7 +20,7 @@ tg_util
 if head_=$(git symbolic-ref -q HEAD); then
 	case "$head_" in
 		refs/heads/*)
-			git rev-parse -q --verify "${head_/#refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
+			git rev-parse -q --verify "refs/top-bases${head_#refs/heads}" >/dev/null || exit 0;;
 		*)
 			exit 0;;
 	esac
-- 
1.6.2

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

```

## Marc Kleine-Budde, 2009-03-26 09:29

Subject: Re: [PATCH TopGit] hooks/pre-commit.sh: fix bashism
Message-ID: <49CB4B12.3020408@pengutronix.de>
URL: https://gitlist.dev/e/49CB4B12.3020408%40pengutronix.de
In-Reply-To: <20090326090009.GA7570@pengutronix.de>

```
Uwe Kleine-König wrote:
> This was introduced in fcb488d51e72c7414f9beb40ad06bf529b8b38dc.
> A similar fix was suggested by martin f krafft, too.

Works here on ubuntu bin /bin/sh is a link to /bin/dash

> Reported-by: Bert Wesarg <bert.wesarg@googlemail.com>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>

> ---
> Hello,
> 
> this should fix the issue now.
> 
> If I don't get negative feed back I will push this change later today.
> I'm open for acks, too.
> 
> Best regards and thanks
> Uwe
> 
>  hooks/pre-commit.sh |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/hooks/pre-commit.sh b/hooks/pre-commit.sh
> index a12cfa6..9d677e9 100644
> --- a/hooks/pre-commit.sh
> +++ b/hooks/pre-commit.sh
> @@ -20,7 +20,7 @@ tg_util
>  if head_=$(git symbolic-ref -q HEAD); then
>  	case "$head_" in
>  		refs/heads/*)
> -			git rev-parse -q --verify "${head_/#refs\/heads/refs\/top-bases}" >/dev/null || exit 0;;
> +			git rev-parse -q --verify "refs/top-bases${head_#refs/heads}" >/dev/null || exit 0;;
>  		*)
>  			exit 0;;
>  	esac

Marc

-- 
Pengutronix e.K.                         | Marc Kleine-Budde           |
Linux Solutions for Science and Industry | Phone: +49-231-2826-924     |
Vertretung West/Dortmund                 | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686         | http://www.pengutronix.de   |


```

## Bert Wesarg, 2009-03-26 14:21

Subject: Re: [PATCH TopGit] hooks/pre-commit.sh: fix bashism
Message-ID: <36ca99e90903260721l128efcbep1a45d7639733e49d@mail.gmail.com>
URL: https://gitlist.dev/e/36ca99e90903260721l128efcbep1a45d7639733e49d%40mail.gmail.com
In-Reply-To: <49CB4B12.3020408@pengutronix.de>

```
2009/3/26 Marc Kleine-Budde <mkl@pengutronix.de>:
> Uwe Kleine-König wrote:
>> This was introduced in fcb488d51e72c7414f9beb40ad06bf529b8b38dc.
>> A similar fix was suggested by martin f krafft, too.
>
> Works here on ubuntu bin /bin/sh is a link to /bin/dash
>
>> Reported-by: Bert Wesarg <bert.wesarg@googlemail.com>
>> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Bert Wesarg <bert.wesarg@googlemail.com>
Tested-by: Bert Wesarg <bert.wesarg@googlemail.com>

Thanks Uwe.

Bert

```
