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

Re: PATCH: improve git switch documentation

From
MMartin <git@mfriebe.de>
Date
Jul 11, 2021, 13:39 UTC
Message-ID
<33af677c-8fec-5b49-0e00-878918c4ea1d@mfriebe.de>
In-Reply-To
<871r85f39n.fsf@osv.gnss.ru>
On 11/07/2021 14:23, Sergey Organov wrote:
Show 11 quoted lines
> Martin <git@mfriebe.de> writes:
>> Because humans are more about the "things".
>> The way we interact is more ofter derived from the object, than the
>> object being purposefully made for an interaction?
> 
> I don't see it, at least not in the usual human conversations. When one
> means an action to be performed, they name the action and then the object:
> 
>    "Play football", "Go home", "Set your thoughts straight", "Wash your hands"
> 
> No?
1) the order does not necessarily indicate the significance.
2) That is English for you. Afaik there are languages which have the 
verb at the end.
Also, in German it is perfectly fine (though not very common) to use 
"object verb subject". Fussball spielen wir.
Even in English you have: Woe is me. Yes "woe" is the Subject.
> Anyway, it's more the consistency that matters, not particular
> convention. Git problem is that is has no convention at all. "Just do
> what feels right today" seems to be the motto.
Well human languages are not as rigid as computer languages.
Show 9 quoted lines
> 
> Finally, the problem for this particular discussion is that if we decide
> that it's rather:
> 
>    git <object> <command>
> 
> that is the way to go, that I'm pretty fine with as well, we should
> simply *obsolete "git switch" right away*, rather than spending time
> improving its now almost useless documentation.
Actually then we would end up with
    git branch switch
    git tag switch   // detach
    git commit switch   // detach
Well it could be
    git worktree switch
(ignoring the effect on the index / and bringing "worktree" into a 
single worktree setup)

The problem is, that IMHO forcing either verb or noun, ends up with grouping commands in ways that create unnecessary dividers between related actions. (Continued, next paragraph)

Show 7 quoted lines
> 
>>>   From that POV, for the commands you mentioned, "git bisect" is probably
>>> fine, whereas "git worktree", and "git remote" should better be split to
>>> operations on them, e.g.:
>>>      git new remote
>>>      git new worktree
>>>
This is what I mean with dividers.
There may be some relation between "new branch", "new tag"

But I can see none between "new branch" and "new remote" and "new worktree". None at all. Yet I can see relations between different things you can do with a worktree.

I also think that, switching to a commit or branch are to closely related, and should not be divided. (There were even suggestions that switching to a commit, is an unnamed branch)

As I said, I have not read any research paper on that topic. But to me, it severely disrupts the intuitive aspect.

Show 11 quoted lines
>>
>>> Once that is regularized, we may as well consider allowing for inverse
>>> order of the first 2 arguments, by making
>>>     git new remote
>>>     git remote new
>>> the synonyms.
>>
>> Having even more ways to do one and the same thing....
> 
> Python was aiming to have one obvious way of doing every single thing...
> Did it succeed in that, I wonder? Maybe this aim is only good in theory?

We are way away from having "one single way". But aiming for the extreme opposite may not be any smarter.

While there is nothing wrong with going our own way in the end, maybe we should look around before? How do other vcs do it?

svn has at least status and log, which I would consider nouns, the way they are used. And it has verbs too.

hg as "branches", "files" which are nouns. And "log". And it has verbs too.

