Browse Source

rebase: add rebase.updateRefs config option

The previous change added the --update-refs command-line option.  For
users who always want this mode, create the rebase.updateRefs config
option which behaves the same way as rebase.autoSquash does with the
--autosquash option.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Derrick Stolee 3 years ago committed by Junio C Hamano
parent
commit
3113fedaeb
  1. 3
      Documentation/config/rebase.txt
  2. 3
      Documentation/git-rebase.txt
  3. 5
      builtin/rebase.c
  4. 14
      t/t3404-rebase-interactive.sh

3
Documentation/config/rebase.txt

@ -21,6 +21,9 @@ rebase.autoStash:: @@ -21,6 +21,9 @@ rebase.autoStash::
`--autostash` options of linkgit:git-rebase[1].
Defaults to false.

rebase.updateRefs::
If set to true enable `--update-refs` option by default.

rebase.missingCommitsCheck::
If set to "warn", git rebase -i will print a warning if some
commits are removed (e.g. a line was deleted), however the

3
Documentation/git-rebase.txt

@ -614,6 +614,9 @@ start would be overridden by the presence of @@ -614,6 +614,9 @@ start would be overridden by the presence of
Automatically force-update any branches that point to commits that
are being rebased. Any branches that are checked out in a worktree
are not updated in this way.
+
If the configuration variable `rebase.updateRefs` is set, then this option
can be used to override and disable this setting.

INCOMPATIBLE OPTIONS
--------------------

5
builtin/rebase.c

@ -802,6 +802,11 @@ static int rebase_config(const char *var, const char *value, void *data) @@ -802,6 +802,11 @@ static int rebase_config(const char *var, const char *value, void *data)
return 0;
}

if (!strcmp(var, "rebase.updaterefs")) {
opts->update_refs = git_config_bool(var, value);
return 0;
}

if (!strcmp(var, "rebase.reschedulefailedexec")) {
opts->reschedule_failed_exec = git_config_bool(var, value);
return 0;

14
t/t3404-rebase-interactive.sh

@ -1772,6 +1772,12 @@ test_expect_success '--update-refs adds label and update-ref commands' ' @@ -1772,6 +1772,12 @@ test_expect_success '--update-refs adds label and update-ref commands' '
EOF

test_must_fail git rebase -i --autosquash --update-refs primary >todo &&
test_cmp expect todo &&

test_must_fail git -c rebase.autosquash=true \
-c rebase.updaterefs=true \
rebase -i primary >todo &&

test_cmp expect todo
)
'
@ -1813,6 +1819,14 @@ test_expect_success '--update-refs adds commands with --rebase-merges' ' @@ -1813,6 +1819,14 @@ test_expect_success '--update-refs adds commands with --rebase-merges' '
--rebase-merges=rebase-cousins \
--update-refs primary >todo &&

test_cmp expect todo &&

test_must_fail git -c rebase.autosquash=true \
-c rebase.updaterefs=true \
rebase -i \
--rebase-merges=rebase-cousins \
primary >todo &&

test_cmp expect todo
)
'

Loading…
Cancel
Save