threads / discuss / 49092

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

Subject: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48

## tl;dr

3 messages between Aug 10, 2018 and Aug 10, 2018.

replies: 2people: 2as markdown or json

Paul Jolly· Aug 10, 2018, 18:04 UTC · lore
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· Aug 10, 2018, 18:12 UTC · re: Paul Jolly · lore

Re: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48

On Fri, Aug 10, 2018 at 07:04:08PM +0100, Paul Jolly wrote:
Show 13 quoted lines
> 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· Aug 10, 2018, 18:18 UTC · re: Jeff King · lore

Re: Change in behaviour in git fetch between 2.18.0 and 2.18.0.547.g1d89318c48

Show 7 quoted lines
> 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

← back to recent threads