Am 3/15/2011 11:08, schrieb Jakob Pfender: > We have an NFS setup with Linux machines mounting an NFS that is hosted on > an OpenBSD server. Recently, we discovered git-stash breaking with: > > $ git stash > cp: preserving permissions for > `/home/jpfender/stashtest/.git/.git-stash.3056-index': Operation not > supported > Cannot save the current worktree state > > This was discovered to be caused by a bug in cp that causes 'cp -p' to > fail in this particular NFS setup - preserving permissions in an NFS > shared across Linux and OpenBSD machines doesn't work. > > I looked at git-stash.sh and could not discover a reason why it had to use > 'cp -p'. I patched it to use only cp without preserving permissions, and > everything seemed to work fine. All stash tests succeeded (bar two known > breakages). > > So my question is: Does git-stash really need 'cp -p'? Is it safe to remove? Yes. No. The timestamp of the index file is important. It is needed to discover racily-clean index entries. Therefore, the -p must remain. You can also try the patch below. Warning: completely untested. -- Hannes diff --git a/git-stash.sh b/git-stash.sh index 7561b37..fa62135 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -82,10 +82,9 @@ create_stash () { # state of the working tree w_tree=$( ( rm -f "$TMP-index" && - cp -p ${GIT_INDEX_FILE-"$GIT_DIR/index"} "$TMP-index" && + git read-tree --index-output="$TMP-index" -m $i_tree && GIT_INDEX_FILE="$TMP-index" && export GIT_INDEX_FILE && - git read-tree -m $i_tree && git diff --name-only -z HEAD | git update-index -z --add --remove --stdin && git write-tree && rm -f "$TMP-index" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html