diff options
author | Junio C Hamano <junkio@cox.net> | 2007-02-22 00:28:49 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-22 00:31:51 -0800 |
commit | 2b5f9a8c0cff511f2bb0833b1ee02645b79323f4 (patch) | |
tree | 7b9f4e8259e225995a59a805e1984248f153e43b /git-commit.sh | |
parent | 437b1b20df4b356c9342dac8d38849f24ef44f27 (diff) | |
download | git-2b5f9a8c0cff511f2bb0833b1ee02645b79323f4.tar.gz git-2b5f9a8c0cff511f2bb0833b1ee02645b79323f4.tar.xz |
git-status: do not be totally useless in a read-only repository.
This makes git-status work semi-decently in a read-only
repository. Earlier, the command simply died with "cannot lock
the index file" before giving any useful information to the
user.
Because index won't be updated in a read-only repository,
stat-dirty paths appear in the "Changed but not updated" list.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-commit.sh')
-rwxr-xr-x | git-commit.sh | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/git-commit.sh b/git-commit.sh index ec506d956..cfa15110f 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -13,10 +13,10 @@ git-rev-parse --verify HEAD >/dev/null 2>&1 || initial_commit=t case "$0" in *status) status_only=t - unmerged_ok_if_status=--unmerged ;; + ;; *commit) status_only= - unmerged_ok_if_status= ;; + ;; esac refuse_partial () { @@ -389,16 +389,17 @@ else USE_INDEX="$THIS_INDEX" fi -GIT_INDEX_FILE="$USE_INDEX" \ - git-update-index -q $unmerged_ok_if_status --refresh || exit - -################################################################ -# If the request is status, just show it and exit. - -case "$0" in -*status) +case "$status_only" in +t) + # This will silently fail in a read-only repository, which is + # what we want. + GIT_INDEX_FILE="$USE_INDEX" git-update-index -q --unmerged --refresh run_status exit $? + ;; +'') + GIT_INDEX_FILE="$USE_INDEX" git-update-index -q --refresh || exit + ;; esac ################################################################ |