So there seems to be a pattern to using "mixed" verbs and nouns.
Previous: Sergey OrganovNext: Sergey Organov
Message 64 of 103 in “PATCH: improve git switch documentation”
  1. MartinJun 29, 2021
  2. Junio C HamanoJun 29, 2021
  3. MartinJun 29, 2021
  4. Junio C HamanoJun 29, 2021
  5. MartinJun 30, 2021
  6. Junio C HamanoJun 30, 2021
  7. MartinJul 1, 2021
  8. Sergey OrganovJul 1, 2021
  9. Felipe ContrerasJul 7, 2021
  10. Sergey OrganovJul 7, 2021
  11. What actually is a branch?Felipe Contreras, Jul 7, 2021
  12. Sergey OrganovJul 7, 2021
  13. MartinJul 7, 2021
  14. Felipe ContrerasJul 8, 2021
  15. MartinJul 8, 2021
  16. Felipe ContrerasJul 8, 2021
  17. MartinJul 8, 2021
  18. Felipe ContrerasJul 8, 2021
  19. MartinJul 8, 2021
  20. Felipe ContrerasJul 9, 2021
  21. MartinJul 9, 2021
  22. Felipe ContrerasJul 9, 2021
  23. switch requires --detach [[Re: What actually is a branch]]Martin, Jul 9, 2021
  24. Felipe ContrerasJul 9, 2021
  25. Randall S. BeckerJul 9, 2021
  26. Felipe ContrerasJul 9, 2021
  27. MartinJul 9, 2021
  28. Sergey OrganovJul 10, 2021
  29. Felipe ContrerasJul 10, 2021
  30. MartinJul 9, 2021
  31. Felipe ContrerasJul 9, 2021
  32. MartinJul 9, 2021
  33. Felipe ContrerasJul 9, 2021
  34. MartinJul 9, 2021
  35. Felipe ContrerasJul 10, 2021
  36. MartinJul 10, 2021
  37. Felipe ContrerasJul 10, 2021
  38. Naming the --forec option [[Re: PATCH: improve git switch documentation]]Martin, Jul 10, 2021
  39. Felipe ContrerasJul 10, 2021
  40. MartinJul 11, 2021
  41. Felipe ContrerasJul 12, 2021
  42. MartinJul 10, 2021
  43. Felipe ContrerasJul 10, 2021
  44. MartinJul 11, 2021
  45. Sergey OrganovJul 11, 2021
  46. Felipe ContrerasJul 12, 2021
  47. MartinJul 12, 2021
  48. Felipe ContrerasJul 12, 2021
  49. MartinJul 12, 2021
  50. Felipe ContrerasJul 12, 2021
  51. Sergey OrganovJul 11, 2021
  52. MartinJul 11, 2021
  53. Sergey OrganovJul 11, 2021
  54. MartinJul 11, 2021
  55. Felipe ContrerasJul 12, 2021
  56. Sergey OrganovJul 10, 2021
  57. Bagas SanjayaJul 10, 2021
  58. MartinJul 10, 2021
  59. Sergey OrganovJul 10, 2021
  60. Felipe ContrerasJul 10, 2021
  61. Sergey OrganovJul 11, 2021
  62. MartinJul 11, 2021
  63. Sergey OrganovJul 11, 2021
  64. MartinJul 11, 2021
  65. Sergey OrganovJul 11, 2021
  66. Sergey OrganovJul 11, 2021
  67. Kerry, RichardJul 12, 2021
  68. Sergey OrganovJul 12, 2021
  69. Felipe ContrerasJul 12, 2021
  70. Felipe ContrerasJul 12, 2021
  71. MartinJul 12, 2021
  72. Felipe ContrerasJul 12, 2021
  73. Sergey OrganovJul 12, 2021
  74. Felipe ContrerasJul 12, 2021
  75. MartinJul 13, 2021
  76. Felipe ContrerasJul 10, 2021
  77. Felipe ContrerasJul 10, 2021
  78. Sergey OrganovJul 11, 2021
  79. Felipe ContrerasJul 12, 2021
  80. Sergey OrganovJul 13, 2021
  81. Felipe ContrerasJul 13, 2021
  82. Sergey OrganovJul 14, 2021
  83. Felipe ContrerasJul 14, 2021
  84. Sergey OrganovJul 14, 2021
  85. Felipe ContrerasJul 8, 2021
  86. Sergey OrganovJul 8, 2021
  87. Felipe ContrerasJul 8, 2021
  88. Junio C HamanoJul 1, 2021
  89. MartinJul 1, 2021
  90. Sergey OrganovJul 1, 2021
  91. Felipe ContrerasJul 7, 2021
  92. Felipe ContrerasJul 7, 2021
  93. Felipe ContrerasJul 7, 2021
  94. Matt RogersJul 1, 2021
  95. MartinJul 13, 2021
  96. Felipe ContrerasJul 13, 2021
  97. MartinJul 16, 2021
  98. MartinJul 16, 2021
  99. Felipe ContrerasJul 16, 2021
  100. MartinJul 17, 2021
  101. MartinJul 17, 2021
  102. MartinJul 17, 2021
  103. Felipe ContrerasJul 19, 2021

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.