Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [egit-dev] Using EGit to Push to Gerrit

Marek Zawirski wrote:
My guess?  EGit is actually behaving like this on the command line:

  git push URL refs/heads/releng-experiment:refs/heads/refs/for/master


Yep, from the quick look at jgit's Transport class it looks like findRemoteRefUpdatesFor() method may be found guilty. There is a dumb rule - prefix destination ref with "refs/heads/" if only source ref starts with that prefix and destination does not (it was discussed for a while if I recall correctly).

Eee... I was way too fast with that judgment. Apparently that's not true, and mentioned rule is not looking like that. It seems to be ok.

Which has just happened in that case.

Which is neither true, sorry. The destination ref stayed properly untouched.


But I can't be sure.  We'd have to throw logging or a break point
into PushProcess and see what the RefSpec was that was actually
fed into the process.

Actually, RefSpec is ok, but RefSpec to RemoteRefUpdate conversion fails.

Same as above. Which can be also observed in Chris' screenshot - results table shows RemoteRefUpdate not RefSpec, so these are exact refs names, without any further expansion.

Evil error message "[remote rejected]" stands for: remote rejected for other reason. You should get more details in tooltip text, by putting mouse over "[remote rejected]" string. I am curious what caused that.

I may try it on my own, but is there some gerrit test environment where I could try submitting some dummy patch, or should I try to put some garbage on egit's gerrit (in case it works for me)?

Anyway, logging is obviously a good idea, but is there some logging mechanism at jgit's level already?

This analysis was brought to you with without Shawn's carrier pigeon logging technique ;)

Marek


Back to the top