Re: When does git check for branch-X being uptodate with origin/branch-X?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 21, 2016 at 1:28 PM, Jeff King <peff@xxxxxxxx> wrote:
> On Mon, Mar 21, 2016 at 08:21:46PM +0000, Thomas Adam wrote:
>
>> Something I've seen a few times of late (although I doubt that's any
>> indication that the code has changed in Git) is the reporting of
>> branch-X being uptodate with origin/branch-X when it isn't.
>>
>> When does git check to see if branch-X has a remote tracking branch
>> and that it has changes on it?  Only, the output below is misleading:
>>
>> % git checkout master
>> Switched to branch 'master'
>> Your branch is up-to-date with 'fvwmorg/master'.
>>
>> [fvwm-cvs-to-git/docs]{10345}[0][master] % git pull
>> remote: Counting objects: 26, done.
>> remote: Compressing objects: 100% (12/12), done.
>> remote: Total 26 (delta 18), reused 22 (delta 14), pack-reused 0
>> Unpacking objects: 100% (26/26), done.
>> From github.com:fvwmorg/fvwm
>>    c029868..36cc898  master     -> fvwmorg/master
>>    4f0c7ec..36cc898  ta/git-docs -> fvwmorg/ta/git-docs
>> Updating c029868..36cc898
>> Fast-forward
>> [...]
>>
>> Clearly, it's obvious that "Your branch is up-to-date with
>> 'fvwmorg/master'." is misleading.  Note that in this case, there's no
>> passwords or other hindrances to Git being able to work out that a
>> branch is behind another.
>
> The message from checking is looking only at your local
> refs/remotes/fvwmorg/master branch, which is essentially a cache of what
> is in the actual remote repository.
>
> We never contact other repositories unless explicitly asked to by
> fetch, pull, push, etc. If you want to have the most up-to-date value
> without merging, you can just "git fetch" to update the tracking
> branches.

To elaborate on that:

If you do "git fetch" instead of "git pull" and then followed by
"git status" it should tell you something like:

    Your branch is behind 'origin/master' by 73 commits, and can be
fast-forwarded.

The origin/ (or in your case fvwmorg/) is a local "cache" on what
we think the remote is at. the remote may change of course.

Stefan

>
> -Peff
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]