"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: got reintegrate
To:
Evan Silberman <evan@jklol.net>
Cc:
gameoftrees@openbsd.org
Date:
Sat, 12 Oct 2019 17:51:40 +0200

Download raw body.

Thread
On Sat, Oct 12, 2019 at 08:22:31AM -0700, Evan Silberman wrote:
> 
> 
> > On Oct 12, 2019, at 8:02 AM, Stefan Sperling <stsp@stsp.name> wrote:
> > 
> > The command name is inspired by Subversion which has
> > an "svn merge --reintegrate" command.
> 
> Having only used subversion in fairly elementary ways, now years ago, my
> first thought on seeing the name “reintegrate” was “why not just
> ‘integrate’?” I suppose “reintegrate” was meant to reflect that the branch
> had been “dis-integrated” from mainline and was now coming back.

I used "reintegrate" because it is a term users coming from SVN will
immediately recognize when they see it.

> I consider Got a great opportunity to carefully and crisply name commands. So
> far so good. I think “integrate”’s familiar meaning would be a good enough
> mnemonic here and calling the command “reintegrate” provides very little
> extra information.

I don't want to make up new command names.
There's already enough disparate use of terminology among version control
systems, to the point where switching between tools is confusing users.
Git in particular is responsible for adding an astonishing amount of new
and twisted vernacular to the ecosystem. I prefer not to add to that mess.
So I want to borrow existing terminology wherever possible.  

If you want to suggest an alternative, please try to pick a term already
in use by CVS, Git, Mercurial, SVN, or Fossil.

The most general term for this operation would be a "merge", but I want to
reserve 'got merge' for a command which would create commits with 2 parents.

Hg additionally has "graft" but it uses this term to describe cherry-picking,
which is a different operation already mapped to 'got cherrypick'.

> An orthogonal name suggestion: “got adopt branch”, as in “adopt the commits
> and present state of the target branch as our own”. “Adopt” may also help to
> suggest the requirement that the target branch be descended from the present
> branch. “Integrate” or “reintegrate” are pretty close to “merge” in common
> meaning and don’t do much to suggest that they won’t work on a parallel
> history.

That's an entirely new term, which is not even used when people talk
about version control systems in an abstract fashion, so I would advise
against using it.

$ hg help adopt
abort: no such help topic: adopt
(try 'hg help --keyword adopt')
$ git help adopt
man: No entry for gitadopt in the manual.
$ svn help adopt
"adopt": unknown command.

:-)