Skip to content

Commit 3113fed

Browse files
derrickstoleegitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b3b1a21 commit 3113fed

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

Documentation/config/rebase.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ rebase.autoStash::
2121
`--autostash` options of linkgit:git-rebase[1].
2222
Defaults to false.
2323

24+
rebase.updateRefs::
25+
If set to true enable `--update-refs` option by default.
26+
2427
rebase.missingCommitsCheck::
2528
If set to "warn", git rebase -i will print a warning if some
2629
commits are removed (e.g. a line was deleted), however the

Documentation/git-rebase.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,9 @@ start would be overridden by the presence of
614614
Automatically force-update any branches that point to commits that
615615
are being rebased. Any branches that are checked out in a worktree
616616
are not updated in this way.
617+
+
618+
If the configuration variable `rebase.updateRefs` is set, then this option
619+
can be used to override and disable this setting.
617620

618621
INCOMPATIBLE OPTIONS
619622
--------------------

builtin/rebase.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,11 @@ static int rebase_config(const char *var, const char *value, void *data)
802802
return 0;
803803
}
804804

805+
if (!strcmp(var, "rebase.updaterefs")) {
806+
opts->update_refs = git_config_bool(var, value);
807+
return 0;
808+
}
809+
805810
if (!strcmp(var, "rebase.reschedulefailedexec")) {
806811
opts->reschedule_failed_exec = git_config_bool(var, value);
807812
return 0;

t/t3404-rebase-interactive.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1772,6 +1772,12 @@ test_expect_success '--update-refs adds label and update-ref commands' '
17721772
EOF
17731773
17741774
test_must_fail git rebase -i --autosquash --update-refs primary >todo &&
1775+
test_cmp expect todo &&
1776+
1777+
test_must_fail git -c rebase.autosquash=true \
1778+
-c rebase.updaterefs=true \
1779+
rebase -i primary >todo &&
1780+
17751781
test_cmp expect todo
17761782
)
17771783
'
@@ -1813,6 +1819,14 @@ test_expect_success '--update-refs adds commands with --rebase-merges' '
18131819
--rebase-merges=rebase-cousins \
18141820
--update-refs primary >todo &&
18151821
1822+
test_cmp expect todo &&
1823+
1824+
test_must_fail git -c rebase.autosquash=true \
1825+
-c rebase.updaterefs=true \
1826+
rebase -i \
1827+
--rebase-merges=rebase-cousins \
1828+
primary >todo &&
1829+
18161830
test_cmp expect todo
18171831
)
18181832
'

0 commit comments

Comments
 (0)