git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Pull is Evil

From
Philip Oakley <philipoakley@iee.org>
Date
May 1, 2014, 21:16 UTC
Message-ID
<B662835E37564DC6A3029973AFDD702F@PhilipOakley>
In-Reply-To
<E699B6CE8ADD46618D52F05DB8EF6F07@PhilipOakley>
Oops..
From: "Philip Oakley" <philipoakley@iee.org>
Show 41 quoted lines
> From: "Marc Branchaud" <marcnarc@xiplink.com>
> Sent: Wednesday, April 30, 2014 8:45 PM
> [...]
>> I don't think we'll ever be able to create a One "Git Pull" To Rule 
>> Them All.
>> At best we'll end up with something with enough knobs that it could 
>> be
>> configured to work in most workflows (I think we're actually pretty 
>> close to
>> that).  But for new users that defeats the purpose.  It means that 
>> "git pull"
>> is really an advanced command, and beginners should avoid it until 
>> they
>> understand enough of git to configure it properly.
>>
>> So rather than perpetuate the myth that one command can always (or 
>> even just
>> usually) do the right thing, let's just retire the command.
>>
>> All that said, I don't object to any attempts at improving the 
>> command
>> either.  But I also don't see any kind of improvement that would lead 
>> me to
>> start using "git pull" let alone recommending it to new users.
>>
>> M.
>>
>> [1] By "significant" I mean "enough to perpetually create new mailing 
>> list
>> threads about changing 'git pull'".
>>
> [general reply to all, rather than to anyone in particular, using 
> Marc's summary]
>
> The point that there is no easy solution to an updated default pull 
> action that is right for everybody, straight out of the box, I think 
> is now fairly obvious, a summarised by Marc. I certainly avoid pull.
>
> My 'solution', if it could be called that, would be that at the point 
> of switch over, after a period of release note warning and then code 
> warning, that the plain 'git pull' would not even do the no-ff, but
s/no-ff/--ff/g that is, only 'merge' if it's a fast forward.
Show 23 quoted lines
> would simply refuse to do anything unless the user had explicitly set 
> the [new] config variable(s) to a value of _their_ choice. The message 
> could give guidance based on their old setting(s) and the new options 
> as appropriate, i.e. if they have an old definitive setting then the 
> new setting may be an obvious one.
>
> During the warning period between the release cycles, we may have a 
> two step ramp up of the warning, where the first cycle allows users 
> who have read the release notes to choose their new setting and it's 
> auto detected from there on, then in the second cycle Git detects the 
> lack of a setting and gives a warning prompt (just like the Git 2.0 
> warning), and finally the change over release makes a 'git pull' 
> without a config setting an error.
>
> I know that for some it's a phaff that appears to waste time (been 
> there, been that person), but it does allow the stragglers time to 
> pick up the hints and not be too surprised, which will include many 
> otherwise professional folks who just happen to have other priorities 
> [e.g. this message typed from a Win XP machine!].
>
> The approach does have a solid heritage, and avoids anyone (on the 
> coding side) having to decide on an initial default, when it should be 
> a user choice. Though I do agree with Filipe that the '--no-ff merge'
s/no-ff/--ff/
Show 5 quoted lines
> would probably be the least worst for the new user and likely be a 
> suitable 'if you don't know use this one' suggestion.
>
> Philip
> -- 
sorry for the finger-brain failures. 
Previous: Philip OakleyNext: Felipe Contreras
Message 59 of 73 in “A failing attempt to use Git in a centralized environment”
  1. Marat RadchenkoApr 28, 2014
  2. Junio C HamanoApr 28, 2014
  3. Pull is Evil (was: Re: A failing attempt to use Git in a centralized environment)Marc Branchaud, Apr 30, 2014
  4. Junio C HamanoApr 30, 2014
  5. Marc BranchaudApr 30, 2014
  6. Jonathan NiederApr 30, 2014
  7. Junio C HamanoApr 30, 2014
  8. Marc BranchaudApr 30, 2014
  9. Andreas KreyMay 2, 2014
  10. David KastrupMay 2, 2014
  11. Andreas KreyMay 3, 2014
  12. David KastrupMay 3, 2014
  13. Felipe ContrerasApr 30, 2014
  14. Marc BranchaudApr 30, 2014
  15. Felipe ContrerasApr 30, 2014
  16. brian m. carlsonMay 1, 2014
  17. Felipe ContrerasMay 1, 2014
  18. Junio C HamanoMay 1, 2014
  19. Felipe ContrerasMay 1, 2014
  20. W. Trevor KingMay 1, 2014
  21. W. Trevor KingMay 1, 2014
  22. Felipe ContrerasMay 1, 2014
  23. W. Trevor KingMay 2, 2014
  24. Felipe ContrerasMay 2, 2014
  25. W. Trevor KingMay 2, 2014
  26. Felipe ContrerasMay 2, 2014
  27. W. Trevor KingMay 2, 2014
  28. Felipe ContrerasMay 2, 2014
  29. W. Trevor KingMay 2, 2014
  30. David KastrupMay 2, 2014
  31. Felipe ContrerasMay 2, 2014
  32. W. Trevor KingMay 2, 2014
  33. Felipe ContrerasMay 2, 2014
  34. W. Trevor KingMay 2, 2014
  35. Felipe ContrerasMay 2, 2014
  36. pull.prompt or other way to slow/disable 'git pull' (was: Pull is Evil)W. Trevor King, May 2, 2014
  37. Felipe ContrerasMay 2, 2014
  38. W. Trevor KingMay 3, 2014
  39. Felipe ContrerasMay 3, 2014
  40. W. Trevor KingMay 4, 2014
  41. Felipe ContrerasMay 4, 2014
  42. Felipe ContrerasMay 1, 2014
  43. Marc BranchaudMay 1, 2014
  44. W. Trevor KingMay 1, 2014
  45. Marc BranchaudMay 1, 2014
  46. W. Trevor KingMay 1, 2014
  47. Marc BranchaudMay 1, 2014
  48. Felipe ContrerasMay 1, 2014
  49. Andreas KreyMay 2, 2014
  50. Felipe ContrerasMay 2, 2014
  51. Junio C HamanoMay 2, 2014
  52. Junio C HamanoMay 2, 2014
  53. brian m. carlsonMay 1, 2014
  54. Felipe ContrerasMay 1, 2014
  55. Felipe ContrerasMay 1, 2014
  56. Marc BranchaudMay 1, 2014
  57. Felipe ContrerasMay 1, 2014
  58. Philip OakleyMay 1, 2014
  59. Philip OakleyMay 1, 2014
  60. Felipe ContrerasMay 1, 2014
  61. W. Trevor KingMay 1, 2014
  62. Felipe ContrerasMay 2, 2014
  63. Felipe ContrerasApr 30, 2014
  64. Matthieu MoyApr 30, 2014
  65. Felipe ContrerasApr 30, 2014
  66. Junio C HamanoApr 30, 2014
  67. Felipe ContrerasApr 30, 2014
  68. Junio C HamanoApr 30, 2014
  69. Felipe ContrerasApr 30, 2014
  70. Stepan KasalApr 30, 2014
  71. Geert BoschApr 30, 2014
  72. John SzakmeisterMay 4, 2014
  73. Max KirillovMay 2, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.