Merge branch 'jc/maint-refresh-index-is-optional-for-status' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 21 Jan 2010 04:25:11 +0000 (20:25 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 21 Jan 2010 04:25:11 +0000 (20:25 -0800)
* jc/maint-refresh-index-is-optional-for-status:
  status: don't require the repository to be writable

builtin-commit.c

index 33aa593..83b7c35 100644 (file)
@@ -278,11 +278,13 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int
         * We still need to refresh the index here.
         */
        if (!pathspec || !*pathspec) {
-               fd = hold_locked_index(&index_lock, 1);
+               fd = hold_locked_index(&index_lock, !is_status);
                refresh_cache(refresh_flags);
-               if (write_cache(fd, active_cache, active_nr) ||
-                   commit_locked_index(&index_lock))
-                       die("unable to write new_index file");
+               if (0 <= fd) {
+                       if (write_cache(fd, active_cache, active_nr) ||
+                           commit_locked_index(&index_lock))
+                               die("unable to write new_index file");
+               }
                commit_style = COMMIT_AS_IS;
                return get_index_file();
        }