All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] specify commit by negative pattern
@ 2015-06-06  0:24 Will Palmer
  2015-06-06  0:24 ` [PATCH v2 1/2] test for '!' handling in rev-parse's named commits Will Palmer
  2015-06-06  0:24 ` [PATCH v2 2/2] object name: introduce '^{/!-<negative pattern>}' notation Will Palmer
  0 siblings, 2 replies; 26+ messages in thread
From: Will Palmer @ 2015-06-06  0:24 UTC (permalink / raw)
  To: git; +Cc: Will Palmer

add support for negative pattern matching in @^{/<pattern>} style
revision specifiers. So now you can find the first commit whose message
doesn't match a pattern, complementing the existing positive matching.
e.g.:

    $ git rebase -i @^{/!-^WIP}

My use-case is in having a "work, work, work, rebase, push"-style
workflow, which generates a lot of "WIP foo" commits. While rebasing is
usually handled via "git rebase -i origin/master", occasionally I will
already have several "good, but not yet ready to push" commits hanging
around while I finish work on related commits. In these situations, the
ability to quickly "git diff @^{/!-^WIP}" to get an overview of all
changes "since the last one I was happy with", can be useful.

This is the second version of the patch series. The previous attempt
used the notation @^{/!WIP}, rather than @^{/!-WIP}, so the "modifier"
was the '!' character. Now, '!' is taken as an indicator that the
pattern is to be interpreted differently, and '-' is taken as an
indicator of how it is to be interpreted differently. This follows
recent discussion with "Junio C Hamano" <gitster@pobox.com> and much-less
recent discussion archived at:

http://thread.gmane.org/gmane.comp.version-control.git/40460/focus=40477

In summary, '!' is to be used as an "escape hatch", for further
extension of the "name commit by pattern" functionality. Theorised future
extensions indicated things like "what was to be searched",
e.g.: @^{/!(a=author)}.  With only two interpretations of the '!'
leader, for now (including the '!!' literal notation), adding such a
verbose form, such as '@^{/!(negative)foo}', seemed inappropriate at this
time. In the event that such verbose forms are ever implemented, this new
form may act as a shorthand, for a basic case.

Will Palmer (2):
  test for '!' handling in rev-parse's named commits
  object name: introduce '^{/!-<negative pattern>}' notation

 Documentation/revisions.txt | 11 +++++-----
 sha1_name.c                 | 20 ++++++++++++-----
 t/t1511-rev-parse-caret.sh  | 53 ++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 73 insertions(+), 11 deletions(-)

-- 
2.3.0.rc1

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2016-02-01 21:42 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-06  0:24 [PATCH v2 0/2] specify commit by negative pattern Will Palmer
2015-06-06  0:24 ` [PATCH v2 1/2] test for '!' handling in rev-parse's named commits Will Palmer
2015-06-06  0:24 ` [PATCH v2 2/2] object name: introduce '^{/!-<negative pattern>}' notation Will Palmer
2015-06-08 16:39   ` Junio C Hamano
2015-06-09 18:14     ` Will Palmer
2015-10-28 17:52       ` Junio C Hamano
2016-01-08  6:04     ` [PATCH v2 2/2] object name: introduce '^{/!-<negativepattern>}' notation Stephen Smith
2016-01-08 18:21       ` Junio C Hamano
2016-01-10  2:20         ` [PATCH V3 0/2] specify commit by negative pattern Stephen P. Smith
2016-01-10  2:22           ` [PATCH V3 1/2] test for '!' handling in rev-parse's named commits Stephen P. Smith
2016-01-10  2:23           ` [PATCH V3 2/2] object name: introduce '^{/!-<negative pattern>}' notation Stephen P. Smith
2016-01-11 18:10             ` Philip Oakley
2016-01-13  4:51               ` [PATCH V4 0/2] specify commit by negative pattern Stephen P. Smith
2016-01-13  4:51               ` [PATCH V4 1/2] test for '!' handling in rev-parse's named commits Stephen P. Smith
2016-01-13  4:52               ` [PATCH V4 2/2] object name: introduce '^{/!-<negative pattern>}' notation Stephen P. Smith
2016-01-13 19:15                 ` Junio C Hamano
2016-01-31  0:06                   ` [PATCH V5 " Stephen P. Smith
2016-02-01 21:42                     ` Junio C Hamano
2016-01-10 13:25           ` [PATCH V3 0/2] specify commit by negative pattern Philip Oakley
2016-01-11  0:08             ` Stephen P. Smith
2016-01-11 18:04               ` Philip Oakley
2016-01-10 14:14           ` Stephen & Linda Smith
2016-01-10 23:36             ` Philip Oakley
2016-01-09  1:55       ` [PATCH v2 2/2] object name: introduce '^{/!-<negativepattern>}' notation Stephen & Linda Smith
2016-01-09  2:18       ` Duy Nguyen
2016-01-11 17:13         ` Junio C Hamano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.