Hi, On Mon, May 4, 2015 at 4:04 PM, Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> wrote: > Paul Tan <pyokagan@xxxxxxxxx> writes: >> I'm having trouble hitting the 1st case without resorting to the hack below. A >> detached HEAD will always have no remote configured, and the code flow would >> make it such that case (4) is hit in the detached HEAD case instead of case >> (1). > > This should appear in comments in the test 'fail if not on a branch'. > People reading your [branch ""] in the future won't look for > below-triple-dash comments in the mailing-list archives ... > > And actually, it would be more user-friendly to trigger this error > message in the normal senario, i.e. check for 1. before 4. in the code. > This was most likely the intension of the programmer who wrote this > error message. You may want to fix this now, or add a > test_expect_failure which will become a test_expect_success when you > replace git-pull.sh with builtin/pull.c. Ah, I just figured out how to trigger this error. Just for reference, before I forget: 1. HEAD must be detached (such that there is no configured remote) 2. The default remote "origin" must exist, so that git-fetch will succeed even though there is no configured remote for the detached HEAD. 3. git pull must be called with no arguments, to avoid (4). I guess everything is working as intended. I copied the different cases from the commit message of a8c9bef4, but I think that they should be re-ordered to match the logic in the code. Furthermore, cases (1) and (2) could probably be explained as: (1) git-fetch succeeded in fetching from the branch's or repo's default remote, but: (1a) We are not on a branch, so there will never be a configured upstream branch to merge with. (1b) We are on a branch, but there is no configured upstream branch to merge with. -- 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