Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
update-index: do not die too early in a read-only repository.
author
Junio C Hamano
<junkio@cox.net>
Thu, 22 Feb 2007 08:30:45 +0000
(
00:30
-0800)
committer
Junio C Hamano
<junkio@cox.net>
Thu, 22 Feb 2007 08:31:53 +0000
(
00:31
-0800)
This delays the error exit from hold_lock_file_for_update() in
update-index, so that "update-index --refresh" in a read-only
repository can still report what paths are stat-dirty before
exiting.
Also it makes -q to squelch the error message.
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-update-index.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2b5f9a8
)
diff --git
a/builtin-update-index.c
b/builtin-update-index.c
index 1ac613a78869e5b0a2ac45ca6ab72adc18a55575..3fbdc67b8880a7d1b46e39d1b7d03c00d65b1408 100644
(file)
--- a/
builtin-update-index.c
+++ b/
builtin-update-index.c
@@
-486,6
+486,7
@@
int cmd_update_index(int argc, const char **argv, const char *prefix)
int prefix_length = prefix ? strlen(prefix) : 0;
char set_executable_bit = 0;
unsigned int refresh_flags = 0;
int prefix_length = prefix ? strlen(prefix) : 0;
char set_executable_bit = 0;
unsigned int refresh_flags = 0;
+ int lock_error = 0;
struct lock_file *lock_file;
git_config(git_default_config);
struct lock_file *lock_file;
git_config(git_default_config);
@@
-493,7
+494,9
@@
int cmd_update_index(int argc, const char **argv, const char *prefix)
/* We can't free this memory, it becomes part of a linked list parsed atexit() */
lock_file = xcalloc(1, sizeof(struct lock_file));
/* We can't free this memory, it becomes part of a linked list parsed atexit() */
lock_file = xcalloc(1, sizeof(struct lock_file));
- newfd = hold_lock_file_for_update(lock_file, get_index_file(), 1);
+ newfd = hold_lock_file_for_update(lock_file, get_index_file(), 0);
+ if (newfd < 0)
+ lock_error = errno;
entries = read_cache();
if (entries < 0)
entries = read_cache();
if (entries < 0)
@@
-650,6
+653,12
@@
int cmd_update_index(int argc, const char **argv, const char *prefix)
finish:
if (active_cache_changed) {
finish:
if (active_cache_changed) {
+ if (newfd < 0) {
+ if (refresh_flags & REFRESH_QUIET)
+ exit(128);
+ die("unable to create '%s.lock': %s",
+ get_index_file(), strerror(lock_error));
+ }
if (write_cache(newfd, active_cache, active_nr) ||
close(newfd) || commit_lock_file(lock_file))
die("Unable to write new index file");
if (write_cache(newfd, active_cache, active_nr) ||
close(newfd) || commit_lock_file(lock_file))
die("Unable to write new index file");