# [PATCH] Fix git-pull output message

4 messages from 2005-09-28 to 2005-09-29. Participants: Robert Watson, Junio C Hamano, Linus Torvalds.
Thread: https://gitlist.dev/t/1961

## Robert Watson, 2005-09-28 10:02

Subject: [PATCH] Fix git-pull output message
Message-ID: <72499e3b05092803027175bab0@mail.gmail.com>
URL: https://gitlist.dev/e/72499e3b05092803027175bab0%40mail.gmail.com

```
(git)$ git-pull
Fetching refs/heads/master from
http://www.kernel.org/pub/scm/git/git.git using http
* committish: 3cc35e29ec252d0dca1139106fbaa70cb9ad6ef1
  branch 'master' of http://www.kernel.org/pub/scm/git/git
* refs/heads/origin: same as branch 'master' of
http://www.kernel.org/pub/scm/git/git
Already up-to-date. Yeeah!

Notice that the git.git directory is truncated.  It seems the
intension is to truncate at the .git
directory level.  The following patch fixes it.

diff --git a/git-fetch.sh b/git-fetch.sh
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -70,7 +70,7 @@ append_fetch_head () {
     *)
        note_="$remote_name of " ;;
     esac
-    remote_1_=$(expr "$remote_" : '\(.*\)\.git/*$') &&
+    remote_1_=$(expr "$remote_" : '\(.*/\)\.git/*$') &&
        remote_="$remote_1_"
     note_="$note_$remote_"

```

## Junio C Hamano, 2005-09-28 11:00

Subject: Re: [PATCH] Fix git-pull output message
Message-ID: <7v64slxxri.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v64slxxri.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <72499e3b05092803027175bab0@mail.gmail.com>

```
Robert Watson <robert.oo.watson@gmail.com> writes:

> Notice that the git.git directory is truncated.  It seems the
> intension is to truncate at the .git directory level.

c5434dead6a52a48c520dfa3d8ed24dc3673ab1a commit introduced this
behaviour, and we kept it ever since.

It may look a bit weird when it is applied to git.git/, but the
intention is to shorten the log message without losing much
information.  ".../torvalds/linux-2.6.git" is similarly
shortened to ".../torvalds/linux-2.6".

You can see 'git log' output in the kernel repository and look
for commit log messages of merge commits, and notice all those
repository names with trailing ".git" stripped.

```

## Linus Torvalds, 2005-09-28 15:29

Subject: Re: [PATCH] Fix git-pull output message
Message-ID: <Pine.LNX.4.58.0509280823260.3308@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.58.0509280823260.3308%40g5.osdl.org
In-Reply-To: <72499e3b05092803027175bab0@mail.gmail.com>

```


On Wed, 28 Sep 2005, Robert Watson wrote:
> 
> Notice that the git.git directory is truncated.  It seems the
> intension is to truncate at the .git
> directory level.  The following patch fixes it.

No, the intention really is to remove the ".git" at the end. At least 
that's how I use it.

I like seeing my merges say

    Merge branch 'for-linus' from master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband

even though the _real_ directory was ".../infiniband.git/", simply because 
the ".git" doesn't really add any extra information when you're already in 
git.

_outside_ of git, the ".git" tells you something: it tells you that you're 
entering a git archive. But when merging in git, that part is kind of 
taken for granted, isn't it?

This also matches what "git-receive-pack" and "git-upload-pack" does:

	...
        /* chdir to the directory. If that fails, try appending ".git" */
        if (chdir(dir) < 0) {
                if (chdir(mkpath("%s.git", dir)) < 0)
                        die("unable to cd to %s", dir);
        }

        /* If we have a ".git" directory, chdir to it */
        chdir(".git");
	...

Note how it _both_ will append ".git" to the directory name (if it can't 
find one without ".git" _and_ will try to chdir to a ".git" directory 
_within_ the directory name.

So if you use the native pack ssh interfaces, you really can say

	git pull master.kernel.org:.../infiniband

because the tools (well, the "native pack" ones - not the http/rsync/scp
ones) will automatically DTRT.

		Linus

```

## Robert Watson, 2005-09-29 08:48

Subject: Re: [PATCH] Fix git-pull output message
Message-ID: <72499e3b05092901484731450a@mail.gmail.com>
URL: https://gitlist.dev/e/72499e3b05092901484731450a%40mail.gmail.com
In-Reply-To: <Pine.LNX.4.58.0509280823260.3308@g5.osdl.org>

```
On 9/28/05, Linus Torvalds <torvalds@osdl.org> wrote:
>
>
> On Wed, 28 Sep 2005, Robert Watson wrote:
> >
> > Notice that the git.git directory is truncated.  It seems the
> > intension is to truncate at the .git
> > directory level.  The following patch fixes it.
>
> No, the intention really is to remove the ".git" at the end. At least
> that's how I use it.
>
> I like seeing my merges say
>
>     Merge branch 'for-linus' from master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
>
> even though the _real_ directory was ".../infiniband.git/", simply because
> the ".git" doesn't really add any extra information when you're already in
> git.
>
> _outside_ of git, the ".git" tells you something: it tells you that you're
> entering a git archive. But when merging in git, that part is kind of
> taken for granted, isn't it?
>
> This also matches what "git-receive-pack" and "git-upload-pack" does:
>
>         ...
>         /* chdir to the directory. If that fails, try appending ".git" */
>         if (chdir(dir) < 0) {
>                 if (chdir(mkpath("%s.git", dir)) < 0)
>                         die("unable to cd to %s", dir);
>         }
>
>         /* If we have a ".git" directory, chdir to it */
>         chdir(".git");
>         ...
>
> Note how it _both_ will append ".git" to the directory name (if it can't
> find one without ".git" _and_ will try to chdir to a ".git" directory
> _within_ the directory name.
>
> So if you use the native pack ssh interfaces, you really can say
>
>         git pull master.kernel.org:.../infiniband
>
> because the tools (well, the "native pack" ones - not the http/rsync/scp
> ones) will automatically DTRT.
>
>                 Linus
>

Now, I understand it.  Thanks Linus and Junio.

Robertoo

```
