From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
It uses $1 rather than ${ARGS[0]}, which breaks when optparse found some options, i.e. with cg-admin-uncommit -t (cg-object-id -c -t is not nice).
Please, document optparse to explain this. It's absolutely non-obvious, and when I first hit this I thought optparse was buggy but couldn't make my way to the fix.
Both because I was using cogito rather than debugging it, and even considering the obfuscation level, but above all I was looking for a call to shift in optshift and didn't find it. Now I understood the thing I pity myself, though.
Btw, why doesn't optparse consume all the cmd arguments via shift, making thus sure that $1 never works at all?
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> ---
cg-admin-uncommit | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to cg-admin-uncommit +1 −1
diff --git a/cg-admin-uncommit b/cg-admin-uncommit --- a/cg-admin-uncommit +++ b/cg-admin-uncommit @@ -47,7 +47,7 @@ done base=$(cg-object-id -c) || exit 1 -commit=$(cg-object-id -c "$1") || exit 1 +commit=$(cg-object-id -c "${ARGS[0]}") || exit 1 git-rev-list $base | grep -q $commit || \ die "$commit: not an ancestor of HEAD"