# Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48

3 messages from 2018-08-10 to 2018-08-10. Participants: Paul Jolly, Jeff King.
Thread: https://gitlist.dev/t/49092

## Paul Jolly, 2018-08-10 18:04

Subject: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48
Message-ID: <CACoUkn5wXY7924hftXhCXh_N_htWoiaGEV5f7ZEM4-PE57_1oA@mail.gmail.com>
URL: https://gitlist.dev/e/CACoUkn5wXY7924hftXhCXh_N_htWoiaGEV5f7ZEM4-PE57_1oA%40mail.gmail.com

```
Hi,

I've tried to skim through the archive, but I couldn't find anything
that describes what I'm seeing. Apologies if that's because I missed
something/used the wrong search terms, or this is an intentional
change in behaviour.

Using 2.18.0.547.g1d89318c48, git fetch behaves differently to 2.18.0.

The scenario in which I'm seeing a difference in behaviour is when
there are (by virtue of the state of my local git repo and the origin,
remote) pending objects, branch updates etc to fetch from the remote.

To compare, here is the output of git fetch -v using 2.18.0:

POST git-upload-pack (948 bytes)
remote: Counting objects: 8961, done
remote: Finding sources: 100% (9/9)
remote: Total 9 (delta 0), reused 6 (delta 0)
Unpacking objects: 100% (9/9), done.
From https://go.googlesource.com/go
 = [up-to-date]            dev.boringcrypto        -> origin/dev.boringcrypto
 = [up-to-date]            dev.boringcrypto.go1.10 ->
origin/dev.boringcrypto.go1.10
 = [up-to-date]            dev.boringcrypto.go1.8  ->
origin/dev.boringcrypto.go1.8
 = [up-to-date]            dev.boringcrypto.go1.9  ->
origin/dev.boringcrypto.go1.9
 = [up-to-date]            dev.cc                  -> origin/dev.cc
 = [up-to-date]            dev.debug               -> origin/dev.debug
 = [up-to-date]            dev.garbage             -> origin/dev.garbage
 = [up-to-date]            dev.gcfe                -> origin/dev.gcfe
 = [up-to-date]            dev.inline              -> origin/dev.inline
 = [up-to-date]            dev.power64             -> origin/dev.power64
 = [up-to-date]            dev.ssa                 -> origin/dev.ssa
 = [up-to-date]            dev.tls                 -> origin/dev.tls
 = [up-to-date]            dev.typealias           -> origin/dev.typealias
   479da24aac..dce644d95b  master                  -> origin/master
 = [up-to-date]            release-branch.go1      -> origin/release-branch.go1
 = [up-to-date]            release-branch.go1.1    ->
origin/release-branch.go1.1
 = [up-to-date]            release-branch.go1.10   ->
origin/release-branch.go1.10
 = [up-to-date]            release-branch.go1.2    ->
origin/release-branch.go1.2
 = [up-to-date]            release-branch.go1.3    ->
origin/release-branch.go1.3
 = [up-to-date]            release-branch.go1.4    ->
origin/release-branch.go1.4
 = [up-to-date]            release-branch.go1.5    ->
origin/release-branch.go1.5
 = [up-to-date]            release-branch.go1.6    ->
origin/release-branch.go1.6
 = [up-to-date]            release-branch.go1.7    ->
origin/release-branch.go1.7
 = [up-to-date]            release-branch.go1.8    ->
origin/release-branch.go1.8
 = [up-to-date]            release-branch.go1.9    ->
origin/release-branch.go1.9
 = [up-to-date]            release-branch.r57      -> origin/release-branch.r57
 = [up-to-date]            release-branch.r58      -> origin/release-branch.r58
 = [up-to-date]            release-branch.r59      -> origin/release-branch.r59
 = [up-to-date]            release-branch.r60      -> origin/release-branch.r60

Notice the update to origin/master.

Here is the output of git fetch -v using 2.18.0.547.g1d89318c48:

POST git-upload-pack (964 bytes)
remote: Counting objects: 8961, done
remote: Finding sources: 100% (9/9)
remote: Total 9 (delta 0), reused 6 (delta 0)
Unpacking objects: 100% (9/9), done.
From https://go.googlesource.com/go
 = [up-to-date]            dev.boringcrypto        -> origin/dev.boringcrypto
 = [up-to-date]            dev.boringcrypto.go1.10 ->
origin/dev.boringcrypto.go1.10
 = [up-to-date]            dev.boringcrypto.go1.8  ->
origin/dev.boringcrypto.go1.8
 = [up-to-date]            dev.boringcrypto.go1.9  ->
origin/dev.boringcrypto.go1.9
 = [up-to-date]            dev.cc                  -> origin/dev.cc
 = [up-to-date]            dev.debug               -> origin/dev.debug
 = [up-to-date]            dev.garbage             -> origin/dev.garbage
 = [up-to-date]            dev.gcfe                -> origin/dev.gcfe
 = [up-to-date]            dev.inline              -> origin/dev.inline
 = [up-to-date]            dev.power64             -> origin/dev.power64
 = [up-to-date]            dev.ssa                 -> origin/dev.ssa
 = [up-to-date]            dev.tls                 -> origin/dev.tls
 = [up-to-date]            dev.typealias           -> origin/dev.typealias
 = [up-to-date]            release-branch.go1      -> origin/release-branch.go1
 = [up-to-date]            release-branch.go1.1    ->
origin/release-branch.go1.1
 = [up-to-date]            release-branch.go1.10   ->
origin/release-branch.go1.10
 = [up-to-date]            release-branch.go1.2    ->
origin/release-branch.go1.2
 = [up-to-date]            release-branch.go1.3    ->
origin/release-branch.go1.3
 = [up-to-date]            release-branch.go1.4    ->
origin/release-branch.go1.4
 = [up-to-date]            release-branch.go1.5    ->
origin/release-branch.go1.5
 = [up-to-date]            release-branch.go1.6    ->
origin/release-branch.go1.6
 = [up-to-date]            release-branch.go1.7    ->
origin/release-branch.go1.7
 = [up-to-date]            release-branch.go1.8    ->
origin/release-branch.go1.8
 = [up-to-date]            release-branch.go1.9    ->
origin/release-branch.go1.9
 = [up-to-date]            release-branch.r57      -> origin/release-branch.r57
 = [up-to-date]            release-branch.r58      -> origin/release-branch.r58
 = [up-to-date]            release-branch.r59      -> origin/release-branch.r59
 = [up-to-date]            release-branch.r60      -> origin/release-branch.r60

Indeed only if I repeat git fetch with 2.18.0.547.g1d89318c48 do I see
the update to origin/master:

From https://go.googlesource.com/go
 = [up-to-date]            dev.boringcrypto        -> origin/dev.boringcrypto
 = [up-to-date]            dev.boringcrypto.go1.10 ->
origin/dev.boringcrypto.go1.10
 = [up-to-date]            dev.boringcrypto.go1.8  ->
origin/dev.boringcrypto.go1.8
 = [up-to-date]            dev.boringcrypto.go1.9  ->
origin/dev.boringcrypto.go1.9
 = [up-to-date]            dev.cc                  -> origin/dev.cc
 = [up-to-date]            dev.debug               -> origin/dev.debug
 = [up-to-date]            dev.garbage             -> origin/dev.garbage
 = [up-to-date]            dev.gcfe                -> origin/dev.gcfe
 = [up-to-date]            dev.inline              -> origin/dev.inline
 = [up-to-date]            dev.power64             -> origin/dev.power64
 = [up-to-date]            dev.ssa                 -> origin/dev.ssa
 = [up-to-date]            dev.tls                 -> origin/dev.tls
 = [up-to-date]            dev.typealias           -> origin/dev.typealias
   479da24aac..dce644d95b  master                  -> origin/master
 = [up-to-date]            release-branch.go1      -> origin/release-branch.go1
 = [up-to-date]            release-branch.go1.1    ->
origin/release-branch.go1.1
 = [up-to-date]            release-branch.go1.10   ->
origin/release-branch.go1.10
 = [up-to-date]            release-branch.go1.2    ->
origin/release-branch.go1.2
 = [up-to-date]            release-branch.go1.3    ->
origin/release-branch.go1.3
 = [up-to-date]            release-branch.go1.4    ->
origin/release-branch.go1.4
 = [up-to-date]            release-branch.go1.5    ->
origin/release-branch.go1.5
 = [up-to-date]            release-branch.go1.6    ->
origin/release-branch.go1.6
 = [up-to-date]            release-branch.go1.7    ->
origin/release-branch.go1.7
 = [up-to-date]            release-branch.go1.8    ->
origin/release-branch.go1.8
 = [up-to-date]            release-branch.go1.9    ->
origin/release-branch.go1.9
 = [up-to-date]            release-branch.r57      -> origin/release-branch.r57
 = [up-to-date]            release-branch.r58      -> origin/release-branch.r58
 = [up-to-date]            release-branch.r59      -> origin/release-branch.r59
 = [up-to-date]            release-branch.r60      -> origin/release-branch.r60

Can someone help explain what's going on here?

Thanks,


Paul

```

