Merge branch 'master' into ospath

This commit is contained in:
Joey Hess 2025-01-30 15:06:05 -04:00
commit 96c953a4b7
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
13 changed files with 117 additions and 14 deletions

View file

@ -52,7 +52,7 @@ environment:
# Windows core tests
- ID: WinP39core
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
STACK_ROOT: "c:\\sr"
# MacOS core tests
- ID: MacP38core
@ -73,7 +73,7 @@ skip_commits:
cache:
- C:\sr -> stack.yaml
- C:\Users\appveyor\AppData\Local\Programs\stack -> stack.yaml
- /Users/appveyor/.stack -> stack.yaml
- C:\projects\git-annex\.stack-work -> stack.yaml
# turn of support for MS project build support (not needed)
build: off

View file

@ -40,12 +40,14 @@ import Control.Concurrent
import Control.Concurrent.STM
import Control.Concurrent.Async
import qualified Data.ByteString as B
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as L
import qualified System.FilePath.ByteString as P
import qualified Data.Map as M
import qualified Data.Set as S
#ifndef mingw32_HOST_OS
import qualified Data.ByteString as BS
import System.IO.Unsafe
#endif
proxyRemoteSide :: ProtocolVersion -> Bypass -> Remote -> Annex RemoteSide
proxyRemoteSide clientmaxversion bypass r
@ -262,7 +264,11 @@ proxySpecialRemote protoversion r ihdl ohdl owaitv oclosedv mexportdb = go
proxyget offset af k = withproxytmpfile k $ \tmpfile -> do
let retrieve = tryNonAsync $ Remote.retrieveKeyFile r k af
(fromRawFilePath tmpfile) nullMeterUpdate vc
#ifndef mingw32_HOST_OS
ordered <- Remote.retrieveKeyFileInOrder r
#else
_ <- Remote.retrieveKeyFileInOrder r
#endif
case fromKey keySize k of
#ifndef mingw32_HOST_OS
Just size | size > 0 && ordered -> do

View file

@ -37,9 +37,9 @@ import qualified Git.Types
import qualified Git.Ref
import qualified Git.LsTree
import qualified Git.FilePath
import qualified Git.Bundle
import qualified Annex.Locations
#ifndef mingw32_HOST_OS
import qualified Git.Bundle
import qualified Types.GitConfig
#endif
import qualified Types.TrustLevel
@ -452,7 +452,7 @@ test_git_remote_annex exporttree
git_annex "get" [annexedfile] "get from origin special remote"
diruuid="89ddefa4-a04c-11ef-87b5-e880882a4f98"
#else
test_git_remote_annex exporttree =
test_git_remote_annex _exporttree =
-- git-remote-annex is not currently installed on Windows
return ()
#endif

View file

