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

Re: [PATCH] git-revert is one of the most misunderstood command in git, help users out.

From
Pierre Habouzit <madcoder@debian.org>
Date
Nov 6, 2007, 08:49 UTC
Message-ID
<20071106084925.GC4435@artemis.corp>
In-Reply-To
<7vode8j7o5.fsf@gitster.siamese.dyndns.org>
On Tue, Nov 06, 2007 at 04:54:02AM +0000, Junio C Hamano wrote:
Show 16 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Mon, 5 Nov 2007, Junio C Hamano wrote:
> >
> >> Allowing people to revert or cherry pick partially by using paths 
> >> limiter is a very good idea; the whole "it comes from a commit so we 
> >> also commit" feels an utter nonsense, though.
> >
> > No.
> >
> > When "git revert <commit>" commits the result, "git revert <commit> -- 
> > <file>" should, too.
> 
> I was not questioning about that part.  "If 'git revert <some
> other form> foo' does not talk about commit, it should not
> commit" was what I was referring to.
  Well, I don't really know how closely you read #git, but I'd say that
"how do I undo my local changes in a git repository" is among the top 3
questions. There _IS_ an UI issue for that.

If git revert <commitish> -- path1 path2 path3 is going to work at some point, I see no harm in saying that git revert HEAD -- path1 path2 path3 work. We can also in that case spit an error message:

error: this works as a courtesy but you really meant git checkout -- path/to/file
  On some other issues I'm all about educating people and learning to
them how to "think different". But here it's a pure interface problem,
and git is the sole $scm with a revert commands that doesn't reverts
local changes wrt HEAD.
  The next release of master will have tons of UI improvements (terse
output, better options parsing, more builtins hence faster commands …),
I believe it's stopping halfway not thinking about issues like this from
a newcomer point of view.
  On the pure theoretical basis I believe you're right, it's a bit
mixing apples and oranges. On the pragmatic usability side I'm quite
sure you're wrong, because everyone is used to that:
    $ hg revert --help | head -3 | tail -1
    revert files or dirs to their states as of some revision
    $ bzr help revert | head -1
    Purpose: Revert files to a previous revision.
    $ svn help revert | head -1
    revert: Restore pristine working copy file (undo most local edits).
    $ darcs help revert | head -3 | tail -1
    Revert to the recorded version (safe the first time only).
    <put your favorite non-git scm with a revert command here>
-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org
Previous: Junio C HamanoNext: Mike Hommey
Message 16 of 39 in “git-revert is one of the most misunderstood command in git, help users out.”
  1. git-revert is one of the most misunderstood command in git, help users out.Pierre Habouzit, Nov 5, 2007
  2. Pierre HabouzitNov 5, 2007
  3. J. Bruce FieldsNov 5, 2007
  4. Pierre HabouzitNov 5, 2007
  5. Steven GrimmNov 5, 2007
  6. Pierre HabouzitNov 5, 2007
  7. Alejandro Martinez RuizNov 5, 2007
  8. David KastrupNov 5, 2007
  9. Alejandro Martinez RuizNov 5, 2007
  10. Junio C HamanoNov 5, 2007
  11. Johannes SchindelinNov 5, 2007
  12. Pierre HabouzitNov 6, 2007
  13. Junio C HamanoNov 6, 2007
  14. Johannes SchindelinNov 6, 2007
  15. Junio C HamanoNov 6, 2007
  16. Pierre HabouzitNov 6, 2007
  17. Mike HommeyNov 6, 2007
  18. Pierre HabouzitNov 6, 2007
  19. Johannes SchindelinNov 6, 2007
  20. Junio C HamanoNov 6, 2007
  21. Johannes SchindelinNov 6, 2007
  22. Pierre HabouzitNov 6, 2007
  23. Junio C HamanoNov 6, 2007
  24. Johannes SchindelinNov 6, 2007
  25. Robin RosenbergNov 6, 2007
  26. Mike HommeyNov 6, 2007
  27. Robin RosenbergNov 6, 2007
  28. Johannes SchindelinNov 6, 2007
  29. Mike HommeyNov 7, 2007
  30. Johannes SchindelinNov 7, 2007
  31. Robin RosenbergNov 7, 2007
  32. Jakub NarebskiNov 7, 2007
  33. David KastrupNov 7, 2007
  34. Junio C HamanoNov 6, 2007
  35. Johannes SixtNov 6, 2007
  36. Johannes SchindelinNov 6, 2007
  37. Johannes SchindelinNov 6, 2007
  38. Pierre HabouzitNov 6, 2007
  39. Wincent ColaiutaNov 6, 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.