Subject: [PATCH] O_EXCL makes O_TRUNC redundant Signed-off-by: Alex Riesen --- apply.c | 2 +- entry.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 4d5e4d8d468c0eedf489104e9f02f86c635c8ac2 diff --git a/apply.c b/apply.c index d5e7bfd..9eba034 100644 --- a/apply.c +++ b/apply.c @@ -1588,7 +1588,7 @@ static int try_create_file(const char *p if (S_ISLNK(mode)) return symlink(buf, path); - fd = open(path, O_CREAT | O_EXCL | O_WRONLY | O_TRUNC, (mode & 0100) ? 0777 : 0666); + fd = open(path, O_CREAT | O_EXCL | O_WRONLY, (mode & 0100) ? 0777 : 0666); if (fd < 0) return -1; while (size) { diff --git a/entry.c b/entry.c index 15b34eb..410b758 100644 --- a/entry.c +++ b/entry.c @@ -60,7 +60,7 @@ static void remove_subtree(const char *p static int create_file(const char *path, unsigned int mode) { mode = (mode & 0100) ? 0777 : 0666; - return open(path, O_WRONLY | O_TRUNC | O_CREAT | O_EXCL, mode); + return open(path, O_WRONLY | O_CREAT | O_EXCL, mode); } static int write_entry(struct cache_entry *ce, const char *path, struct checkout *state) -- 1.0.GIT