diff options
author | Joey Hess <joey@kitenet.net> | 2014-08-26 17:06:43 -0700 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-08-26 17:10:25 -0700 |
commit | f04fc3ca095f2372c9bb43ef5b884ed112d34eff (patch) | |
tree | 71b7b1ea09f7f1d7bf964544c1c04eb7259abf15 /Annex | |
parent | 7924eb9422a949bbca80d7abc516eba0d9467f14 (diff) |
Do not preserve permissions and acls when copying files from one local git repository to another. Timestamps are still preserved as long as cp --preserve=timestamps is supported.
This avoids cp -a overriding the default mode acls that the user might have
set in a git repository.
With GNU cp, this behavior change should not be a breaking change, because
git-anex also uses rsync sometimes in the same situation, and has only ever
preserved timestamps when using rsync.
Systems without GNU cp will no longer use cp -a, but instead just cp.
So, timestamps will no longer be preserved. Preserving timestamps when
copying between repos is not guaranteed anyway.
Closes: #729757
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Content.hs | 2 | ||||
-rw-r--r-- | Annex/Content/Direct.hs | 2 | ||||
-rw-r--r-- | Annex/Direct.hs | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs index 86b78c04e..6e5131f77 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -580,7 +580,7 @@ preseedTmp key file = go =<< inAnnex key ( return True , do s <- calcRepo $ gitAnnexLocation key - liftIO $ copyFileExternal s file + liftIO $ copyFileExternal CopyTimeStamps s file ) {- Blocks writing to an annexed file, and modifies file permissions to diff --git a/Annex/Content/Direct.hs b/Annex/Content/Direct.hs index b249e0557..d9e1535f3 100644 --- a/Annex/Content/Direct.hs +++ b/Annex/Content/Direct.hs @@ -210,7 +210,7 @@ addContentWhenNotPresent key contentfile associatedfile = do v <- isAnnexLink associatedfile when (Just key == v) $ replaceFile associatedfile $ - liftIO . void . copyFileExternal contentfile + liftIO . void . copyFileExternal CopyAllMetaData contentfile updateInodeCache key associatedfile {- Some filesystems get new inodes each time they are mounted. diff --git a/Annex/Direct.hs b/Annex/Direct.hs index 7b91cc342..76a6f27dc 100644 --- a/Annex/Direct.hs +++ b/Annex/Direct.hs @@ -357,7 +357,7 @@ toDirectGen k f = do `catchIO` (\_ -> freezeContent loc) fromdirect loc = do replaceFile f $ - liftIO . void . copyFileExternal loc + liftIO . void . copyFileExternal CopyAllMetaData loc updateInodeCache k f {- Removes a direct mode file, while retaining its content in the annex |