Ralf Thielow <ralf.thie...@gmail.com> writes:

> There are several ways to configure Git to preserve merges.
> There is "pull.rebase=preserve" for all branches and
> "branch.<name>.rebase=preserve" for individual branches.
> However, there is no configuration option to preserve merges
> for all branches when running git-rebase.

How should this interact with pull.rebase?  Specifically, what
should happen with these settings?

        [rebase] preserve = true
        [pull] rebase = true

Historically, the variable was a way to tell 'pull' to use 'rebase'
to integrate (if true) or use 'merge' to integrate (if false), and
then the third value that is clearly not 'false' was added to say
"How should the underlying 'rebase' integrate the local and the
remote histories?".

In that light, one can argue 'git pull' with the above two should
run 'rebase --preserve'.  In other words, rebase.preserve tells us
"When 'rebase' is told to run, it should do the 'preserving'

But then when somebody sets pull.rebase to true, expecting that
'true' does not just mean "Yup, please use rebase, I do not like
merges", but means "Use rebase without preserve", it would be hard
to debug if the behaviour of 'git pull' is affected by a separate
variable rebase.preserve that may be defined in a far-away place in
the configuration file.

I dunno.  This kind of complications is one reason why I wouldn't
encourage adding these configurations to affect the behaviours of

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to