Re: If you would write git from scratch now, what would you change?
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 26, 2007, 21:24 UTC
- Message-ID
- <7vhcj8g0op.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <AA5ECB69-3F77-483E-AD19-04A5515779B3@wincent.com>
Wincent Colaiuta <win@wincent.com> writes:
Show 10 quoted lines
> For the benefit of newcomers, I just wish the plumbing was kept a > little bit out of sight. You know, porcelain in /usr/bin and plumbing > in /usr/libexec or other such place. > > It's fine once you've learnt your workflows and know the 10 or 15 Git > tools that you'll be using day-to-day; but for people who are just > starting off this can be a little bit intimidating: > > $ git-<tab> > Display all 146 possibilities? (y or n)
I'd agree to that but I've always considered this an issue for distros. We've supported an ability for them to specify a gitexecdir separate from /usr/bin in our Makefile for almost two years.
The tab completion for bash and zsh would also help you here, but I see there are quite a few commands that should not be there, and it's time to clean it up.
$ git <tab>
add fetch push
am filter-branch rebase
annotate format-patch rebase--interactive
apply fsck relink
archive gc remote
bisect get-tar-commit-id repack
blame grep request-pull
branch gui reset
bundle imap-send resolve
checkout init revert
checkout-index instaweb rm
cherry less send-email
cherry-pick lg shortlog
citool log show
clean lost-found show-branch
clone ls-files show-ref
co ls-remote stash
commit ls-tree status
config merge submodule
convert-objects mergetool svnimport
count-objects mv tag
describe name-rev var
diff pickaxe verify-pack
diff-stages pull whatchangedPerhaps this list can be a starting point...
contrib/completion/git-completion.bash | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index cad842a..1bba68b 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -359,6 +359,15 @@ __git_commands () upload-pack) : plumbing;; write-tree) : plumbing;; verify-tag) : plumbing;; + annotate) : use blame;; + checkout-index) : plumbing;; + diff-stages) : plumbing;; + get-tar-commit-id) : plumbing;; + lost-found) : deprecated;; + rebase--interactive) : plumbing;; + relink) : obsolete;; + whatchanged) : plumbing;; + verify-pack) : plumbing;; *) echo $i;; esac done