@ -70,13 +70,11 @@ openLock sharemode f = do
Right h -> Just h
#else
h <- withTString (fromRawFilePath f') $ \c_f ->
c_CreateFile c_f gENERIC_READ sharemode security_attributes
c_CreateFile c_f gENERIC_READ sharemode (maybePtr Nothing)
oPEN_ALWAYS fILE_ATTRIBUTE_NORMAL (maybePtr Nothing)
return $ if h == iNVALID_HANDLE_VALUE
then Nothing
else Just h
where
security_attributes = maybePtr Nothing
#endif
dropLock :: LockHandle -> IO ()

View file

@ -78,7 +78,7 @@ moveFile src dest = tryIO (R.rename src dest) >>= onrename
case r of
(Left _) -> return False
(Right s) -> return $ isDirectory s
#endif
copyright :: Copyright
copyright = author JoeyHess (2022-11)
#endif

View file

@ -62,4 +62,4 @@ make[3]: *** [Makefile:156: Build/Standalone] Error 1
make[3]: Leaving directory '/home/runner/work/git-annex/git-annex/git-annex-source'
make[2]: *** [Makefile:164: linuxstandalone] Error 2
```
> [[done]] --[[Joey]]

View file

@ -0,0 +1,68 @@
### Please describe the problem.
Trying to copy annexed files to an lfs server via the configured http schemed url results in an error of this form:
[[!format sh """
$ git-annex copy -t lfsonly
copy mod_access_compat.so (HttpExceptionRequest Request {
host = "computer-ubul.local"
port = 5965
secure = True
requestHeaders = [("Accept","application/vnd.git-lfs+json"),("Content-Type","application/vnd.git-lfs+json"),("User-Agent","git-annex/10.20241031-1~ndall+1")]
path = ".git/info/lfs/objects/batch"
queryString = ""
method = "POST"
proxy = Nothing
rawBody = False
redirectCount = 10
responseTimeout = ResponseTimeoutDefault
requestVersion = HTTP/1.1
proxySecureMode = ProxySecureWithConnect
}
(InternalException (HandshakeFailed (Error_Packet_Parsing "Failed reading: invalid header type: 72\nFrom:\theader\n\n")))) failed
copy mod_autoindex.so (HttpExceptionRequest Request {
host = "computer-ubul.local"
port = 5965
secure = True
requestHeaders = [("Accept","application/vnd.git-lfs+json"),("Content-Type","application/vnd.git-lfs+json"),("User-Agent","git-annex/10.20241031-1~ndall+1")]
path = ".git/info/lfs/objects/batch"
queryString = ""
method = "POST"
proxy = Nothing
rawBody = False
redirectCount = 10
responseTimeout = ResponseTimeoutDefault
requestVersion = HTTP/1.1
proxySecureMode = ProxySecureWithConnect
}
(InternalException (HandshakeFailed (Error_Packet_Parsing "Failed reading: invalid header type: 72\nFrom:\theader\n\n")))) failed
copy: 2 failed
"""]]
From what I can see, there is no way to work around this. Unlike, for example, the S3 special remotes, initremote doesn't take a protocol=http setting.
### What steps will reproduce the problem?
[[!format sh """
$ git-annex initremote lfsonly type=git-lfs encryption=none url=http://computer-ubul.local:5965/
initremote lfsonly ok
(recording state in git...)
$ git config annex.security.allowed-ip-addresses 172.17.0.1 # required to overcome ConnectionRestricted error
$ git-annex copy -t lfsonly
... eror from above
"""]]
### What version of git-annex are you using? On what operating system?
git-annex/10.20241031-1~ndall+1 on Ubuntu 22.04 LTS:
Linux computer-ubul 6.8.0-40-generic #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30 17:30:19 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
### Please provide any additional information below.
Nil
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Love git-annex. Long time supporter.

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="jnkl"
avatar="http://cdn.libravatar.org/avatar/2ab576f3bf2e0d96b1ee935bb7f33dbe"
subject="comment 6"
date="2025-01-30T18:52:14Z"
content="""
Thank you!
"""]]

View file

@ -0,0 +1 @@
It seems that things like `git annex wanted . present` cause network activity, maybe git-annex fetches remotes and tries to look up IDs and such. I didn't find a general flag to disables this. Something like `--offline` would be nice for scripts in networks that might hang indefinitely in certain situations. Does this exist? 🤔

View file

@ -0,0 +1 @@
What does the ```--fast``` option in ```git annex get -A --fast``` do?

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2025-01-30T18:56:04Z"
content="""
Nothing. --fast happens to be parsed as a global option so it's
accepted with every command, but it does not change the usual behavior of
`git-annex get` at all.
Commands like `git-annex copy`
that implement a different behavior for --fast have it documented
in their individual man pages.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="dmcardle"
avatar="http://cdn.libravatar.org/avatar/b79468a0d03ec3ec7acbae547c4fa994"
subject="comment 2"
date="2025-01-30T13:56:30Z"
content="""
I just created rclone [issue #8349](https://github.com/rclone/rclone/issues/8349) to track this.
"""]]

View file

@ -341,25 +341,25 @@ content from the key-value store.
Initializes a new cluster.
See [[git-annex-initcluster](1) for details.
See [[git-annex-initcluster]](1) for details.
* `updatecluster`
Update records of cluster nodes.
See [[git-annex-updatecluster](1) for details.
See [[git-annex-updatecluster]](1) for details.
* `extendcluster`
Adds an additional gateway to a cluster.
See [[git-annex-extendcluster](1) for details.
See [[git-annex-extendcluster]](1) for details.
* `updateproxy`
Update records with proxy configuration.
See [[git-annex-updateproxy](1) for details.
See [[git-annex-updateproxy]](1) for details.
* `schedule repository [expression]`