threads / discuss / 53213

configure remote/local as mine/theirs

Subject: configure remote/local as mine/theirs

## tl;dr

4 messages between Apr 11, 2020 and Apr 13, 2020.

replies: 3people: 3as markdown or json

rupert THURNER· Apr 11, 2020, 12:51 UTC · lore
hi,

the git documentation is so clear withcalling changes "mine" or "theirs". when configuring a mergetool e.g. kdiff3, and doing a rebase, these names are not used. instead it is "local", which is theirs in the rebase case, and remote, which is mine. not that this is rocket science, and i understand the technical reason why the names are like this. but anyway i get a nod in my brain about it sometimes. can i somehow configure git so it would use "mine" and "theirs" only?

rupert
Johannes Sixt· Apr 11, 2020, 21:40 UTC · re: rupert THURNER · lore

Re: configure remote/local as mine/theirs

Am 11.04.20 um 14:51 schrieb rupert THURNER:
Show 8 quoted lines
> the git documentation is so clear withcalling changes "mine" or
> "theirs". when configuring a mergetool e.g. kdiff3, and doing a
> rebase, these names are not used. instead it is "local", which
> is theirs in the rebase case, and remote, which is mine. not
> that this is rocket science, and i understand the technical
> reason why the names are like this. but anyway i get a nod in
> my brain about it sometimes. can i somehow configure git so it
> would use "mine" and "theirs" only?

The words "mine" (actually "ours") and "theirs" have a very precise meaning in Git. If you were to use these meanings during a rebase, you would not like the result: it would call "ours" what you intend to call "theirs", and vice versa.

Consider this history:
--a--b--c--d   <-- upstream ("theirs" from your point of view)
   \
    x--y--z    <-- branch to rebase ("mine/ours" from your POV)

During a rebase, Git is "positioned" on the history following commit d, i.e. on "their" branch. Then it cherry-picks commits x, y, and z. In that situation, the change that you consider "theirs" is actually "ours" from Git's point of view, and your own change (those introduced by x, y, and z) are "theirs" from Git's point of view.

I suggest you live with "local" and "remote" for a bit less confusion.
-- Hannes
Philip Oakley· Apr 12, 2020, 10:12 UTC · re: Johannes Sixt · lore

Re: configure remote/local as mine/theirs

Hi Robert, Johannes
On 11/04/2020 22:40, Johannes Sixt wrote:
Show 28 quoted lines
> Am 11.04.20 um 14:51 schrieb rupert THURNER:
>> the git documentation is so clear withcalling changes "mine" or
>> "theirs". when configuring a mergetool e.g. kdiff3, and doing a
>> rebase, these names are not used. instead it is "local", which
>> is theirs in the rebase case, and remote, which is mine. not
>> that this is rocket science, and i understand the technical
>> reason why the names are like this. but anyway i get a nod in
>> my brain about it sometimes. can i somehow configure git so it
>> would use "mine" and "theirs" only?
> The words "mine" (actually "ours") and "theirs" have a very precise
> meaning in Git. If you were to use these meanings during a rebase, you
> would not like the result: it would call "ours" what you intend to call
> "theirs", and vice versa.
>
> Consider this history:
>
>
> --a--b--c--d   <-- upstream ("theirs" from your point of view)
>    \
>     x--y--z    <-- branch to rebase ("mine/ours" from your POV)
>
> During a rebase, Git is "positioned" on the history following commit d,
> i.e. on "their" branch. Then it cherry-picks commits x, y, and z. In
> that situation, the change that you consider "theirs" is actually "ours"
> from Git's point of view, and your own change (those introduced by x, y,
> and z) are "theirs" from Git's point of view.
>
> I suggest you live with "local" and "remote" for a bit less confusion.
Robert,
given the way Git is using it's terminology, would you have any
suggestions as to how the man page(s) could now be _clarified_ so as to
avoid these potential misunderstandings? Even perhaps
    "theirs", "ours", "local" and "remote" are distinct terms in Git
with different meanings as detailed in gitreference/glossary.   (or some
such - though 3/4 are not in the glossary!)

I suggest this as a way of flagging to the reader that they should 'stop and think' (which we never do if we already have the wrong mental model) and perhaps go and review the distinctions.

-- Philip

rupert THURNER· Apr 13, 2020, 10:53 UTC · re: Philip Oakley · lore

Re: configure remote/local as mine/theirs

On Sun, Apr 12, 2020 at 12:12 PM Philip Oakley <philipoakley@iee.email> wrote:
Show 21 quoted lines
> On 11/04/2020 22:40, Johannes Sixt wrote:
> > Am 11.04.20 um 14:51 schrieb rupert THURNER:
> >> my brain about it sometimes. can i somehow configure git so it
> >> would use "mine" and "theirs" only?
> > The words "mine" (actually "ours") and "theirs" have a very precise
> > meaning in Git. If you were to use these meanings during a rebase, you
> > would not like the result: it would call "ours" what you intend to call
> > "theirs", and vice versa.
> >
> > Consider this history:
> >
> >
> > --a--b--c--d   <-- upstream ("theirs" from your point of view)
> >    \
> >     x--y--z    <-- branch to rebase ("mine/ours" from your POV)
> >
> > During a rebase, Git is "positioned" on the history following commit d,
> > i.e. on "their" branch. Then it cherry-picks commits x, y, and z. In
> > that situation, the change that you consider "theirs" is actually "ours"
> > from Git's point of view, and your own change (those introduced by x, y,
> > and z) are "theirs" from Git's point of view.

thank you for the nice explanation! there would be no easy way to swap the names in the rebase case? or introduce a new one, "mine"?

Show 6 quoted lines
> given the way Git is using it's terminology, would you have any
> suggestions as to how the man page(s) could now be _clarified_ so as to
> avoid these potential misunderstandings? Even perhaps
>     "theirs", "ours", "local" and "remote" are distinct terms in Git
> with different meanings as detailed in gitreference/glossary.   (or some
> such - though 3/4 are not in the glossary!)

philip, maybe phrase it as johannes did, add it to the man pages of rebase, and mergetool? the change you consider "theirs" is actually "ours", swapped for technical reasons when rebasing.

rupert

← back to recent threads