Thread (13 messages) flat view 13 messages, 7 authors, 2016-06-16

RE: Use "git pull --ff-only" by default?

From: Peter Kjellerstedt <hidden>
Date: 2016-06-15 22:48:51

-----Original Message-----
From: Michael J Gruber [mailto:git@drmicha.warpmail.net]
Sent: den 21 maj 2010 17:18
To: Peter Kjellerstedt
Cc: git@vger.kernel.org
Subject: Re: Use "git pull --ff-only" by default?

Peter Kjellerstedt venit, vidit, dixit 21.05.2010 16:47:
quoted
quoted
-----Original Message-----
From: git-owner@vger.kernel.org [mailto:git-owner@vger.kernel.org]
On Behalf Of Michael J Gruber
Sent: den 21 maj 2010 15:49
To: Peter Kjellerstedt
Cc: git@vger.kernel.org
Subject: Re: Use "git pull --ff-only" by default?

Peter Kjellerstedt venit, vidit, dixit 21.05.2010 14:59:
quoted
Is there some way to make "git pull --ff-only" be the default?
I could not find anything about this in "git config --help" and
also the lack of a --no-ff-only option for git pull (it exists
for git merge) indicates that there is no such support.

I did considered the branch.<name>.mergeoptions configuration
option, but it does not seem appropriate as it only applies to
a specific branch, whereas I want it to apply to all branches
by default.

Yes, I know I could do "git config alias.pl 'pull --ff-only'",
but since my intensions are for this to be the default for all
developers in our organization (most of whom have no git knowledge
at all yet) to avoid unnecessary branches caused by the developers
hacking directly on master rather than a topic branch, I would
very much prefer a configuration option rather than an alias (as
I am unlikely to get the developers to remember to do "git pl"
instead of "git pull").
Problem is they have to remember to set your new config, or, if you
are able to set all developers system config, they have to refrain 
from overriding it.
They would get it by default from our setup scripts. If they then
choose to turn it off, so be it.
If you're relying on setup scripts, you can

git config alias.pull 'pull --ff-only'
I forgot to mention that I had tried that. It does not work as git 
explicitly does not allow one to use a git command name as an alias 
name. And I think this is a good policy since it prevents people 
from aliasing plumbing commands to do weird things. However, I would
like to see some way to affect the defaults of porcelain commands.
quoted
quoted
quoted
My idea was to add something like merge.options and pull.options
as configuration options (I want to be able to specify the options
separately for pull and merge). However, I wanted throw this out
here first before starting to hack away at the code, in case I
missed something obvious, or if others find this to be an
incredibly stupid idea...
In general, you can't control reliably what people do in their
repos.
I sure wish I had more control over it, but that is a separate
discussion. ;)
quoted
But you can control what kind of pushes into a central repo you
allow. That is the usual approach: Let them mess up their repos, 
they'll learn their lesson when they can't push ;)
Can you differentiate between an automatic merge which happened
because the user had made some local changes before pulling (which
I do not want to appear in the central repo), and a real merge of
a topic branch (which I do want)?
I can't, and neither can Git. Who can?
Exactly. Which is why I would like for --ff-only to be the default
as I think that is more sane in an environment where most of the
users are git newbies.
I think this boils down to having a few people who are allowed to push
merges because they can make these decisions. Even if people don't
merge "origin" but their own branches they can create a mess, so you 
cannot differentiate based on that.
In a larger organization this does not work. Most of our developers
are responsible for at least one subsystem and expected to be the one 
responsible for its master branch. We cannot rely on a few git veterans 
to be the only ones with merging rights; it would never be accepted by 
the management...
Michael
//Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help