Browse Source

git-for-each-ref: improve the documentation on scripting modes

When reading the synopsis for git-for-each-ref it is easy to miss
the obvious power of --shell and family.  Call this feature out in
the primary paragragh.  Also add more description to the examples
to indicate which features we are demonstrating.  Finally add a
very simple eval based example in addition to the very complex one
to give a gentler introduction.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Andy Whitcroft 19 years ago committed by Junio C Hamano
parent
commit
1729fa9878
  1. 25
      Documentation/git-for-each-ref.txt

25
Documentation/git-for-each-ref.txt

@ -17,7 +17,7 @@ according to the given `<format>`, after sorting them according
to the given set of `<key>`s. If `<max>` is given, stop after to the given set of `<key>`s. If `<max>` is given, stop after
showing that many refs. The interporated values in `<format>` showing that many refs. The interporated values in `<format>`
can optionally be quoted as string literals in the specified can optionally be quoted as string literals in the specified
host language. host language allowing their direct evaluation in that language.


OPTIONS OPTIONS
------- -------
@ -97,7 +97,8 @@ returns an empty string instead.
EXAMPLES EXAMPLES
-------- --------


Show the most recent 3 tagged commits:: An example directly producing formatted text. Show the most recent
3 tagged commits::


------------ ------------
#!/bin/sh #!/bin/sh
@ -112,7 +113,23 @@ Ref: %(*refname)
' 'refs/tags' ' 'refs/tags'
------------ ------------


A bit more elaborate report on tags::
A simple example showing the use of shell eval on the output,
demonstrating the use of --shell. List the prefixes of all heads::
------------
#!/bin/sh

git-for-each-ref --shell --format="ref=%(refname)" refs/heads | \
while read entry
do
eval "$entry"
echo `dirname $ref`
done
------------


A bit more elaborate report on tags, demonstrating that the format
may be an entire script::
------------ ------------
#!/bin/sh #!/bin/sh


@ -156,7 +173,7 @@ Its message reads as:
fi fi
' '


eval=`git-for-each-ref -s --format="$fmt" \ eval=`git-for-each-ref --shell --format="$fmt" \
--sort='*objecttype' \ --sort='*objecttype' \
--sort=-taggerdate \ --sort=-taggerdate \
refs/tags` refs/tags`

Loading…
Cancel
Save