git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Be more careful with objects directory permissions on clone

From
MHMark Hills <mark@pogo.org.uk>
Date
May 4, 2008, 11:37 UTC
Message-ID
<alpine.BSO.1.10.0805041234570.5819@zrgural.vwaro.pbz>

Honour the setgid and umask when re-creating the objects directory at the destination.

cpio in copy-pass mode aims to copy file permissions which causes this problem and cannot be disabled. Be explicit by copying the directory structure first, honouring the permissions at the destination, then copy the files with their existing read-only permissions.

Signed-off-by: Mark Hills <mark@pogo.org.uk>
---
  git-clone.sh |    5 ++++-
  1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/git-clone.sh b/git-clone.sh
index 8c7fc7f..53c7e06 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -334,7 +334,10 @@ yes)
  			fi
  		fi &&
  		cd "$repo" &&
-		find objects -depth -print | cpio $cpio_quiet_flag -pumd$l "$GIT_DIR/" || \
+		# Create dirs using umask and permissions and destination
+		find objects -type d -print | (cd "$GIT_DIR" && xargs mkdir -p) &&
+		# Copy 0444 permissions on files
+		find objects -type f -print | cpio $cpio_quiet_flag -pumd$l "$GIT_DIR/" || \
  			exit 1
  	fi
  	git-ls-remote "$repo" >"$GIT_DIR/CLONE_HEAD" || exit 1
-- 
1.5.5.1.126.g48d0c
Next: Johannes Sixt
Message 1 of 10 in “Be more careful with objects directory permissions on clone”
  1. Be more careful with objects directory permissions on cloneMark Hills, May 4, 2008
  2. Johannes SixtMay 5, 2008
  3. Mark HillsMay 5, 2008
  4. Johannes SixtMay 5, 2008
  5. Mark HillsMay 5, 2008
  6. Johannes SixtMay 5, 2008
  7. Mark HillsMay 5, 2008
  8. Junio C HamanoMay 6, 2008
  9. Jakub NarebskiMay 6, 2008
  10. Johannes SixtMay 6, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.