commit-tree: utilize parse-options api

Rather than parse options manually, which is both difficult to
read and error prone, parse options supplied to commit-tree
using the parse-options api.

It was discovered that the --no-gpg-sign option was documented
but not implemented in commit 70ddbd7767 (commit-tree: add missing
--gpg-sign flag, 2019-01-19), and the existing implementation
would attempt to translate the option as a tree oid. It was also
suggested earlier in commit 55ca3f99ae (commit-tree: add and document
--no-gpg-sign, 2013-12-13) that commit-tree should be migrated to
utilize the parse-options api, which could help prevent mistakes
like this in the future. Hence this change.

Also update the documentation to better describe that mixing
`-m` and `-F` options will correctly compose commit log messages in the
order in which the options are given.

In the process, mark various strings for translation.

Signed-off-by: Brandon Richardson <brandon1024.br@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Richardson
2019-03-07 11:44:09 -04:00
committed by Junio C Hamano
parent 8104ec994e
commit cbdeab98e8
3 changed files with 104 additions and 74 deletions

View File

@ -23,6 +23,10 @@ Creates a new commit object based on the provided tree object and
emits the new commit object id on stdout. The log message is read
from the standard input, unless `-m` or `-F` options are given.
The `-m` and `-F` options can be given any number of times, in any
order. The commit log message will be composed in the order in which
the options are given.
A commit object may have any number of parents. With exactly one
parent, it is an ordinary commit. Having more than one parent makes
the commit a merge between several lines of history. Initial (root)
@ -41,7 +45,7 @@ state was.
OPTIONS
-------
<tree>::
An existing tree object
An existing tree object.
-p <parent>::
Each `-p` indicates the id of a parent commit object.
@ -52,7 +56,8 @@ OPTIONS
-F <file>::
Read the commit log message from the given file. Use `-` to read
from the standard input.
from the standard input. This can be given more than once and the
content of each file becomes its own paragraph.
-S[<keyid>]::
--gpg-sign[=<keyid>]::