From 38ec15a973a1f075f0d94d130b0ef279562921cd Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 1 Oct 2005 12:01:07 -0700 Subject: [PATCH] Honor extractor's umask in git-tar-tree. The archive generated with git-tar-tree had 0755 and 0644 mode bits. This inconvenienced the extractor with umask 002 by robbing g+w bit unconditionally. Just write it out with loose permissions bits and let the umask of the extractor do its job. Signed-off-by: Junio C Hamano --- tar-tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tar-tree.c b/tar-tree.c index 2716ae3eb..970c4bb54 100644 --- a/tar-tree.c +++ b/tar-tree.c @@ -353,6 +353,8 @@ static void traverse_tree(void *buffer, unsigned long size, if (size < namelen + 20 || sscanf(buffer, "%o", &mode) != 1) die("corrupt 'tree' file"); + if (S_ISDIR(mode) || S_ISREG(mode)) + mode |= (mode & 0100) ? 0777 : 0666; buffer = sha1 + 20; size -= namelen + 20; -- 2.30.2