path: root/
diff options
authorDavid Kastrup <>2007-09-23 20:42:08 (GMT)
committerJunio C Hamano <>2007-09-23 23:12:00 (GMT)
commit822f7c7349d61f6075961ce42c1bd1a85cf999e5 (patch)
treeae3b0243021d42bf07da00b2d47aa4082a68e720 /
parentb9fc6ea9efdc988d851666d45d80076839d9c225 (diff)
Supplant the "while case ... break ;; esac" idiom
A lot of shell scripts contained stuff starting with while case "$#" in 0) break ;; esac and similar. I consider breaking out of the condition instead of the body od the loop ugly, and the implied "true" value of the non-matching case is not really obvious to humans at first glance. It happens not to be obvious to some BSD shells, either, but that's because they are not POSIX-compliant. In most cases, this has been replaced by a straight condition using "test". "case" has the advantage of being faster than "test" on vintage shells where "test" is not a builtin. Since none of them is likely to run the git scripts, anyway, the added readability should be worth the change. A few loops have had their termination condition expressed differently. Signed-off-by: David Kastrup <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to '')
1 files changed, 3 insertions, 3 deletions
diff --git a/ b/
index 5e96d1f..c3f05f5 100755
--- a/
+++ b/
@@ -16,7 +16,7 @@ test -z "$(git ls-files -u)" ||
die "You are in the middle of a conflicted merge."
strategy_args= no_summary= no_commit= squash=
-while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac
+while :
case "$1" in
@@ -46,8 +46,8 @@ do
- -*)
- # Pass thru anything that is meant for fetch.
+ *)
+ # Pass thru anything that may be meant for fetch.