diff --git a/git-review b/git-review index 29c975d..8dcb58a 100755 --- a/git-review +++ b/git-review @@ -917,6 +917,11 @@ def finish_branch(target_branch): print("Deleted branch '%s'" % local_branch) +def convert_bool(one_or_zero): + "Return a bool on a one or zero string." + return one_or_zero in ["1", "true", "True"] + + def print_exit_message(status, needs_update): if needs_update: @@ -939,6 +944,10 @@ def main(): config = get_config(os.path.join(top_dir, ".gitreview")) hook_file = os.path.join(git_dir, "hooks", "commit-msg") + defaultrebase = convert_bool( + git_config_get_value("gitreview", "rebase", + default=str(config['defaultrebase']))) + usage = "git review [OPTIONS] ... [BRANCH]" import argparse @@ -1037,7 +1046,7 @@ def main(): parser.add_argument("branch", nargs="?", default=config['defaultbranch']) parser.set_defaults(dry=False, draft=False, - rebase=config['defaultrebase'], + rebase=defaultrebase, verbose=False, update=False, setup=False, diff --git a/git-review.1 b/git-review.1 index a369779..a46d0e7 100644 --- a/git-review.1 +++ b/git-review.1 @@ -179,6 +179,27 @@ file: [gitreview] username=\fImygerrituser\fP .Ed +.It gireview.rebase +This setting determines whether changes submitted will +be rebased to the newest state of the branch. +.Pp +A value of 'true' or 'false' should be specified. +.Bl -tag +.It false +Do not rebase changes on submit - equivalent to setting +.Fl R +when submitting changes. +.It true +Do rebase changes on submit. This is the default value unless +overridden by +.Pa .gitreview +file. +.El +.Pp +This setting takes precedence over repository-specific configuration +in the +.Pa .gitreview +file. .El .Sh FILES To use