On 6 January 2014 01:24, Thomas Ackermann <th.acker@xxxxxxxx> wrote: > > > Hi Jiang, > > this happens with all of my repo clones (I am using V1.8.5.2 > on Windows and on Linux). Steps to reproduce: > > mkdir repo_a && cd repo_a && git init . > echo "1">foo && git add foo && git commit -m "1" > cd .. > git clone repo_a repo_b > cd repo_a > echo "2">foo && git add foo && git commit -m "2" > cd ../repo_b > git status > git checkout -b "branch" > git checkout master > > 'git status' and 'git checkout master' in repo_b are now > reporting "Your branch is up-to-date with 'origin/master'" > which is obviously wrong. > Unfortunately that's not true. In repo_b your ref for origin/master has not moved. It has remotely (meaning refs/heads/master in repo_a has moved), but git status is not hitting the remote to find out; it only looks at the local state. To see what I mean, run git fetch in repo_b. Once you do that, you'll see that git status correctly reports you're behind. > > --- > Thomas > > ----- Original Nachricht ---- > Von: Jiang Xin <worldhello.net@xxxxxxxxx> > An: Thomas Ackermann <th.acker@xxxxxxxx> > Datum: 06.01.2014 06:31 > Betreff: Re: [Bug report] 'git status' always says "Your branch is up-to-date > with 'origin/master'" > > > 2014/1/5 Thomas Ackermann <th.acker@xxxxxxxx>: > > > Since f223459 "status: always show tracking branch even no change" > > > 'git status' (and 'git checkout master' always says > > > "Your branch is up-to-date with 'origin/master'" > > > even if 'origin/master' is way ahead from local 'master'. > > > > Hi, Thomas > > > > Can you provide your operations so that I can reproduce this issue? > > > > In the commit you mentioned above, there was a new test case named > > 'checkout (up-to-date with upstream)' added in 't6040'. I also add two > > test-cases locally in order to reproduce the issue you report, and run > > them in arbitrary orders, but they all look fine: > > > > ok 4 - checkout (behind upstream) > > ok 5 - checkout (ahead upstream) > > ok 6 - checkout (diverged from upstream) > > ok 7 - checkout with local tracked branch > > ok 8 - checkout (upstream is gone) > > ok 9 - checkout (up-to-date with upstream) > > ok 10 - checkout (upstream is gone) > > ok 11 - checkout with local tracked branch > > ok 12 - checkout (diverged from upstream) > > ok 13 - checkout (ahead upstream) > > ok 14 - checkout (behind upstream) > > ok 15 - checkout (diverged from upstream) > > ok 16 - checkout (upstream is gone) > > ok 17 - checkout (ahead upstream) > > ok 18 - checkout with local tracked branch > > ok 19 - checkout (behind upstream) > > > > > > The two additional test cases I used locally are: > > > > checkout_test1() { > > test_expect_success 'checkout (behind upstream)' ' > > ( > > cd test && git checkout b3 > > ) >actual && > > test_i18ngrep "is behind .* by 1 commit, and can be > > fast-forwarded" actual > > ' > > } > > > > checkout_test_2() { > > test_expect_success 'checkout (ahead upstream)' ' > > ( > > cd test && git checkout b4 > > ) >actual && > > test_i18ngrep "is ahead of .* by 2 commits" actual > > ' > > } > > > > -- > > Jiang Xin > > > > --- > Thomas > -- > 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