Re: BUG: git request-pull broken for plain branches
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 23:01:44
On Wed, Jun 25, 2014 at 2:55 AM, Uwe Kleine-König [off-list ref] wrote:
$ git rev-parse HEAD
9e065e4a5a58308f1a0da4bb80b830929dfa90b3
$ git ls-remote origin | grep 9e065e4a5a58308f1a0da4bb80b830929dfa90b3
9e065e4a5a58308f1a0da4bb80b830929dfa90b3 refs/heads/ukl/for-mainline
$ git request-pull origin/master origin HEAD > /dev/null
warn: No match for commit 9e065e4a5a58308f1a0da4bb80b830929dfa90b3 found at origin
warn: Are you sure you pushed 'HEAD' there?
Notice how "HEAD" does not match.
The error message is perhaps misleading. It's not enough to match the
commit. You need to match the branch name too. git used to guess the
branch name (from the commit), and it often guessed wrongly. So now
they need to match.
So you should do
git request-pull origin/master origin ukl/for-mainline
to let request-pull know that you're requesting a pull for "ukl/for-mainline".
If you have another name for that branch locally (ie you did something
like "git push origin local:remote"), then you can say
git request-pull origin/master origin local-name:remote-name
to specify what the branch to be pulled is called locally vs remotely.
In other words, what used to be "pick some branch randomly" is now
"you need to _specify_ the branch".
Linus