Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH 2/2] fetch: handle overlaping refspecs on --prune

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:00:04

Junio C Hamano [off-list ref] writes:
Carlos Martín Nieto [off-list ref] writes:
quoted
From: Carlos Martín Nieto <redacted>

We need to consider that a remote-tracking branch may match more than
one rhs of a fetch refspec.
Hmph, do we *need* to, really?

Do you mean fetching one ref on the remote side and storing that in
multiple remote-tracking refs on our side?  What benefit does such
an arrangement give the user?  When we "git fetch $there $that_ref"
to obtain that single ref, do we update both remote-tracking refs?
When the user asks "git log $that_ref@{upstream}", which one of two
or more remote-tracking refs should we consult?  Should we report
an error if these remote-tracking refs that are supposed to track
the same remote ref not all match?  Does "git push $there $that_ref"
to update that remote ref update all of these remote-tracking refs
on our side?  Should it?

My knee-jerk reaction is that it may not be worth supporting such an
arrangement as broken (we may even want to diagnose it as an error),
but assuming we do need to, the approach to solve it, i.e. this...
quoted
In such a case, it is not enough to stop at
the first match but look at all of the matches in order to determine
whether a head is stale.
... sounds sensible.
Having said that, if we need to support such a configuration, I
would not be surprised if there are many other corner case bugs
coming from the same root cause---query_refspecs() does not allow us
to see more than one destination.  It would be prudent to squash
them before we officially say we do support such a configuration.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help