diff --git a/.appveyor.yml b/.appveyor.yml index 428159e0ff..b2a518e917 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -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 diff --git a/Annex/Proxy.hs b/Annex/Proxy.hs index 6fb739b30c..fe11be06b3 100644 --- a/Annex/Proxy.hs +++ b/Annex/Proxy.hs @@ -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 diff --git a/Test.hs b/Test.hs index 6c231c9859..2bc999d0f2 100644 --- a/Test.hs +++ b/Test.hs @@ -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 diff --git a/Utility/LockFile/Windows.hs b/Utility/LockFile/Windows.hs index 9f35ec1129..8e6c6d2905 100644 --- a/Utility/LockFile/Windows.hs +++ b/Utility/LockFile/Windows.hs @@ -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 () diff --git a/Utility/MoveFile.hs b/Utility/MoveFile.hs index 95cd716c4b..ccd37ff109 100644 --- a/Utility/MoveFile.hs +++ b/Utility/MoveFile.hs @@ -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 diff --git a/doc/bugs/FTBFS_for_the_past_week__58___Variable_not_in_scope.mdwn b/doc/bugs/FTBFS_for_the_past_week__58___Variable_not_in_scope.mdwn index 14da37c15f..46d29678d7 100644 --- a/doc/bugs/FTBFS_for_the_past_week__58___Variable_not_in_scope.mdwn +++ b/doc/bugs/FTBFS_for_the_past_week__58___Variable_not_in_scope.mdwn @@ -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]] diff --git a/doc/bugs/git-lfs_special_insists_on_https.mdwn b/doc/bugs/git-lfs_special_insists_on_https.mdwn new file mode 100644 index 0000000000..62c62f438a --- /dev/null +++ b/doc/bugs/git-lfs_special_insists_on_https.mdwn @@ -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. diff --git a/doc/forum/Deduplication_between_two_repos_on_the_same_drive__63__/comment_6_8a4ac94a9184f7ab275ba246489323c3._comment b/doc/forum/Deduplication_between_two_repos_on_the_same_drive__63__/comment_6_8a4ac94a9184f7ab275ba246489323c3._comment new file mode 100644 index 0000000000..963254acf2 --- /dev/null +++ b/doc/forum/Deduplication_between_two_repos_on_the_same_drive__63__/comment_6_8a4ac94a9184f7ab275ba246489323c3._comment @@ -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! +"""]] diff --git a/doc/forum/Forcing_offline_behavior.mdwn b/doc/forum/Forcing_offline_behavior.mdwn new file mode 100644 index 0000000000..a11989e06e --- /dev/null +++ b/doc/forum/Forcing_offline_behavior.mdwn @@ -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? 🤔 diff --git a/doc/forum/__34__--fast__34___option_for_git_annex_get__63__.mdwn b/doc/forum/__34__--fast__34___option_for_git_annex_get__63__.mdwn new file mode 100644 index 0000000000..38fc6610ae --- /dev/null +++ b/doc/forum/__34__--fast__34___option_for_git_annex_get__63__.mdwn @@ -0,0 +1 @@ +What does the ```--fast``` option in ```git annex get -A --fast``` do? diff --git a/doc/forum/__34__--fast__34___option_for_git_annex_get__63__/comment_1_276bf7e33acbc8b633be799b03c49d82._comment b/doc/forum/__34__--fast__34___option_for_git_annex_get__63__/comment_1_276bf7e33acbc8b633be799b03c49d82._comment new file mode 100644 index 0000000000..adc7ac4f0a --- /dev/null +++ b/doc/forum/__34__--fast__34___option_for_git_annex_get__63__/comment_1_276bf7e33acbc8b633be799b03c49d82._comment @@ -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. +"""]] diff --git a/doc/forum/b2_rclone_initremote_failed__58___empty_folders/comment_2_f65aeea70b85745de1fbecb6fcce66d1._comment b/doc/forum/b2_rclone_initremote_failed__58___empty_folders/comment_2_f65aeea70b85745de1fbecb6fcce66d1._comment new file mode 100644 index 0000000000..85b5e78c61 --- /dev/null +++ b/doc/forum/b2_rclone_initremote_failed__58___empty_folders/comment_2_f65aeea70b85745de1fbecb6fcce66d1._comment @@ -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. +"""]] diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 869686883a..620aee61cd 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -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]`