Wishlist

From Git SCM Wiki
Jump to: navigation, search

Wishlist

In November 2006 there were a lot of emails to the git mailing list with suggestions for cleaning up git's user interface, some wishes and some "if I could do it all again" messages. This page is an attempt to gather those wishes into one place.

I've put an attribution of the wish to the person who wrote the email I found it in - if it wasn't originally their idea, and it was yours, I apologise, it's my fault, not theirs. I've not been comprehensive by any means, ideas that were liked are more likely to be here.

  • Standardize whether you say --cached or --staged to refer to the index (Ollie Saunders)
  • It would be really nice if none of the "common" commands had a hyphen in them (Carl Worth)
  • Have --merge arguments to git-pull, and --fetch argument to git-merge. (Jakub Narebski)
  • "pull" and "push" should be symmetrical operations. (Nicholas Pitre) (Andy Parkins)
  • Remote branch handling should become more straight forward. (Nicholas Pitre)
  • There's no easy way to do a git reset --hard while doing a git checkout style merge. (linux at horizon.com)
  • It would be nice to have command to rename tags (even in their packed format). Some patches sent to git mailing list (Jakub Narebski)
  • Support foreign VCS URLs in remote tracking branches with, eg, svn://, cvs://, bzr+http://, hg://, svn+webdav+crack://, etc. (Sam Vilain) Isn't this sort of already happening, or is this totally a different wish?
  • Fetch/push should show progress even when transferring large objects. Kbs/sec would be particularly nice. (Tim Ansell)
  • Blame support for git-grep. So you can grep the tree and show the author for each matching line. (Kieran Clancy)
  • show diff -c for conflicting symbolic links -- the default diff --cc is empty because there are no conflict markers (or alternatives) (Clemens Buchacher)
  • Fix file globbing such as "git add -u '*.c'". See also http://article.gmane.org/gmane.comp.version-control.git/105679. (Clemens Buchacher)
  • allow git-svn.perl to find tags and branches in different depths of subdirectories like branches/branch01 and branches/folder/branch02. This could be done by asking the user if it is a folder or branch/tag while fetching. Maybe check the folder content if a file/folder ie. Makefile is present (Karsten Elfenbein)
  • Create subrepo (subset of files/folders/objects and reposize) from a bigger repo with keeping possibility of merging. (Malte Kuhn)

See also:

Granted Wishes

The following items used to be classified as wishes above, but a brave soul or two took it upon themselves to submit working patches, which were subsequently accepted. Thanks to all!

  • With ref logs, you've just re-invented the CVS problem of associating history with a name. (linux at horizon.com) (Does not apply)
  • Don't use the name "origin" twice. In fact, don't use it at all. In a distributed system there is no such thing as a true origin. (Andy Parkins) (Since 1.5)
  • Allow a usage of "git merge <branch>" instead of the awkward "git pull . <branch>". (Carl Worth)
  • Less visible "remoteness" of remote branches. Separate remotes as the default layout. (Junio C Hamano)
  • Support Pull: refs/heads/*:refs/remotes/default/* in remotes shortcut files
  • git checkout -f -m is meaningless (-f overrides -m), but doesn't complain. (linux at horizon.com)
  • The reflog stuff was often trumpeted in the recent git vs. bzr debate. Why is that very useful functionality buried in a config file option and not just stored by default? (Carl Worth)
  • Make "git init" an alias for "git init-db". (Nicholas Pitre)
    • Seems to be achieved in my 1.6.3.3 installation
  • Darcs-style "record" to cherry-pick diff-block level changes for a patch (Tom Parker - palfrey at tevp net)
    • This can be done with "git add -p" now FYI.
  • I would kind of like to see "git poll" -- visit all remote branches, fetching objects and tags into the local repository, so that I can inspect changes off-line and merge, cherry-pick, etc. to my heart's content. (Michael K Edwards)
    • `git remote update` solves that.


Personal tools