]> git.ipfire.org Git - thirdparty/git.git/commit - sha1-name.c
object name: introduce '^{/!-<negative pattern>}' notation
authorWill Palmer <wmpalmer@gmail.com>
Sun, 31 Jan 2016 00:06:01 +0000 (17:06 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Feb 2016 21:40:37 +0000 (13:40 -0800)
commit0769854f3db2c09c8b5993ea023ea07ddc1eb6eb
tree335f735c80d71a956c2ae4e46127043cd66315bf
parent06b6b68ff943de9e5c2f537807c054cd536731d1
object name: introduce '^{/!-<negative pattern>}' notation

To name a commit, you can now use the :/!-<negative pattern> regex
style, and consequentially, say

    $ git rev-parse HEAD^{/!-foo}

and it will return the hash of the first commit reachable from HEAD,
whose commit message does not contain "foo". This is the opposite of the
existing <rev>^{/<pattern>} syntax.

The specific use-case this is intended for is to perform an operation,
excluding the most-recent commits containing a particular marker. For
example, if you tend to make "work in progress" commits, with messages
beginning with "WIP", you work, then it could be useful to diff against
"the most recent commit which was not a WIP commit". That sort of thing
now possible, via commands such as:

    $ git diff @^{/!-^WIP}

The leader '/!-', rather than simply '/!', to denote a negative match,
is chosen to leave room for additional modifiers in the future.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Stephen P. Smith <ischis2@cox.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/revisions.txt
sha1_name.c
t/t1511-rev-parse-caret.sh