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

What is missing from Git v2.0

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 20, 2014, 22:41 UTC
Message-ID
<CAMP44s17h4Tjg+VaMF0atLep8t-0HVp4UDr1WE2wYnEuZ07eaQ@mail.gmail.com>
Hi,

I had already given up on merging important features to Git upstream, and then one of the features I've had in git-fc (my fork) for quite some time suddenly got attention (the @{publish} branch), but everybody forgot I already did the work. So maybe there's other features in a similar situation.

= The publish tracking branch =

Git's triangular workflow support is definitely lacking, and although there are many ideas and workarounds, the simplest and most user-friendly way to fix the issues is by introducing the concept of a publish tracking branch, similar to the upstream tracking branch.

Fortunately this might actually get into v2.0.
[1][2]
= Reject non-fast-forward pulls by default =

Many new-comers end up making merges by mistake when they pull because they don't understand what is a non-fast-forward and what they should actually be doing. Most people, even Linus Torvalds, agreed that by default `git pull` should fail and guide the user, instead of silently making a merge which might not be what the user wants (even though he doesn't know it), and messing up the project's history, which affects other people.

The patches were sent, the issues were addressed, people agreed, and yet nothing happened.

[3][4]
= Use "stage" instead of "index" =

Everybody, and by everybody I literally mean everyone except Junio, have agreed that "index" is a horrible name of the high-level concept (not the actual index file) of the pace where the user drafts a commit. Different actions were proposed to move towards a saner name, and the simplest sensible one seems to be to start renaming the confusing --cached and --index options to --stage and --no-work, and also to add a new `git stage` command.

Nothing happened.
[5][6][7][8]
= Default aliases =

Every single version control tool out there has default aliases (e.g. co = checkout) except Git.

Every argument against default aliases was basically refuted, yet my patches went nowhere. And the users still expect these aliases.

[9]

[1] http://thread.gmane.org/gmane.comp.version-control.git/235981 [2] http://thread.gmane.org/gmane.comp.version-control.git/240030 [3] http://thread.gmane.org/gmane.comp.version-control.git/240030 [4] http://thread.gmane.org/gmane.comp.version-control.git/235981 [5] http://thread.gmane.org/gmane.comp.version-control.git/233295 [6] http://thread.gmane.org/gmane.comp.version-control.git/197111 [7] http://thread.gmane.org/gmane.comp.version-control.git/166675 [8] http://thread.gmane.org/gmane.comp.version-control.git/115666 [9] http://thread.gmane.org/gmane.comp.version-control.git/235145

-- 
Felipe Contreras
Next: Felipe Contreras
Message 1 of 77 in “What is missing from Git v2.0”
  1. Felipe ContrerasApr 20, 2014
  2. Felipe ContrerasApr 20, 2014
  3. Sebastian SchuberthApr 21, 2014
  4. Felipe ContrerasApr 21, 2014
  5. Sebastian SchuberthApr 21, 2014
  6. Theodore Ts'oApr 21, 2014
  7. Felipe ContrerasApr 21, 2014
  8. Sebastian SchuberthApr 22, 2014
  9. Felipe ContrerasApr 22, 2014
  10. Junio C HamanoApr 21, 2014
  11. Sebastian SchuberthApr 22, 2014
  12. Felipe ContrerasApr 22, 2014
  13. Junio C HamanoApr 22, 2014
  14. Felipe ContrerasApr 22, 2014
  15. Matthieu MoyApr 22, 2014
  16. Felipe ContrerasApr 22, 2014
  17. Junio C HamanoApr 22, 2014
  18. Theodore Ts'oApr 22, 2014
  19. Felipe ContrerasApr 22, 2014
  20. David KastrupApr 22, 2014
  21. Felipe ContrerasApr 24, 2014
  22. David KastrupApr 24, 2014
  23. Andreas KreyApr 24, 2014
  24. Felipe ContrerasApr 24, 2014
  25. David KastrupApr 24, 2014
  26. David LangApr 22, 2014
  27. Felipe ContrerasApr 24, 2014
  28. David LangApr 24, 2014
  29. Felipe ContrerasApr 24, 2014
  30. James DenholmApr 24, 2014
  31. Felipe ContrerasApr 24, 2014
  32. James DenholmApr 24, 2014
  33. Felipe ContrerasApr 24, 2014
  34. David KastrupApr 24, 2014
  35. Felipe ContrerasApr 24, 2014
  36. David KastrupApr 24, 2014
  37. Felipe ContrerasApr 24, 2014
  38. David LangApr 24, 2014
  39. Theodore Ts'oApr 24, 2014
  40. Stefan BellerApr 24, 2014
  41. tytso@mit.eduApr 24, 2014
  42. Stefan BellerApr 24, 2014
  43. Jonathan NiederApr 24, 2014
  44. Felipe ContrerasApr 24, 2014
  45. Jeff KingApr 24, 2014
  46. Felipe ContrerasApr 24, 2014
  47. Felipe ContrerasApr 24, 2014
  48. Matthieu MoyApr 25, 2014
  49. Philippe VaucherApr 25, 2014
  50. Felipe ContrerasApr 24, 2014
  51. luc.linux@mailoo.orgApr 24, 2014
  52. Javier Domingo CansinoApr 25, 2014
  53. Felipe ContrerasApr 25, 2014
  54. Philippe VaucherApr 25, 2014
  55. Felipe ContrerasApr 25, 2014
  56. Theodore Ts'oApr 25, 2014
  57. Philippe VaucherApr 25, 2014
  58. Theodore Ts'oApr 25, 2014
  59. Philippe VaucherApr 25, 2014
  60. Felipe ContrerasApr 25, 2014
  61. Felipe ContrerasApr 25, 2014
  62. Jeff KingApr 25, 2014
  63. Felipe ContrerasApr 25, 2014
  64. Jeff KingApr 25, 2014
  65. Felipe ContrerasApr 25, 2014
  66. Jeff KingApr 25, 2014
  67. Felipe ContrerasApr 25, 2014
  68. David KastrupApr 25, 2014
  69. Jonathan NiederApr 25, 2014
  70. David KastrupApr 25, 2014
  71. Jonathan NiederApr 25, 2014
  72. Junio C HamanoApr 22, 2014
  73. Felipe ContrerasApr 24, 2014
  74. brian m. carlsonApr 22, 2014
  75. Felipe ContrerasApr 22, 2014
  76. David AguilarApr 22, 2014
  77. Felipe ContrerasApr 22, 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.