Junio C Hamano wrote:
> I am not sure what you mean by artificial.
By artificial, I mean that the precondition is absolutely unnecessary
for the code following it to work. The precondition was introduced in
a separate commit, specifically denying one usecase because the author
(you) thought that made sense.
> If you have push.default set upstream or simple, then a push run
> while on the branch 'foo' will figure out what happens when you do a
> fetch by looking at 'branch.foo.merge' to find the branch we are set
> to integrate from 'branch.foo.remote' remote. The simple further
> says that branch name must be the same as 'foo'.
I understand this perfectly well, as evidenced by the tests I've
written out in 4/4.
> And that is what setup_push_UPSTREAM() is designed to do. Rejecting
> a call that breaks the precondition is perfectly the right thing to
> do: if you set to push to "upstream" and if you are trying to push
> to a different remote, for example.
>
> The triangle topic changed the precondition without updating the
> logic to check it, which was the bug, not the original check.
Did I claim otherwise? :)
The topic is about fixing a bug introduced by rr/triangle.
> I actually am OK with 'upstream' that rejects triangular, while
> making 'simple' do something different [*1*].
Okay, so you haven't outlined a solution either. Like I said in the
cover-letter, I've spent hours breaking my head and can't figure out a
better solution. The bigger problem is that upstream/ simple were
designed with only central workflows in mind. How do we deal with it
now?
Yes, upstream/ simple work only when @{u} resolves, and I haven't
changed this (because we don't have a well-defined meaning for what
branch.<name>.merge without a branch.<name>.remote means). My
argument is very simple: no push.default mode should not dictate the
push destination; only the push refspec. What makes sense to the user
is an upstream/ simple that works as expected with pushdefault: do the
tests I've outlined in 4/4 not make sense? *scratches head*
I don't understand why upstream/ simple should _not_ push to a
different destination from the one being merged from. I'll repeat:
push source/ destination is orthogonal to push refspec, and
push.default modes dictate the refspec.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html