# [PATCH] svnrdump_sim: start the script with /usr/bin/env python

8 messages from 2012-11-28 to 2012-11-28. Participants: Christian Couder, Junio C Hamano, Felipe Contreras.
Thread: https://gitlist.dev/t/32223

## Christian Couder, 2012-11-28 02:57

Subject: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <20121128025734.21231.47468.chriscool@tuxfamily.org>
URL: https://gitlist.dev/e/20121128025734.21231.47468.chriscool%40tuxfamily.org

```
All the python scripts except contrib/svn-fe/svnrdump_sim.py
start with "#!/usr/bin/env python".

This patch fix contrib/svn-fe/svnrdump_sim.py to do the same.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 contrib/svn-fe/svnrdump_sim.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/svn-fe/svnrdump_sim.py b/contrib/svn-fe/svnrdump_sim.py
index 1cfac4a..d219180 100755
--- a/contrib/svn-fe/svnrdump_sim.py
+++ b/contrib/svn-fe/svnrdump_sim.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 """
 Simulates svnrdump by replaying an existing dump from a file, taking care
 of the specified revision range.
-- 
1.7.11.rc3.17.g55b3f8c

```

## Junio C Hamano, 2012-11-28 07:36

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <7vy5hmgovt.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vy5hmgovt.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20121128025734.21231.47468.chriscool@tuxfamily.org>

```
Christian Couder <chriscool@tuxfamily.org> writes:

> All the python scripts except contrib/svn-fe/svnrdump_sim.py
> start with "#!/usr/bin/env python".
>
> This patch fix contrib/svn-fe/svnrdump_sim.py to do the same.

I suspect you need a bit more than that.

    $ make git-p4
    $ diff -u git-p4.py git-p4

shows you how we tell the scripts how to find their interpreters
(that way, there is no need to rely on the existence of
/usr/bin/env).

>
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
> ---
>  contrib/svn-fe/svnrdump_sim.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/contrib/svn-fe/svnrdump_sim.py b/contrib/svn-fe/svnrdump_sim.py
> index 1cfac4a..d219180 100755
> --- a/contrib/svn-fe/svnrdump_sim.py
> +++ b/contrib/svn-fe/svnrdump_sim.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/env python
>  """
>  Simulates svnrdump by replaying an existing dump from a file, taking care
>  of the specified revision range.

```

## Felipe Contreras, 2012-11-28 08:03

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <CAMP44s17Gycr2tWOLYAxMG7-CGP3SpFf7XTWf94qGg3WfVpT-A@mail.gmail.com>
URL: https://gitlist.dev/e/CAMP44s17Gycr2tWOLYAxMG7-CGP3SpFf7XTWf94qGg3WfVpT-A%40mail.gmail.com
In-Reply-To: <7vy5hmgovt.fsf@alter.siamese.dyndns.org>

```
On Wed, Nov 28, 2012 at 8:36 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Christian Couder <chriscool@tuxfamily.org> writes:
>
>> All the python scripts except contrib/svn-fe/svnrdump_sim.py
>> start with "#!/usr/bin/env python".
>>
>> This patch fix contrib/svn-fe/svnrdump_sim.py to do the same.
>
> I suspect you need a bit more than that.
>
>     $ make git-p4
>     $ diff -u git-p4.py git-p4
>
> shows you how we tell the scripts how to find their interpreters
> (that way, there is no need to rely on the existence of
> /usr/bin/env).

That works if somebody managed to export PYTHON_PATH, which very very
often is not the case for me.

./git-p4
zsh: ./git-p4: bad interpreter: /usr/bin/python: no such file or directory

In this case git-p4.py is correct, and git-p4 is not.

Either way, this is for contrib, and we don't have a standard
procedure for python scripts there. /usr/bin/env is better than
nothing, and in the vast majority of cases, more than enough.

Cheers.

-- 
Felipe Contreras

```

## Christian Couder, 2012-11-28 08:55

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <CAP8UFD08LhywQ9KaNoeG1nORZwtK8MNWqwjfRJPyT2vLkNgs9A@mail.gmail.com>
URL: https://gitlist.dev/e/CAP8UFD08LhywQ9KaNoeG1nORZwtK8MNWqwjfRJPyT2vLkNgs9A%40mail.gmail.com
In-Reply-To: <CAMP44s17Gycr2tWOLYAxMG7-CGP3SpFf7XTWf94qGg3WfVpT-A@mail.gmail.com>

```
On Wed, Nov 28, 2012 at 9:03 AM, Felipe Contreras
<felipe.contreras@gmail.com> wrote:
> On Wed, Nov 28, 2012 at 8:36 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> Christian Couder <chriscool@tuxfamily.org> writes:
>>
>>> All the python scripts except contrib/svn-fe/svnrdump_sim.py
>>> start with "#!/usr/bin/env python".
>>>
>>> This patch fix contrib/svn-fe/svnrdump_sim.py to do the same.
>>
>> I suspect you need a bit more than that.
>>
>>     $ make git-p4
>>     $ diff -u git-p4.py git-p4
>>
>> shows you how we tell the scripts how to find their interpreters
>> (that way, there is no need to rely on the existence of
>> /usr/bin/env).
>
> That works if somebody managed to export PYTHON_PATH, which very very
> often is not the case for me.

Yeah, and even if PYTHON_PATH is used, in t9020-remote-svn.sh,
svnrdump.py is used as is.
So if your python is not /usr/bin/python, you cannot just add
something to $PATH to pass the test.

Best regards,
Christian.

```

## Junio C Hamano, 2012-11-28 16:57

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <7vmwy1hdgx.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vmwy1hdgx.fsf%40alter.siamese.dyndns.org
In-Reply-To: <CAP8UFD08LhywQ9KaNoeG1nORZwtK8MNWqwjfRJPyT2vLkNgs9A@mail.gmail.com>

