hash-object: cleanup handling of command line options
authorGerrit Pape <pape@smarden.org>
Thu, 21 Feb 2008 10:06:47 +0000 (10:06 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 Feb 2008 17:32:49 +0000 (09:32 -0800)
commit8a2f5e5b032ca73e19ad1425b75c63234eb166fa
treea18fc4f43a2d2214237c5bac0e96593209614e4d
parentfd74cb0874126876227a958f6250323a4a4478a5
hash-object: cleanup handling of command line options

git hash-object used to process the --stdin command line argument
before reading subsequent arguments.  This caused 'git hash-object
--stdin -w' to fail to actually write the object into the
database, while '-w --stdin' properly did.  Now git hash-object
first reads all arguments, and then processes them.

This regresses one insane use case.  git hash-object used to allow
multiple --stdin arguments on the command line:

   $ git hash-object --stdin --stdin
     foo
     ^D
     bar
     ^D

Now git hash-object errors out if --stdin is given more than once.

Reported by Josh Triplett through
 http://bugs.debian.org/464432

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
hash-object.c
t/t5303-hash-object.sh [new file with mode: 0755]