summaryrefslogtreecommitdiff
path: root/builtin/commit.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2010-07-15 12:06:55 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-07-15 12:06:55 -0700
commitbff6e86b3d01febaa2d73ff4e890f091999e9e28 (patch)
treed93b87fe04a84c47d399ad7b89d66952d6e277fc /builtin/commit.c
parentMerge branch 'jc/rebase-i-commit-msg-fix' (diff)
parentdo not write out index when status does not have to (diff)
downloadtgif-bff6e86b3d01febaa2d73ff4e890f091999e9e28.tar.xz
Merge branch 'jk/maint-status-keep-index-timestamp'
* jk/maint-status-keep-index-timestamp: do not write out index when status does not have to
Diffstat (limited to 'builtin/commit.c')
-rw-r--r--builtin/commit.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index c101f006f6..a78dbd83bf 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -343,9 +343,13 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int
if (!pathspec || !*pathspec) {
fd = hold_locked_index(&index_lock, 1);
refresh_cache_or_die(refresh_flags);
- if (write_cache(fd, active_cache, active_nr) ||
- commit_locked_index(&index_lock))
- die("unable to write new_index file");
+ if (active_cache_changed) {
+ if (write_cache(fd, active_cache, active_nr) ||
+ commit_locked_index(&index_lock))
+ die("unable to write new_index file");
+ } else {
+ rollback_lock_file(&index_lock);
+ }
commit_style = COMMIT_AS_IS;
return get_index_file();
}
@@ -1085,9 +1089,11 @@ int cmd_status(int argc, const char **argv, const char *prefix)
fd = hold_locked_index(&index_lock, 0);
if (0 <= fd) {
- if (!write_cache(fd, active_cache, active_nr))
+ if (active_cache_changed &&
+ !write_cache(fd, active_cache, active_nr))
commit_locked_index(&index_lock);
- rollback_lock_file(&index_lock);
+ else
+ rollback_lock_file(&index_lock);
}
s.is_initial = get_sha1(s.reference, sha1) ? 1 : 0;