I have been looking at what git-rev-parse does and could not
figure out a way to convince it to give me only arguments with
a '-' prefix.  Specifically, I wanted to remove the hardcoded -p
and -M flags from git-diff-script.  Running

    $ sh -x git-diff-script -C HEAD^ HEAD

reveals that none of the following would pick up "-C" from the
command line:

    rev=($(git-rev-parse --revs-only "$@")) || exit
    flags=($(git-rev-parse --no-revs --flags "$@"))
    files=($(git-rev-parse --no-revs --no-flags "$@"))

I am not even sure if the current implementation of rev-parse
matches what you originally wanted it to do; I suspect it does
not.  I would like to know what was the intended behaviour
first, so that I can enhance it to be usable for my purpose
without breaking things.

What I want the rev-parse flags to mean is as follows.  By "rev
argument", I mean what get_sha1() can understand.  I have to
admit that some flags are what I introduced while I was
butchering it without really knowing the original intention:

  output format:
  --sq          output in a format usable for shell "eval".
  --symbolic    output rev argument in symbolic form, not SHA1.

  output selection:
  --flags       show only arguments with '-' prefix.
  --no-flags    do not show arguments with '-' prefix.

  --revs-only   show only arguments meant for rev-list.
  --no-revs     show arguments not meant for rev-list.

  input munging:
  --default R   if no revision, pretend R is given.
  --not         pretend all rev arguments without prefix ^ have
                prefix ^, and the ones with prefix ^ do not.
  --all         pretend all refs under $GIT_DIR/refs are given
                on the command line.

  special:
  --verify      make sure only one rev argument is given, nothing else.

I think flags/no-flags and revs-only/no-revs *should* be
orthogonal.  That is, "rev-parse --flags --no-revs" should give
parameters that start with '-' and not meant for rev-list
(e.g. '-C' in earlier example); "rev-parse --revs-only
--merge-order HEAD Documentation/" should yield "--merge-order
HEAD".

Also there is an undocumented --show-prefix.  What is it?

-jc

PS. BTW, any response about unsuspecting companies?

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to