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

Re: "git revert" (Re: pci_update_resource() getting called on sparc64)

From
Junio C Hamano <junkio@cox.net>
Date
Aug 8, 2005, 20:47 UTC
Message-ID
<7vd5oo40mq.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.58.0508081257190.3258@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
Show 8 quoted lines
>> It may not have the nicest error messages: if you try to revert a merge
>> (which won't have a diff), git-apply will say something like
>> 
>> 	fatal: No changes
>> 
>> which isn't exactly being helpful. And the revert message could be made 
>> more interesting (like putting the first line of the description of what 
>> we reverted into the message instead of just the revision number).
> Comments?
>
> 		Linus

I like the general idea, and if we had a commit pretty format "oneline", then something like this would make it look nicer.

Totally untested. I acquired your habit of coding in my e-mail client ;-).

        #!/bin/sh
        . git-sh-setup-script || die "Not a git archive"
        rev=$(git-rev-parse --verify --revs-only "$@") &&
        commit=$(git-rev-parse --verify --revs-only "$commit^0") || exit
        if git-diff-tree -R -p $commit | git-apply --index &&
           msg=$(git-rev-list --pretty=oneline --max-count=1 $commit)
        then
                {
                        echo "Revert $msg"
                        echo
                        echo "This reverts $commit commit."
                        test "$rev" = "$commit" ||
                        echo "(original 'git revert' arguments: $@)"
                } | git commit
        else
                # Now why did it fail?
                parents=`git-cat-file commit "$commit" 2>/dev/null |
                        sed -ne '/^$/q;/^parent /p' |
                        wc -l`
                case $parents in
                0) die "Cannot revert the root commit nor non commit-ish" ;;
                1) die "The patch does not apply" ;;
                *) die "Cannot revert a merge commit" ;;
                esac
        fi
Previous: Linus TorvaldsNext: Linus Torvalds
Message 2 of 12 in “"git revert" (Re: pci_update_resource() getting called on sparc64)”
  1. Linus TorvaldsAug 8, 2005
  2. Junio C HamanoAug 8, 2005
  3. Linus TorvaldsAug 8, 2005
  4. Junio C HamanoAug 8, 2005
  5. git-commit-script, was Re: "git revert" (Re: pci_update_resource() getting called on sparc64)Johannes Schindelin, Aug 8, 2005
  6. Junio C HamanoAug 8, 2005
  7. Linus TorvaldsAug 8, 2005
  8. Junio C HamanoAug 8, 2005
  9. Linus TorvaldsAug 8, 2005
  10. Junio C HamanoAug 8, 2005
  11. Johannes SchindelinAug 9, 2005
  12. Johannes SchindelinAug 9, 2005

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.