]> git.ipfire.org Git - thirdparty/git.git/commit - t/t7512-status-help.sh
rebase: rename the two primary rebase backends
authorElijah Newren <newren@gmail.com>
Sat, 15 Feb 2020 21:36:41 +0000 (21:36 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Feb 2020 23:40:42 +0000 (15:40 -0800)
commit10cdb9f38adaa16aad64403bc931405564523985
treeecce29c2fb8ca24862f684b6252c4d22b1b41945
parent2ac0d6273fa6618e1a8783e07e2363b3abba1f2a
rebase: rename the two primary rebase backends

Two related changes, with separate rationale for each:

Rename the 'interactive' backend to 'merge' because:
  * 'interactive' as a name caused confusion; this backend has been used
    for many kinds of non-interactive rebases, and will probably be used
    in the future for more non-interactive rebases than interactive ones
    given that we are making it the default.
  * 'interactive' is not the underlying strategy; merging is.
  * the directory where state is stored is not called
    .git/rebase-interactive but .git/rebase-merge.

Rename the 'am' backend to 'apply' because:
  * Few users are familiar with git-am as a reference point.
  * Related to the above, the name 'am' makes sentences in the
    documentation harder for users to read and comprehend (they may read
    it as the verb from "I am"); avoiding this difficult places a large
    burden on anyone writing documentation about this backend to be very
    careful with quoting and sentence structure and often forces
    annoying redundancy to try to avoid such problems.
  * Users stumble over pronunciation ("am" as in "I am a person not a
    backend" or "am" as in "the first and thirteenth letters in the
    alphabet in order are "A-M"); this may drive confusion when one user
    tries to explain to another what they are doing.
  * While "am" is the tool driving this backend, the tool driving git-am
    is git-apply, and since we are driving towards lower-level tools
    for the naming of the merge backend we may as well do so here too.
  * The directory where state is stored has never been called
    .git/rebase-am, it was always called .git/rebase-apply.

For all the reasons listed above:
  * Modify the documentation to refer to the backends with the new names
  * Provide a brief note in the documentation connecting the new names
    to the old names in case users run across the old names anywhere
    (e.g. in old release notes or older versions of the documentation)
  * Change the (new) --am command line flag to --apply
  * Rename some enums, variables, and functions to reinforce the new
    backend names for us as well.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
18 files changed:
Documentation/config/rebase.txt
Documentation/git-rebase.txt
builtin/rebase.c
t/t3400-rebase.sh
t/t3401-rebase-and-am-rename.sh
t/t3404-rebase-interactive.sh
t/t3406-rebase-message.sh
t/t3407-rebase-abort.sh
t/t3420-rebase-autostash.sh
t/t3421-rebase-topology-linear.sh
t/t3424-rebase-empty.sh
t/t3425-rebase-topology-merges.sh
t/t3432-rebase-fast-forward.sh
t/t5407-post-rewrite-hook.sh
t/t5520-pull.sh
t/t6047-diff3-conflict-markers.sh
t/t7512-status-help.sh
t/t9903-bash-prompt.sh