Merge branch 'master' into ospath
This commit is contained in:
commit
8021d22955
14 changed files with 79 additions and 10 deletions
|
@ -189,6 +189,6 @@ winLockFile pid pidfile = do
|
||||||
prefix = pidfile ++ "."
|
prefix = pidfile ++ "."
|
||||||
suffix = ".lck"
|
suffix = ".lck"
|
||||||
cleanstale = mapM_ (void . tryIO . removeFile) =<<
|
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
|
iswinlockfile f = suffix `isSuffixOf` f && prefix `isPrefixOf` f
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -70,7 +70,8 @@ watchDir dir ignored scanevents hooks = do
|
||||||
scan d = unless (ignoredPath ignored d) $
|
scan d = unless (ignoredPath ignored d) $
|
||||||
-- Do not follow symlinks when scanning.
|
-- Do not follow symlinks when scanning.
|
||||||
-- This mirrors the inotify startup scan behavior.
|
-- 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
|
where
|
||||||
go f
|
go f
|
||||||
| ignoredPath ignored f = noop
|
| ignoredPath ignored f = noop
|
||||||
|
|
|
@ -43,7 +43,8 @@ watchDir dir ignored scanevents hooks = do
|
||||||
runhook h s = maybe noop (\a -> a (filePath evt) s) (h hooks)
|
runhook h s = maybe noop (\a -> a (filePath evt) s) (h hooks)
|
||||||
|
|
||||||
scan d = unless (ignoredPath ignored d) $
|
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
|
where
|
||||||
go f
|
go f
|
||||||
| ignoredPath ignored f = noop
|
| ignoredPath ignored f = noop
|
||||||
|
|
|
@ -19,7 +19,6 @@ module Utility.Directory.Stream (
|
||||||
|
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import Control.Concurrent
|
import Control.Concurrent
|
||||||
import qualified Data.ByteString as B
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
|
@ -27,6 +26,7 @@ import Prelude
|
||||||
import qualified System.Win32 as Win32
|
import qualified System.Win32 as Win32
|
||||||
import System.FilePath
|
import System.FilePath
|
||||||
#else
|
#else
|
||||||
|
import qualified Data.ByteString as B
|
||||||
import qualified System.Posix.Directory.ByteString as Posix
|
import qualified System.Posix.Directory.ByteString as Posix
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,6 @@ import System.File.OsPath
|
||||||
import Utility.Path.Windows
|
import Utility.Path.Windows
|
||||||
import Utility.OsPath
|
import Utility.OsPath
|
||||||
import System.IO (IO, Handle, IOMode)
|
import System.IO (IO, Handle, IOMode)
|
||||||
import System.OsPath (OsPath)
|
|
||||||
import qualified System.File.OsPath as O
|
import qualified System.File.OsPath as O
|
||||||
import qualified Data.ByteString as B
|
import qualified Data.ByteString as B
|
||||||
import qualified Data.ByteString.Lazy as L
|
import qualified Data.ByteString.Lazy as L
|
||||||
|
|
|
@ -17,7 +17,6 @@ module Utility.FileSize (
|
||||||
#ifdef mingw32_HOST_OS
|
#ifdef mingw32_HOST_OS
|
||||||
import Control.Exception (bracket)
|
import Control.Exception (bracket)
|
||||||
import System.IO
|
import System.IO
|
||||||
import Utility.FileSystemEncoding
|
|
||||||
import qualified Utility.FileIO as F
|
import qualified Utility.FileIO as F
|
||||||
import Utility.OsPath
|
import Utility.OsPath
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -179,10 +179,10 @@ feedRead cmd params passphrase feeder reader = do
|
||||||
go (passphrasefd ++ params)
|
go (passphrasefd ++ params)
|
||||||
#else
|
#else
|
||||||
-- store the passphrase in a temp file for gpg
|
-- 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 $ B.hPutStr h passphrase
|
||||||
liftIO $ hClose h
|
liftIO $ hClose h
|
||||||
let passphrasefile = [Param "--passphrase-file", File tmpfile]
|
let passphrasefile = [Param "--passphrase-file", File (fromosPath tmpfile)]
|
||||||
go $ passphrasefile ++ params
|
go $ passphrasefile ++ params
|
||||||
#endif
|
#endif
|
||||||
where
|
where
|
||||||
|
|
|
@ -75,9 +75,9 @@ openLock sharemode f = do
|
||||||
return $ if h == iNVALID_HANDLE_VALUE
|
return $ if h == iNVALID_HANDLE_VALUE
|
||||||
then Nothing
|
then Nothing
|
||||||
else Just h
|
else Just h
|
||||||
#endif
|
|
||||||
where
|
where
|
||||||
security_attributes = maybePtr Nothing
|
security_attributes = maybePtr Nothing
|
||||||
|
#endif
|
||||||
|
|
||||||
dropLock :: LockHandle -> IO ()
|
dropLock :: LockHandle -> IO ()
|
||||||
dropLock = closeHandle
|
dropLock = closeHandle
|
||||||
|
|
|
@ -163,7 +163,7 @@ feedRead cmd subcmd params password emptydirectory feeder reader = do
|
||||||
withTmpFile (toOsPath "sop") $ \tmpfile h -> do
|
withTmpFile (toOsPath "sop") $ \tmpfile h -> do
|
||||||
liftIO $ B.hPutStr h password
|
liftIO $ B.hPutStr h password
|
||||||
liftIO $ hClose h
|
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,
|
-- Don't need to pass emptydirectory since @FD is not used,
|
||||||
-- and so tmpfile also does not need to be made absolute.
|
-- and so tmpfile also does not need to be made absolute.
|
||||||
case emptydirectory of
|
case emptydirectory of
|
||||||
|
|
34
doc/bugs/dead_clone_easily_dead_when_not_intended_.mdwn
Normal file
34
doc/bugs/dead_clone_easily_dead_when_not_intended_.mdwn
Normal 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]]
|
|
@ -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`?
|
||||||
|
"""]]
|
|
@ -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 ;)
|
||||||
|
"""]]
|
|
@ -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)
|
||||||
|
|
||||||
|
"""]]
|
|
@ -25,6 +25,7 @@ status.
|
||||||
not yet used, and would eliminate a lot of fromRawFilePaths.
|
not yet used, and would eliminate a lot of fromRawFilePaths.
|
||||||
Make Utility.SystemDirectory import it when built with OsPath,
|
Make Utility.SystemDirectory import it when built with OsPath,
|
||||||
and the remaining 6 hours or work will explain itself..
|
and the remaining 6 hours or work will explain itself..
|
||||||
|
This has been started in the `ospath` branch.
|
||||||
|
|
||||||
[[!tag confirmed]]
|
[[!tag confirmed]]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue