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

Re: [PATCH] Move all dashed form git commands to libexecdir

From
Wincent Colaiuta <win@wincent.com>
Date
Dec 2, 2007, 15:02 UTC
Message-ID
<FFEBE8BB-E764-4DD0-A7DC-8CC01659D9BC@wincent.com>
In-Reply-To
<Pine.LNX.4.64.0711302306580.27959@racer.site>
El 1/12/2007, a las 0:10, Johannes Schindelin escribió:
> To me, it is mighty annoying anybody brings up that "144 commands"
> argument Linus was referring to, and if there is _any_ way to shut up
> those bikeshedders, I am all for it.

This is not a bikeshed argument and it is not an "idiotic complaint" (to use Linus' phrase). It is a legitimate concern and a *real* UI problem.

You and Linus don't care that there are 140+ Git commands and I imagine that you know exactly what each of them does.

I don't really care either because although I don't know what every single command does, I know what the 20 or 30 commands I personally need for my own workflow do.

The problem is for *newcomers* to Git who sit down for the first time and ask themselves, "Now, how do I...?". This is not an idiotic complaint but a legitimate concern about a real UI problem.

Honestly, Johannes, do you think the following is a good UI?

$ git Display all 148 possibilities? (y or n) git* git-cvsimport* git-local- fetch* git-peek-remote* git-show-index* git-add* git-cvsserver* git- log* git-prune* git-show-ref* git-add--interactive* git-daemon* git-lost- found* git-prune-packed* git-ssh-fetch* git-am* git-describe* git-ls- files* git-pull* git-ssh-pull* git-annotate* git-diff* git-ls- remote* git-push* git-ssh-push* git-apply* git-diff-files* git-ls- tree* git-quiltimport* git-ssh-upload* git-applymbox git-diff-index* git- mailinfo* git-read-tree* git-stash* git-applypatch git-diff-tree* git- mailsplit* git-rebase* git-status* git-archimport* git-fast-import* git- merge* git-rebase--interactive* git-stripspace* git-archive* git-fetch* git-merge- base* git-receive-pack* git-submodule* git-bisect* git-fetch--tool* git-merge- file* git-reflog* git-svn* git-blame* git-fetch-pack* git-merge- index* git-relink* git-svnimport git-branch* git-filter-branch* git-merge- octopus* git-remote* git-symbolic-ref* git-bundle* git-fmt-merge-msg* git-merge-one- file* git-repack* git-tag* git-cat-file* git-for-each-ref* git-merge- ours* git-repo-config* git-tar-tree* git-check-attr* git-format-patch* git-merge- recursive* git-request-pull* git-unpack-file* git-check-ref-format* git-fsck* git-merge- resolve* git-rerere* git-unpack-objects* git-checkout* git-fsck-objects* git-merge- stupid* git-reset* git-update-index* git-checkout-index* git-gc* git-merge- subtree* git-rev-list* git-update-ref* git-cherry* git-get-tar-commit-id* git-merge- tree* git-rev-parse* git-update-server-info* git-cherry-pick* git-grep* git- mergetool* git-revert* git-upload-archive* git-citool git-gui/ git- mktag* git-rm* git-upload-pack* git-clean* git-hash-object* git- mktree* git-runstatus* git-var* git-clone* git-http-fetch* git- mv* git-send-email* git-verify-pack* git-commit* git-http-push* git-name- rev* git-send-pack* git-verify-tag* git-commit-tree* git-imap-send* git-pack- objects* git-sh-setup* git-whatchanged* git-config* git-index-pack* git-pack- redundant* git-shell* git-write-tree* git-convert-objects git-init* git-pack- refs* git-shortlog* gitk git-count-objects* git-init-db* git-parse- remote* git-show* git-cvsexportcommit* git-instaweb* git-patch- id* git-show-branch*

Would you argue that this screenshot shows a sane UI?
<http://wincent.com/tmp/git-ui.png>
Note: I am not complaining about the *number* of commands; I myself  
find them highly useful for scripting. I am saying that the  
*visibility* of those commands is the problem. That's why I support  
the efforts to move most of this stuff out of the default PATH. We're  
not talking about getting rid of it, just about putting it somewhere  
more appropriate in order to correct what is basically a *hideous*  
user interface for the beginner.

Cheers, Wincent

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 56 of 92 in “Move all dashed form git commands to libexecdir”
  1. Move all dashed form git commands to libexecdirNguyễn Thái Ngọc Duy, Nov 27, 2007
  2. Johannes SchindelinNov 27, 2007
  3. Nicolas PitreNov 27, 2007
  4. Move all dashed form git commands to libexecdirNguyễn Thái Ngoc Duy, Nov 27, 2007
  5. Johannes SchindelinNov 27, 2007
  6. Jan HudecNov 28, 2007
  7. Junio C HamanoNov 28, 2007
  8. Jan HudecNov 28, 2007
  9. Nguyen Thai Ngoc DuyNov 28, 2007
  10. Junio C HamanoNov 28, 2007
  11. Johannes SchindelinNov 28, 2007
  12. Junio C HamanoNov 28, 2007
  13. Johannes SchindelinNov 29, 2007
  14. A Large Angry SCMNov 29, 2007
  15. Junio C HamanoNov 29, 2007
  16. Nguyen Thai Ngoc DuyNov 29, 2007
  17. Nicolas PitreNov 29, 2007
  18. Junio C HamanoNov 29, 2007
  19. Wincent ColaiutaNov 30, 2007
  20. Eyvind BernhardsenNov 30, 2007
  21. transport.c: call dash-less form of receive-pack and upload-pack on remoteJohannes Schindelin, Nov 30, 2007
  22. Junio C HamanoDec 1, 2007
  23. Johannes SchindelinDec 1, 2007
  24. Junio C HamanoDec 1, 2007
  25. Johannes SchindelinDec 1, 2007
  26. Johannes SchindelinDec 1, 2007
  27. Junio C HamanoDec 2, 2007
  28. 0/3 Call builtin functions directly, was Re: [PATCH] transport.c: call dash-less form of receive-pack and upload-pack on remoteJohannes Schindelin, Dec 2, 2007
  29. 1/3 Introduce release_all_objects()Johannes Schindelin, Dec 2, 2007
  30. 2/3 Include the objects needed for the builtin functions into libgit.aJohannes Schindelin, Dec 2, 2007
  31. 3/3 Introduce execv_git_builtin() and use itJohannes Schindelin, Dec 2, 2007
  32. Johannes SchindelinDec 2, 2007
  33. 3/3 Introduce execv_git_builtin() and use itJohannes Schindelin, Dec 2, 2007
  34. Junio C HamanoDec 2, 2007
  35. Johannes SchindelinDec 2, 2007
  36. Nguyen Thai Ngoc DuyNov 30, 2007
  37. Johannes SchindelinNov 30, 2007
  38. Jeff KingNov 29, 2007
  39. Nguyen Thai Ngoc DuyNov 29, 2007
  40. Jeff KingNov 29, 2007
  41. Johannes SchindelinNov 29, 2007
  42. Jeff KingNov 29, 2007
  43. Linus TorvaldsNov 29, 2007
  44. Junio C HamanoNov 30, 2007
  45. Jeff KingNov 30, 2007
  46. Junio C HamanoNov 30, 2007
  47. Jeff KingNov 30, 2007
  48. Nicolas PitreNov 30, 2007
  49. Jeff KingNov 30, 2007
  50. Steffen ProhaskaNov 30, 2007
  51. Andreas EricssonNov 30, 2007
  52. Jeff KingNov 30, 2007
  53. Junio C HamanoNov 30, 2007
  54. Jeff KingNov 30, 2007
  55. Johannes SchindelinNov 30, 2007
  56. Wincent ColaiutaDec 2, 2007
  57. Johannes SchindelinDec 2, 2007
  58. Pascal ObryDec 2, 2007
  59. Johannes SchindelinDec 2, 2007
  60. Junio C HamanoDec 1, 2007
  61. Jeff KingDec 1, 2007
  62. Linus TorvaldsNov 30, 2007
  63. Nicolas PitreNov 30, 2007
  64. Steffen ProhaskaNov 30, 2007
  65. Jeff KingNov 30, 2007
  66. Santi BéjarNov 30, 2007
  67. Jeff KingNov 30, 2007
  68. Linus TorvaldsNov 30, 2007
  69. Jeff KingNov 30, 2007
  70. Johannes SchindelinNov 30, 2007
  71. Jeff KingNov 30, 2007
  72. Johannes SchindelinNov 30, 2007
  73. Jeff KingNov 30, 2007
  74. Johannes SchindelinNov 30, 2007
  75. Nicolas PitreNov 30, 2007
  76. Jeff KingNov 30, 2007
  77. Nicolas PitreNov 30, 2007
  78. Jeff KingNov 30, 2007
  79. Nicolas PitreNov 30, 2007
  80. Jeff KingNov 30, 2007
  81. A Large Angry SCMNov 30, 2007
  82. Nguyen Thai Ngoc DuyNov 30, 2007
  83. A Large Angry SCMNov 30, 2007
  84. Johannes SchindelinNov 30, 2007
  85. A Large Angry SCMNov 30, 2007
  86. Nicolas PitreNov 30, 2007
  87. A Large Angry SCMNov 30, 2007
  88. Nicolas PitreNov 30, 2007
  89. Jakub NarebskiNov 29, 2007
  90. Junio C HamanoDec 1, 2007
  91. Jeff KingDec 1, 2007
  92. Nguyen Thai Ngoc DuyDec 2, 2007

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.