aboutsummaryrefslogtreecommitdiffstats
path: root/git-filter-branch.sh
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2007-09-23 22:42:08 +0200
committerJunio C Hamano <gitster@pobox.com>2007-09-23 16:12:00 -0700
commit822f7c7349d61f6075961ce42c1bd1a85cf999e5 (patch)
treeae3b0243021d42bf07da00b2d47aa4082a68e720 /git-filter-branch.sh
parentb9fc6ea9efdc988d851666d45d80076839d9c225 (diff)
downloadgit-822f7c7349d61f6075961ce42c1bd1a85cf999e5.tar.gz
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 <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-filter-branch.sh')
-rwxr-xr-xgit-filter-branch.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index a4b6577bd4..a12f6c2d4c 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -105,8 +105,9 @@ filter_tag_name=
filter_subdir=
orig_namespace=refs/original/
force=
-while case "$#" in 0) usage;; esac
+while :
do
+ test $# = 0 && usage
case "$1" in
--)
shift