## Jeff King, 2018-08-10 18:12

Subject: Re: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48
Message-ID: <20180810181205.GA7516@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20180810181205.GA7516%40sigill.intra.peff.net
In-Reply-To: <CACoUkn5wXY7924hftXhCXh_N_htWoiaGEV5f7ZEM4-PE57_1oA@mail.gmail.com>

```
On Fri, Aug 10, 2018 at 07:04:08PM +0100, Paul Jolly wrote:

> I've tried to skim through the archive, but I couldn't find anything
> that describes what I'm seeing. Apologies if that's because I missed
> something/used the wrong search terms, or this is an intentional
> change in behaviour.
> 
> Using 2.18.0.547.g1d89318c48, git fetch behaves differently to 2.18.0.
> 
> The scenario in which I'm seeing a difference in behaviour is when
> there are (by virtue of the state of my local git repo and the origin,
> remote) pending objects, branch updates etc to fetch from the remote.
> [...]
> Indeed only if I repeat git fetch with 2.18.0.547.g1d89318c48 do I see
> the update to origin/master:

I think this is the bug from:

  https://public-inbox.org/git/20180729121900.GA16770@sigill.intra.peff.net/

The fix is in e2842b39f4 (fetch-pack: unify ref in and out param,
2018-08-01), and is currently in the 'next' branch, and marked for
merging to master in the next integration cycle.

-Peff

```

## Paul Jolly, 2018-08-10 18:18

Subject: Re: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48
Message-ID: <CACoUkn4RREF61=pPMz14bws6TKA2LPC1+b-vix5j0V3g5pBzyA@mail.gmail.com>
URL: https://gitlist.dev/e/CACoUkn4RREF61%3DpPMz14bws6TKA2LPC1%2Bb-vix5j0V3g5pBzyA%40mail.gmail.com
In-Reply-To: <20180810181205.GA7516@sigill.intra.peff.net>

```
> I think this is the bug from:
>
>   https://public-inbox.org/git/20180729121900.GA16770@sigill.intra.peff.net/
>
> The fix is in e2842b39f4 (fetch-pack: unify ref in and out param,
> 2018-08-01), and is currently in the 'next' branch, and marked for
> merging to master in the next integration cycle.

Thanks for the pointer, sounds like my case exactly.


Paul

```