```
Christian Couder <christian.couder@gmail.com> writes:

> On Wed, Nov 28, 2012 at 9:03 AM, Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
>> On Wed, Nov 28, 2012 at 8:36 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Christian Couder <chriscool@tuxfamily.org> writes:
>>>
>>>> All the python scripts except contrib/svn-fe/svnrdump_sim.py
>>>> start with "#!/usr/bin/env python".
>>>>
>>>> This patch fix contrib/svn-fe/svnrdump_sim.py to do the same.
>>>
>>> I suspect you need a bit more than that.
>>>
>>>     $ make git-p4
>>>     $ diff -u git-p4.py git-p4
>>>
>>> shows you how we tell the scripts how to find their interpreters
>>> (that way, there is no need to rely on the existence of
>>> /usr/bin/env).
>>
>> That works if somebody managed to export PYTHON_PATH, which very very
>> often is not the case for me.
>
> Yeah, and even if PYTHON_PATH is used, in t9020-remote-svn.sh,
> svnrdump.py is used as is.

You need a fix for that; didn't I already say "you need a bit more
than that"?

```

## Felipe Contreras, 2012-11-28 19:19

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <CAMP44s3YfLrL+74j5DOVVATK8GWEo1qHnmJDW5dLWJRxK_CVLQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAMP44s3YfLrL%2B74j5DOVVATK8GWEo1qHnmJDW5dLWJRxK_CVLQ%40mail.gmail.com
In-Reply-To: <7vmwy1hdgx.fsf@alter.siamese.dyndns.org>

```
On Wed, Nov 28, 2012 at 5:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Christian Couder <christian.couder@gmail.com> writes:
>
>> On Wed, Nov 28, 2012 at 9:03 AM, Felipe Contreras
>> <felipe.contreras@gmail.com> wrote:

>>> That works if somebody managed to export PYTHON_PATH, which very very
>>> often is not the case for me.
>>
>> Yeah, and even if PYTHON_PATH is used, in t9020-remote-svn.sh,
>> svnrdump.py is used as is.
>
> You need a fix for that; didn't I already say "you need a bit more
> than that"?

I disagree. Most of the contrib scripts are expected to be used as
they are. There's no step in the Makefile that will convert them, and
it's up to each distribution to decide what to do with them. This is
what Arch Linux does:

  # more contrib stuff
  cp -a ./contrib/* $pkgdir/usr/share/git/
  # scripts are for python 2.x
  sed -i 's|#![ ]*/usr/bin/env python|#!/usr/bin/env python2|' \
    $(find "$pkgdir" -name '*.py') \
    "$pkgdir"/usr/lib/git-core/git-p4 \
    "$pkgdir"/usr/share/git/gitview/gitview

At some point we might decide to change this, but at the moment
contrib scripts are pretty much stand-alone.

Cheers.

-- 
Felipe Contreras

```

## Junio C Hamano, 2012-11-28 19:33

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <7v7gp5v7y1.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v7gp5v7y1.fsf%40alter.siamese.dyndns.org
In-Reply-To: <CAMP44s3YfLrL+74j5DOVVATK8GWEo1qHnmJDW5dLWJRxK_CVLQ@mail.gmail.com>

```
Felipe Contreras <felipe.contreras@gmail.com> writes:

> On Wed, Nov 28, 2012 at 5:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
> ...
>> You need a fix for that; didn't I already say "you need a bit more
>> than that"?
>
> I disagree. Most of the contrib scripts are expected to be used as
> they are.

You are only looking at one of the uses for this script, when there
are two.

You are correct that distros may install with whatever tweaks of
their own, and to help their tweak process (like the one that
specifically notices "/usr/bin/env python" as you wrote), changing
the "#!/usr/bin/python" to match others would be a good change.

But that change alone is not sufficient for this one, which is used
from t/ script.  You cannot treat this one like import-zips and
hg-to-git that we do not use in-tree.  Somewhere before t9020 uses
it, it needs the treatment similar to the rewriting that is done for
git-p4.py to git-p4.

```

## Felipe Contreras, 2012-11-28 21:32

Subject: Re: [PATCH] svnrdump_sim: start the script with /usr/bin/env python
Message-ID: <CAMP44s3dfY=UODdH+Q+YQiP5pwaoHpuDNwbOYh5GUF7AmoJigw@mail.gmail.com>
URL: https://gitlist.dev/e/CAMP44s3dfY%3DUODdH%2BQ%2BYQiP5pwaoHpuDNwbOYh5GUF7AmoJigw%40mail.gmail.com
In-Reply-To: <7v7gp5v7y1.fsf@alter.siamese.dyndns.org>

```
On Wed, Nov 28, 2012 at 8:33 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
>> On Wed, Nov 28, 2012 at 5:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> ...
>>> You need a fix for that; didn't I already say "you need a bit more
>>> than that"?
>>
>> I disagree. Most of the contrib scripts are expected to be used as
>> they are.
>
> You are only looking at one of the uses for this script, when there
> are two.
>
> You are correct that distros may install with whatever tweaks of
> their own, and to help their tweak process (like the one that
> specifically notices "/usr/bin/env python" as you wrote), changing
> the "#!/usr/bin/python" to match others would be a good change.
>
> But that change alone is not sufficient for this one, which is used
> from t/ script.  You cannot treat this one like import-zips and
> hg-to-git that we do not use in-tree.  Somewhere before t9020 uses
> it, it needs the treatment similar to the rewriting that is done for
> git-p4.py to git-p4.

Unless the tests are moved to contrib, which I think is a good
practice: should anything in contrib break 'make test'? I don't think
so.

Cheers.

-- 
Felipe Contreras

```
