Merge branch 'master' into ospath

This commit is contained in:
Joey Hess 2025-01-24 12:02:35 -04:00
commit 8021d22955
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
14 changed files with 79 additions and 10 deletions

View file

@ -189,6 +189,6 @@ winLockFile pid pidfile = do
prefix = pidfile ++ "."
suffix = ".lck"
cleanstale = mapM_ (void . tryIO . removeFile) =<<
(filter iswinlockfile <$> dirContents (fromRawFilePath (parentDir (toRawFilePath pidfile))))
(filter iswinlockfile . map fromRawFilePath <$> dirContents (parentDir (toRawFilePath pidfile)))
iswinlockfile f = suffix `isSuffixOf` f && prefix `isPrefixOf` f
#endif

View file

@ -70,7 +70,8 @@ watchDir dir ignored scanevents hooks = do
scan d = unless (ignoredPath ignored d) $
-- Do not follow symlinks when scanning.
-- This mirrors the inotify startup scan behavior.
mapM_ go =<< emptyWhenDoesNotExist (dirContentsRecursiveSkipping (const False) False d)
mapM_ (go . fromRawFilePath) =<< emptyWhenDoesNotExist
(dirContentsRecursiveSkipping (const False) False (toRawFilePath d))
where
go f
| ignoredPath ignored f = noop

View file

@ -43,7 +43,8 @@ watchDir dir ignored scanevents hooks = do
runhook h s = maybe noop (\a -> a (filePath evt) s) (h hooks)
scan d = unless (ignoredPath ignored d) $
mapM_ go =<< emptyWhenDoesNotExist (dirContentsRecursiveSkipping (const False) False d)
mapM_ (go . fromRawFilePath) =<< emptyWhenDoesNotExist
(dirContentsRecursiveSkipping (const False) False (toRawFilePath d))
where
go f
| ignoredPath ignored f = noop

View file

@ -19,7 +19,6 @@ module Utility.Directory.Stream (
import Control.Monad
import Control.Concurrent
import qualified Data.ByteString as B
import Data.Maybe
import Prelude
@ -27,6 +26,7 @@ import Prelude
import qualified System.Win32 as Win32
import System.FilePath
#else
import qualified Data.ByteString as B
import qualified System.Posix.Directory.ByteString as Posix
#endif

View file

@ -36,7 +36,6 @@ import System.File.OsPath
import Utility.Path.Windows
import Utility.OsPath
import System.IO (IO, Handle, IOMode)
import System.OsPath (OsPath)
import qualified System.File.OsPath as O
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as L

View file

@ -17,7 +17,6 @@ module Utility.FileSize (
#ifdef mingw32_HOST_OS
import Control.Exception (bracket)
import System.IO
import Utility.FileSystemEncoding
import qualified Utility.FileIO as F
import Utility.OsPath
#else

View file

@ -179,10 +179,10 @@ feedRead cmd params passphrase feeder reader = do
go (passphrasefd ++ params)
#else
-- store the passphrase in a temp file for gpg
withTmpFile "gpg" $ \tmpfile h -> do
withTmpFile (toOsPath "gpg") $ \tmpfile h -> do
liftIO $ B.hPutStr h passphrase
liftIO $ hClose h
let passphrasefile = [Param "--passphrase-file", File tmpfile]
let passphrasefile = [Param "--passphrase-file", File (fromosPath tmpfile)]
go $ passphrasefile ++ params
#endif
where

View file

@ -75,9 +75,9 @@ openLock sharemode f = do
return $ if h == iNVALID_HANDLE_VALUE
then Nothing
else Just h
#endif
where
security_attributes = maybePtr Nothing
#endif
dropLock :: LockHandle -> IO ()
dropLock = closeHandle

View file

@ -163,7 +163,7 @@ feedRead cmd subcmd params password emptydirectory feeder reader = do
withTmpFile (toOsPath "sop") $ \tmpfile h -> do
liftIO $ B.hPutStr h password
liftIO $ hClose h
let passwordfile = [Param $ "--with-password="++tmpfile]
let passwordfile = [Param $ "--with-password=" ++ fromOsPath tmpfile]
-- Don't need to pass emptydirectory since @FD is not used,
-- and so tmpfile also does not need to be made absolute.
case emptydirectory of

View file

@ -0,0 +1,34 @@
### Please describe the problem.
Current syntax of `dead` online at git annex dead [repository ...] [--key somekey ...] says
`git annex dead [repository ...] [--key somekey ...]`
which is also incorrect rendering I think since it is
```
[d31548v@ndoli tmp]$ git annex dead --help
git-annex dead - hide a lost repository or key
Usage: git-annex dead [[REPOSITORY ...] | [--key KEY]]
```
so it is EITHER to announce REPOSITORY or a KEY.
Naive/new/quick users, since many annex commands take file paths as arguments could provide `dead` with both - repository and local paths, e.g. `git annex dead here */*.nii.gz` or alike. But then annex proceeds with marking `here` dead while then erroring out on paths:
```shell
(datalad-dev) [d78092t@ndoli 1080_wasabi]$ git-annex dead here sub-SID000743/ses-01/func/*.nii
dead here (recording state in git...)
ok
git-annex: there is no available git remote named "sub-SID000743/ses-01/func/sub-SID000743_ses-01_task-hyperalignment_acq-mb8_run-04_bold.nii"
```
which is correct/expected behavior given the fact that if RTFM then those are to be taken as repositories.
But I wondered if may be `git annex` could/should become more "protective" and fail early if any of provided repositories is "not available"?
[[!meta author=yoh]]
[[!tag projects/openneuro]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 1"
date="2025-01-23T15:53:39Z"
content="""
is there `git annex undead` to easily mitigate users doing what they should have not done? ;-)
Would it be sufficient to just remove the corresponding `X` line from `trust.log`?
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 2"
date="2025-01-23T21:33:25Z"
content="""
d'oh -- it is `git annex semitrust here` to return the \"trust\" into a dead beast ;)
"""]]

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec"
nickname="beryllium"
avatar="http://cdn.libravatar.org/avatar/62b67d68e918b381e7e9dd6a96c16137"
subject="comment 4"
date="2025-01-24T08:04:27Z"
content="""
I don't know if this is expected behaviour, but for some files I imported from an importtree, when I use git-annex whereused --key with the correct key, nothing is shown unless I also add --historical
And then I am shown the importtree branch information. It doesn't seem to make sense to me. The file is definitely present, and git-annex whereis confirms this, as does git-annex lock/unlock
Willing to add more context if this is a little too vague
Shaddy Baddah (beryllium at shaddybaddah dot name)
"""]]

View file

@ -25,6 +25,7 @@ status.
not yet used, and would eliminate a lot of fromRawFilePaths.
Make Utility.SystemDirectory import it when built with OsPath,
and the remaining 6 hours or work will explain itself..
This has been started in the `ospath` branch.
[[!tag confirmed]]