Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2023-12-08 14:26:26 -04:00
commit 60d00fdd33
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
10 changed files with 1072 additions and 88 deletions

View file

@ -0,0 +1,779 @@
### Please describe the problem.
Building an optimized Windows binary with flag `Production` active doesn't result in one that is able
to pass its test suite.
### What steps will reproduce the problem?
`stack --stack-yaml stack-lts-18.13.yaml setup && stack --stack-yaml stack-lts-18.13.yaml build --flag 'git-annex:Production' --flag 'git-annex:-Crypton'`
(I found that the `Crypton` flag needs to be explicitly negated due to the `Production` flag somehow making it active causing
the build to fail because of a missing dependency `crypton`. A bug in Cabal, perhaps?)
Then run the test suite in Git Bash in a directory that contains the executable and the requisite DLLs (the latter
obtained by way of `stack exec ldd -- git-annex.exe` and copying over the ones in `/mingw64`). Observe the following
(`just` is a cross-platform command runner that I use instead of GNU make.)
[[!format sh """
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ just tests-new
/usr/bin/time ./git-annex.exe test 2>&1 | tee git-annex.test.LOG~200
All 0 tests passed (0.00s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.36s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
crypto: SKIP
Use -p '/crypto/' to rerun this test only.
uninit (in git-annex branch): SKIP
Use -p '/uninit (in git-annex branch)/' to rerun this test only.
conflict resolution symlink bit: SKIP
Use -p '/conflict resolution symlink bit/' to rerun this test only.
union merge regression: SKIP
Use -p '/union merge regression/' to rerun this test only.
unused: SKIP
Use -p '/unused/' to rerun this test only.
fsck (bare): SKIP
Use -p '/fsck (bare)/' to rerun this test only.
lock: SKIP
Use -p '/Repo Tests v10 adjusted unlocked branch.lock/' to rerun this test only.
drop (with remote): SKIP
Use -p '/drop (with remote)/' to rerun this test only.
log: SKIP
Use -p '/log/' to rerun this test only.
add extras: SKIP
Use -p '/add extras/' to rerun this test only.
11 out of 12 tests failed (11.65s)
[...]
"""]]
### What version of git-annex are you using? On what operating system?
[[!format sh """
git-annex version: 10.20231129-gbacd781c4fe05126219c4b5f2963677a6de01481
build flags: Assistant Webapp Pairing TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV
dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.29 DAV-1.3.4 feed-1.3.2.0 ghc-8.10.7 http-client-0.7.9 pe
rsistent-sqlite-2.13.0.3 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.1.2
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SH
A3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512
BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLA
KE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM UR
L X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg h
ook external
operating system: mingw32 x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 2 3 4 5 6 7 8 9 10
"""]]
Windows 10 version 22H2 (build 19045.3693), 64 bit.
### Please provide any additional information below.
This is how I build my "production" version of git-annex (in PowerShell):
[[!format sh """
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +6 ~0 -0 !]> just setup-build
cd 'C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P' && stack --stack-yaml stack-lts-18.13.yaml setup --verbose 2>&1 | & $env:GNU_TEE_CMD stack.setup---verbose.LOG~101
Version 2.13.1, Git revision 8102bb8afce90fc954f48efae38b87f37cabc988 x86_64 hpack-0.36.0
2023-12-08 16:24:52.098843: [debug] Loading project config file stack-lts-18.13.yaml
2023-12-08 16:24:52.130837: [debug] Use of Casa server enabled: (CasaRepoPrefix "https://casa.stackage.org", 1280).
2023-12-08 16:24:52.142835: [debug] (SQL) SELECT COUNT(*) FROM "last_performed" WHERE ("action"=?) AND ("timestamp">=?); [PersistInt64 1,PersistUTCTime 2023-12-07 14:24:52.1418345 UTC]
2023-12-08 16:24:52.144833: [debug] Using package location completions from a lock file
2023-12-08 16:24:52.154836: [debug] Loaded snapshot from Pantry database.
2023-12-08 16:24:52.575861: [debug] Prefetching git repos: []
2023-12-08 16:24:52.576863: [debug] []
2023-12-08 16:24:52.614841: [debug] Asking for a supported GHC version
2023-12-08 16:24:52.624838: [debug] Installed tools:
- msys2-20200903
- ghc-9.6.2
- ghc-9.0.2
- ghc-8.8.4
- ghc-8.8.3
- ghc-8.6.5
- ghc-8.4.3
- ghc-8.10.7
- ghc-8.10.4
2023-12-08 16:24:52.625841: [debug] Potential GHC builds: standard
2023-12-08 16:24:52.625841: [debug] Found already installed GHC builds: standard
2023-12-08 16:24:52.630839: [debug] Performing a sanity check on: C:\Users\jkniiv\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.7\bin\ghc-8.10.7.exe
2023-12-08 16:24:52.632844: [debug] Run process within C:\Users\jkniiv\AppData\Local\Temp\stack-sanity-check-2b0507b6fb5a74f8\: C:\Users\jkniiv\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.7\bin\ghc-8.10.7.exe C:\Users\jkniiv\AppData\Local\Temp\stack-sanity-check-2b0507b6fb5a74f8\Main.hs -no-user-package-db -hide-all-packages "-package base" "-package Cabal"
2023-12-08 16:25:16.713070: [debug] Process finished in 24079ms: C:\Users\jkniiv\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.7\bin\ghc-8.10.7.exe C:\Users\jkniiv\AppData\Local\Temp\stack-sanity-check-2b0507b6fb5a74f8\Main.hs -no-user-package-db -hide-all-packages "-package base" "-package Cabal"
2023-12-08 16:25:16.721070: [debug] (SQL) SELECT "id","actual_version","arch","ghc_path","ghc_size","ghc_modified","ghc_pkg_path","runghc_path","haddock_path","cabal_version","global_db","global_db_cache_size","global_db_cache_modified","info","global_dump" FROM "compiler_cache" WHERE "ghc_path"=?; [PersistText "C:\\Users\\jkniiv\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.10.7\\bin\\ghc-8.10.7.exe"]
2023-12-08 16:25:16.806072: [debug] Loaded compiler information from cache
2023-12-08 16:25:16.806072: [debug] Asking for a supported GHC version
2023-12-08 16:25:16.806072: [info] Stack will use a sandboxed GHC it installed. To use this GHC and packages outside of a project,
consider using: stack ghc, stack ghci, stack runghc, or stack exec.
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +6 ~0 -0 !]> just build-production
cd 'C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P' && stack --stack-yaml stack-lts-18.13.yaml build --flag 'git-annex:Production' --flag 'git-annex:-Crypton' 2>&1 | & $env:GNU_TEE_CMD stack.build---flag-git-annex_Production.LOG~102
Building all executables for git-annex once. After a successful build of all of them, only specified
executables will be rebuilt.
git-annex> configure (exe)
[ 1 of 22] Compiling Author ( Author.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Author.o )
[ 2 of 22] Compiling Utility.Data ( Utility\Data.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Data.o )
[ 3 of 22] Compiling Utility.FileSystemEncoding ( Utility\FileSystemEncoding.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\FileSystemEncoding.o )
[ 4 of 22] Compiling Utility.Debug ( Utility\Debug.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Debug.o )
[ 5 of 22] Compiling Utility.Misc ( Utility\Misc.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Misc.o )
[ 6 of 22] Compiling Utility.Monad ( Utility\Monad.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Monad.o )
[ 7 of 22] Compiling Utility.Process.Shim ( Utility\Process\Shim.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Process\Shim.o )
[ 8 of 22] Compiling Utility.SafeOutput ( Utility\SafeOutput.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\SafeOutput.o )
[ 9 of 22] Compiling Utility.Exception ( Utility\Exception.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Exception.o )
[10 of 22] Compiling Utility.Process ( Utility\Process.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Process.o )
[11 of 22] Compiling Utility.SafeCommand ( Utility\SafeCommand.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\SafeCommand.o )
[12 of 22] Compiling Utility.Env.Basic ( Utility\Env\Basic.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Env\Basic.o )
[13 of 22] Compiling Build.Version ( Build\Version.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Build\Version.o )
[14 of 22] Compiling Utility.Split ( Utility\Split.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Split.o )
[15 of 22] Compiling Utility.DottedVersion ( Utility\DottedVersion.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\DottedVersion.o )
[16 of 22] Compiling Git.Version ( Git\Version.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Git\Version.o )
[17 of 22] Compiling Utility.SystemDirectory ( Utility\SystemDirectory.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\SystemDirectory.o )
[18 of 22] Compiling Utility.Path ( Utility\Path.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Utility\Path.o )
[19 of 22] Compiling Build.TestConfig ( Build\TestConfig.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Build\TestConfig.o )
[20 of 22] Compiling Build.Configure ( Build\Configure.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Build\Configure.o )
[21 of 22] Compiling Main ( C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\Setup.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\Main.o )
[22 of 22] Compiling StackSetupShim ( C:\\hs-stack\setup-exe-src\setup-shim-9p6GVs8J.hs, C:\\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\dist\ed8db9df\setup\StackSetupShim.o )
Linking C:\\Users\\jkniiv\\Projektit\\git-annex.branchable.com\\git-annex--BUILD-231130-10.20231129~P\\.stack-work\\dist\\ed8db9df\\setup\\setup.exe ...
checking UPGRADE_LOCATION... not available
checking git... yes
checking git version... 2.43.0.windows.1
checking cp -a... yes
checking cp -p... yes
checking cp --preserve=timestamps... yes
checking cp_reflink_supported... no
checking cp --no-preserve=xattr... yes
checking xargs -0... yes
checking rsync... no
checking curl... yes
checking bup... no
checking borg... no
checking nice... yes
checking ionice... no
checking nocache... no
checking gpg... gpg
checking lsof... not available
checking git-remote-gcrypt... not available
checking ssh connection caching... yes
Configuring git-annex-10.20231129...
git-annex> build (exe)
Preprocessing executable 'git-annex' for git-annex-10.20231129..
Building executable 'git-annex' for git-annex-10.20231129..
[ 1 of 693] Compiling Assistant.Types.BranchChange
[ 2 of 693] Compiling Assistant.Types.ThreadName
[ 3 of 693] Compiling Assistant.Types.TransferSlots
[...snip...]
[691 of 693] Compiling Command.Assistant
[692 of 693] Compiling CmdLine.GitAnnex
[693 of 693] Compiling Main
Linking .stack-work\\dist\\ed8db9df\\build\\git-annex\\git-annex.exe ...
git-annex> copy/register
Installing executable git-annex in C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P\.stack-work\install\f241563d\bin
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +6 ~0 -0 !]> cp .\.stack-work\install\f241563d\bin\git-annex.exe .
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +7 ~0 -0 !]> .\git-annex.exe version > git-annex.version.TXT
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +7 ~0 -0 !]> head -1 .\git-annex.version.TXT
git-annex version: 10.20231129-gbacd781c4fe05126219c4b5f2963677a6de01481
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +7 ~0 -0 !]> cat build.TXT
git-annex--BUILD-231130-10.20231129~P
resolver: lts-18.13
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +7 ~0 -0 !]> just copy-dlls-over-to-here
+ PATH='/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/PowerShell/7:<theRestRedacted />'
+ cd 'C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P'
++ stack exec ldd -- git-annex.exe
++ grep /mingw64
++ cut '-d ' -f3
+ dlls_to_copy='/mingw64/bin/libmagic-1.dll
/mingw64/bin/libsystre-0.dll
/mingw64/bin/libtre-5.dll
/mingw64/bin/libintl-8.dll'
+ stack exec cp -- -pv /mingw64/bin/libmagic-1.dll /mingw64/bin/libsystre-0.dll /mingw64/bin/libtre-5.dll /mingw64/bin/libintl-8.dll .
'C:/Users/jkniiv/AppData/Local/Programs/stack/x86_64-windows/msys2-20200903/mingw64/bin/libmagic-1.dll' -> './libmagic-1.dll'
'C:/Users/jkniiv/AppData/Local/Programs/stack/x86_64-windows/msys2-20200903/mingw64/bin/libsystre-0.dll' -> './libsystre-0.dll'
'C:/Users/jkniiv/AppData/Local/Programs/stack/x86_64-windows/msys2-20200903/mingw64/bin/libtre-5.dll' -> './libtre-5.dll'
'C:/Users/jkniiv/AppData/Local/Programs/stack/x86_64-windows/msys2-20200903/mingw64/bin/libintl-8.dll' -> './libintl-8.dll'
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P [BUILD-231130-10.20231129 +12 ~0 -0 !]> just install-files-to-annx-test-dir
+ PATH='/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/PowerShell/7:<theRestRedacted />'
+ cd 'C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-231130-10.20231129~P'
++ shopt -s nullglob
++ echo git-annex.exe libintl-8.dll libmagic-1.dll libsystre-0.dll libtre-5.dll build.TXT git-annex.version.TXT stack.build---flag-git-annex_Production.LOG~102 stack.build.LOG~102 stack.setup---verbose.LOG~101 CHANGELOG
+ files_to_copy='git-annex.exe libintl-8.dll libmagic-1.dll libsystre-0.dll libtre-5.dll build.TXT git-annex.version.TXT stack.build---flag-git-annex_Production.LOG~102 stack.build.LOG~102 stack.setup---verbose.LOG~101 CHANGELOG'
+ cp -pv git-annex.exe libintl-8.dll libmagic-1.dll libsystre-0.dll libtre-5.dll build.TXT git-annex.version.TXT stack.build---flag-git-annex_Production.LOG~102 stack.build.LOG~102 stack.setup---verbose.LOG~101 CHANGELOG .annx-test
'git-annex.exe' -> '.annx-test/git-annex.exe'
'libintl-8.dll' -> '.annx-test/libintl-8.dll'
'libmagic-1.dll' -> '.annx-test/libmagic-1.dll'
'libsystre-0.dll' -> '.annx-test/libsystre-0.dll'
'libtre-5.dll' -> '.annx-test/libtre-5.dll'
'build.TXT' -> '.annx-test/build.TXT'
'git-annex.version.TXT' -> '.annx-test/git-annex.version.TXT'
'stack.build---flag-git-annex_Production.LOG~102' -> '.annx-test/stack.build---flag-git-annex_Production.LOG~102'
'stack.build.LOG~102' -> '.annx-test/stack.build.LOG~102'
'stack.setup---verbose.LOG~101' -> '.annx-test/stack.setup---verbose.LOG~101'
'CHANGELOG' -> '.annx-test/CHANGELOG'
# End of transcript or log.
"""]]
And this is how I usually run the test suite in Git Bash (with some preliminary actions to record the tests available + make
an SHA256SUMS file of the most important files in this test directory):
[[!format sh """
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P (BUILD-231130-10.20231129)
$ cd .annx-test/
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ just record-tests
./git-annex.exe test --list-tests > git-annex.test---list-tests.TXT
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ just sums check-sums
sha256sum git-annex.exe libintl-8.dll libmagic-1.dll libsystre-0.dll libtre-5.dll build.TXT git-annex.test---list-tests.
TXT git-annex.version.TXT > SHA256SUMS
sha256sum -c SHA256SUMS
git-annex.exe: OK
libintl-8.dll: OK
libmagic-1.dll: OK
libsystre-0.dll: OK
libtre-5.dll: OK
build.TXT: OK
git-annex.test---list-tests.TXT: OK
git-annex.version.TXT: OK
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ ls -l
total 73065
-rw-r--r-- 1 jkniiv 197121 429145 Dec 8 14:28 CHANGELOG
-rw-r--r-- 1 jkniiv 197121 1073 Dec 14 2022 Justfile
-rw-r--r-- 1 jkniiv 197121 664 Dec 8 16:48 SHA256SUMS
-rw-r--r-- 1 jkniiv 197121 60 Dec 8 15:27 build.TXT
-rwxr-xr-x 1 jkniiv 197121 73740800 Dec 8 16:41 git-annex.exe*
-rw-r--r-- 1 jkniiv 197121 8464 Dec 8 16:48 git-annex.test---list-tests.TXT
-rw-r--r-- 1 jkniiv 197121 1112 Dec 8 16:42 git-annex.version.TXT
-rwxr-xr-x 1 jkniiv 197121 187145 Nov 23 11:21 libintl-8.dll*
-rwxr-xr-x 1 jkniiv 197121 226435 Dec 4 20:11 libmagic-1.dll*
-rwxr-xr-x 1 jkniiv 197121 18240 Jan 17 2018 libsystre-0.dll*
-rwxr-xr-x 1 jkniiv 197121 92313 Jan 17 2018 libtre-5.dll*
-rw-r--r-- 1 jkniiv 197121 37834 Dec 8 16:41 stack.build---flag-git-annex_Production.LOG~102
-rw-r--r-- 1 jkniiv 197121 37834 Dec 8 15:45 stack.build.LOG~102
-rw-r--r-- 1 jkniiv 197121 2757 Dec 8 16:25 stack.setup---verbose.LOG~101
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ ldd git-annex.exe
ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff93f190000)
KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff93e380000)
KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff93c9d0000)
ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7ff93e870000)
msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff93d2b0000)
libmagic-1.dll => /c/Users/jkniiv/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test/libmagic-1.dll (0x7ff8fd370000)
sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7ff93e250000)
SHLWAPI.dll => /c/WINDOWS/System32/SHLWAPI.dll (0x7ff93e440000)
libsystre-0.dll => /c/Users/jkniiv/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test/libsystre-0.dll (0x6bcc0000)
RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ff93e120000)
CRYPT32.dll => /c/WINDOWS/System32/CRYPT32.dll (0x7ff93d090000)
libtre-5.dll => /c/Users/jkniiv/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test/libtre-5.dll (0x63bc0000)
ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ff93cf00000)
GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7ff93d1f0000)
win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7ff93ced0000)
libintl-8.dll => /c/Users/jkniiv/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test/libintl-8.dll (0x7ff8f3d20000)
gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7ff93ccd0000)
dbghelp.dll => /c/WINDOWS/SYSTEM32/dbghelp.dll (0x7ff93ae50000)
msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7ff93c8c0000)
USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7ff93d6c0000)
ole32.dll => /c/WINDOWS/System32/ole32.dll (0x7ff93d4e0000)
libiconv-2.dll => /c/Users/jkniiv/bin/libiconv-2.dll (0x7ff8a6e00000)
combase.dll => /c/WINDOWS/System32/combase.dll (0x7ff93e510000)
IPHLPAPI.DLL => /c/WINDOWS/SYSTEM32/IPHLPAPI.DLL (0x7ff93bbf0000)
SHELL32.dll => /c/WINDOWS/System32/SHELL32.dll (0x7ff93d900000)
WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7ff93d860000)
WINMM.dll => /c/WINDOWS/SYSTEM32/WINMM.dll (0x7ff928e00000)
CRYPTBASE.DLL => /c/WINDOWS/SYSTEM32/CRYPTBASE.DLL (0x7ff93c070000)
dbgcore.DLL => /c/WINDOWS/SYSTEM32/dbgcore.DLL (0x7ff928dc0000)
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ just tests-new
/usr/bin/time ./git-annex.exe test 2>&1 | tee git-annex.test.LOG~200
All 0 tests passed (0.00s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.36s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
crypto: SKIP
Use -p '/crypto/' to rerun this test only.
uninit (in git-annex branch): SKIP
Use -p '/uninit (in git-annex branch)/' to rerun this test only.
conflict resolution symlink bit: SKIP
Use -p '/conflict resolution symlink bit/' to rerun this test only.
union merge regression: SKIP
Use -p '/union merge regression/' to rerun this test only.
unused: SKIP
Use -p '/unused/' to rerun this test only.
fsck (bare): SKIP
Use -p '/fsck (bare)/' to rerun this test only.
lock: SKIP
Use -p '/Repo Tests v10 adjusted unlocked branch.lock/' to rerun this test only.
drop (with remote): SKIP
Use -p '/drop (with remote)/' to rerun this test only.
log: SKIP
Use -p '/log/' to rerun this test only.
add extras: SKIP
Use -p '/add extras/' to rerun this test only.
11 out of 12 tests failed (11.65s)
Tests
QuickCheck
prop_quote_unquote_roundtrip: OK (0.10s)
+++ OK, passed 1000 tests.
prop_encode_c_decode_c_roundtrip: OK (0.11s)
+++ OK, passed 1000 tests.
prop_isomorphic_key_encode: OK (0.05s)
+++ OK, passed 1000 tests.
prop_isomorphic_shellEscape: OK (0.04s)
+++ OK, passed 1000 tests.
prop_isomorphic_shellEscape_multiword: OK (1.25s)
+++ OK, passed 1000 tests.
prop_isomorphic_configEscape: OK (0.03s)
+++ OK, passed 1000 tests.
prop_parse_show_Config: OK (0.08s)
+++ OK, passed 1000 tests.
prop_upFrom_basics: OK
+++ OK, passed 1000 tests.
prop_relPathDirToFileAbs_basics: OK (0.04s)
+++ OK, passed 1000 tests.
prop_relPathDirToFileAbs_regressionTest: OK
+++ OK, passed 1 test.
prop_dirContains_regressionTest: OK
+++ OK, passed 1 test.
prop_cost_sane: OK
+++ OK, passed 1 test.
prop_matcher_sane: OK
+++ OK, passed 1 test.
prop_HmacSha1WithCipher_sane: OK
+++ OK, passed 1 test.
prop_VectorClock_sane: OK
+++ OK, passed 1 test.
prop_addMapLog_sane: OK
+++ OK, passed 1 test.
prop_verifiable_sane: OK (0.11s)
+++ OK, passed 1000 tests.
prop_segment_regressionTest: OK
+++ OK, passed 1 test.
prop_read_write_transferinfo: OK (0.06s)
+++ OK, passed 1000 tests.
prop_read_show_inodecache: OK (0.04s)
+++ OK, passed 1000 tests.
prop_parse_build_presence_log: OK (1.92s)
+++ OK, passed 1000 tests.
prop_parse_build_contentidentifier_log: OK (1.65s)
+++ OK, passed 1000 tests.
prop_read_show_TrustLevel: OK
+++ OK, passed 1 test.
prop_parse_build_TrustLevelLog: OK
+++ OK, passed 1 test.
prop_schedule_roundtrips: OK (0.01s)
+++ OK, passed 1000 tests.
prop_past_sane: OK
+++ OK, passed 1 test.
prop_duration_roundtrips: OK
+++ OK, passed 1000 tests.
prop_metadata_sane: OK (1.00s)
+++ OK, passed 1000 tests.
prop_metadata_serialize: OK (1.07s)
+++ OK, passed 1000 tests.
prop_branchView_legal: OK (1.10s)
+++ OK, passed 1000 tests.
prop_viewPath_roundtrips: OK (0.02s)
+++ OK, passed 1000 tests.
prop_view_roundtrips: OK (0.55s)
+++ OK, passed 1000 tests.
prop_viewedFile_rountrips: OK (0.04s)
+++ OK, passed 1000 tests.
prop_standardGroups_parse: OK
+++ OK, passed 1 test.
sha1 stable: OK
+++ OK, passed 1 test.
sha2_224 stable: OK
+++ OK, passed 1 test.
sha2_256 stable: OK
+++ OK, passed 1 test.
sha2_384 stable: OK
+++ OK, passed 1 test.
sha2_512 stable: OK
+++ OK, passed 1 test.
skein256 stable: OK
+++ OK, passed 1 test.
skein512 stable: OK
+++ OK, passed 1 test.
sha3_224 stable: OK
+++ OK, passed 1 test.
sha3_256 stable: OK
+++ OK, passed 1 test.
sha3_384 stable: OK
+++ OK, passed 1 test.
sha3_512 stable: OK
+++ OK, passed 1 test.
blake2s_160 stable: OK
+++ OK, passed 1 test.
blake2s_224 stable: OK
+++ OK, passed 1 test.
blake2s_256 stable: OK
+++ OK, passed 1 test.
blake2sp_224 stable: OK
+++ OK, passed 1 test.
blake2sp_256 stable: OK
+++ OK, passed 1 test.
blake2b_160 stable: OK
+++ OK, passed 1 test.
blake2b_224 stable: OK
+++ OK, passed 1 test.
blake2b_256 stable: OK
+++ OK, passed 1 test.
blake2b_384 stable: OK
+++ OK, passed 1 test.
blake2b_512 stable: OK
+++ OK, passed 1 test.
blake2bp_512 stable: OK
+++ OK, passed 1 test.
md5 stable: OK
+++ OK, passed 1 test.
HmacSha1 stable: OK
+++ OK, passed 1 test.
HmacSha224 stable: OK
+++ OK, passed 1 test.
HmacSha256 stable: OK
+++ OK, passed 1 test.
HmacSha384 stable: OK
+++ OK, passed 1 test.
HmacSha512 stable: OK
+++ OK, passed 1 test.
All 62 tests passed (9.40s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.46s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/add/' to rerun this test only.
bup remote: SKIP
Use -p '/bup remote/' to rerun this test only.
map: SKIP
Use -p '/map/' to rerun this test only.
conflict resolution movein regression: SKIP
Use -p '/conflict resolution movein regression/' to rerun this test only.
sync: SKIP
Use -p '/sync/' to rerun this test only.
migrate: SKIP
Use -p '/migrate/' to rerun this test only.
trust: SKIP
Use -p '/trust/' to rerun this test only.
move (numcopies): SKIP
Use -p '/move (numcopies)/' to rerun this test only.
unannex (with copy): SKIP
Use -p '/unannex (with copy)/' to rerun this test only.
export and import of subdir: SKIP
Use -p '/export and import of subdir/' to rerun this test only.
10 out of 11 tests failed (11.84s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.47s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
borg remote: SKIP
Use -p '/borg remote/' to rerun this test only.
uninit: SKIP
Use -p '/uninit/' to rerun this test only.
conflict resolution (mixed directory and file): SKIP
Use -p '/conflict resolution (mixed directory and file)/' to rerun this test only.
concurrent get of dup key regression: SKIP
Use -p '/concurrent get of dup key regression/' to rerun this test only.
migrate (via gitattributes): SKIP
Use -p '/migrate (via gitattributes)/' to rerun this test only.
fsck (basics): SKIP
Use -p '/fsck (basics)/' to rerun this test only.
copy: SKIP
Use -p '/copy/' to rerun this test only.
drop (no remote): SKIP
Use -p '/drop (no remote)/' to rerun this test only.
shared clone: SKIP
Use -p '/shared clone/' to rerun this test only.
add dup: SKIP
Use -p '/add dup/' to rerun this test only.
11 out of 12 tests failed (11.82s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (8.97s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
addurl: SKIP
Use -p '/addurl/' to rerun this test only.
directory remote: SKIP
Use -p '/directory remote/' to rerun this test only.
conflict resolution (nonannexed symlink): SKIP
Use -p '/conflict resolution (nonannexed symlink)/' to rerun this test only.
conflict resolution: SKIP
Use -p '$0=="Tests.Repo Tests v10 adjusted unlocked branch.conflict resolution"' to rerun this test only.
info: SKIP
Use -p '/info/' to rerun this test only.
conversion git to annexed: SKIP
Use -p '/conversion git to annexed/' to rerun this test only.
partial commit: SKIP
Use -p '/partial commit/' to rerun this test only.
move: SKIP
Use -p '/move/' to rerun this test only.
reinject: SKIP
Use -p '/reinject/' to rerun this test only.
metadata: SKIP
Use -p '/metadata/' to rerun this test only.
11 out of 12 tests failed (11.20s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.18s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
preferred content: SKIP
Use -p '/preferred content/' to rerun this test only.
upgrade: SKIP
Use -p '/upgrade/' to rerun this test only.
conflict resolution (uncommitted local file): SKIP
Use -p '/conflict resolution (uncommitted local file)/' to rerun this test only.
adjusted branch merge regression: SKIP
Use -p '/adjusted branch merge regression/' to rerun this test only.
describe: SKIP
Use -p '/describe/' to rerun this test only.
fsck (local untrusted): SKIP
Use -p '/fsck (local untrusted)/' to rerun this test only.
lock --force: SKIP
Use -p '/lock --force/' to rerun this test only.
drop (untrusted remote): SKIP
Use -p '/drop (untrusted remote)/' to rerun this test only.
view: SKIP
Use -p '/view/' to rerun this test only.
add moved link: SKIP
Use -p '/add moved link/' to rerun this test only.
11 out of 12 tests failed (11.64s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (9.02s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/Init Tests.add/' to rerun this test only.
add subdirs: SKIP
Use -p '/add subdirs/' to rerun this test only.
hook remote: SKIP
Use -p '/hook remote/' to rerun this test only.
conflict resolution (nonannexed file): SKIP
Use -p '/conflict resolution (nonannexed file)/' to rerun this test only.
transition propagation: SKIP
Use -p '/transition propagation/' to rerun this test only.
merge: SKIP
Use -p '/merge/' to rerun this test only.
fsck --from remote: SKIP
Use -p '/fsck --from remote/' to rerun this test only.
edit (pre-commit): SKIP
Use -p '/edit (pre-commit)/' to rerun this test only.
get (ssh remote): SKIP
Use -p '/get (ssh remote)/' to rerun this test only.
import: SKIP
Use -p '/import/' to rerun this test only.
ignore deleted files: SKIP
Use -p '/ignore deleted files/' to rerun this test only.
11 out of 12 tests failed (11.22s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (8.99s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/add/' to rerun this test only.
required_content: SKIP
Use -p '/required_content/' to rerun this test only.
whereis: SKIP
Use -p '/whereis/' to rerun this test only.
conflict resolution (removed file): SKIP
Use -p '/conflict resolution (removed file)/' to rerun this test only.
adjusted branch subtree regression: SKIP
Use -p '/adjusted branch subtree regression/' to rerun this test only.
find: SKIP
Use -p '/find/' to rerun this test only.
fsck (remote untrusted): SKIP
Use -p '/fsck (remote untrusted)/' to rerun this test only.
edit (no pre-commit): SKIP
Use -p '/edit (no pre-commit)/' to rerun this test only.
get: SKIP
Use -p '/get/' to rerun this test only.
magic: SKIP
Use -p '/magic/' to rerun this test only.
readonly remote: SKIP
Use -p '/readonly remote/' to rerun this test only.
11 out of 12 tests failed (11.22s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (5.91s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '/add/' to rerun this test only.
repair: SKIP
Use -p '/repair/' to rerun this test only.
rsync remote: SKIP
Use -p '/rsync remote/' to rerun this test only.
conflict resolution (mixed locked and unlocked file): SKIP
Use -p '/conflict resolution (mixed locked and unlocked file)/' to rerun this test only.
conflict resolution (adjusted branch): SKIP
Use -p '/conflict resolution (adjusted branch)/' to rerun this test only.
version: SKIP
Use -p '/Repo Tests v10 adjusted unlocked branch.version/' to rerun this test only.
conversion annexed to git: SKIP
Use -p '/conversion annexed to git/' to rerun this test only.
fix: SKIP
Use -p '/fix/' to rerun this test only.
move (ssh remote): SKIP
Use -p '/move (ssh remote)/' to rerun this test only.
unannex (no copy): SKIP
Use -p '/unannex (no copy)/' to rerun this test only.
export and import: SKIP
Use -p '/export and import/' to rerun this test only.
11 out of 12 tests failed (7.23s)
(Failures above could be due to a bug in git-annex, or an incompatibility
with utilities, such as git, installed on this system.)
Command exited with non-zero status 1
0.00user 0.04system 0:31.25elapsed 0%CPU (0avgtext+0avgdata 5248maxresident)k
0inputs+0outputs (1391major+0minor)pagefaults 0swaps
jkniiv@AINESIS MINGW64 ~/Projektit/git-annex.branchable.com/git-annex--BUILD-231130-10.20231129~P/.annx-test (BUILD-231130-10.20231129)
$ ./git-annex.exe test -p ' /Init Tests.add/'
All 0 tests passed (0.00s)
Tests
Repo Tests v10 adjusted unlocked branch
Init Tests
init: OK (5.02s)
add: FAIL
Exception: fd:4: hGetChar: invalid argument (invalid byte sequence)
Use -p '(/Init Tests.add/||/Init Tests/)&&/add/' to rerun this test only.
1 out of 2 tests failed (6.37s)
All 0 tests passed (0.00s)
(Failures above could be due to a bug in git-annex, or an incompatibility
with utilities, such as git, installed on this system.)
# End of transcript or log.
"""]]
### 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)
Sure, Git Annex is great as always. I use it several times a week with my multigigabyte
backups, where it gives structure to my image-based backup routines, so you could
say I'm a believer. :)
[[!meta author=jkniiv]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="nobodyinperson"
avatar="http://cdn.libravatar.org/avatar/736a41cd4988ede057bae805d000f4f5"
subject="Similar to initremote type=git"
date="2023-12-07T08:31:08Z"
content="""
Cool, this would reduce surprises for sure! 😀
On that note, IIRC `initremote type=git` straight up refuses to proceed if the remote does not have a UUID (i.e. has had `git annex init` run in it). Might be worth auto-init-ing here as well when you're already at it.
"""]]

View file

@ -0,0 +1,87 @@
[[!comment format=mdwn
username="kolam"
avatar="http://cdn.libravatar.org/avatar/4d2741e5e0b47928bc599b00397b5e59"
subject="comment 2"
date="2023-12-06T21:08:05Z"
content="""
Thanks Joey! Your comment is right on point.
Changed to the following and now it works as expected. The bash script is now:
```
#/usr/bin/env bash
# Just a way to access the script's directory
cd \"$(dirname \"$0\")\"
DIR=\"$(pwd)\"
# Create the 1st client repository
mkdir $DIR/client1
cd $DIR/client1
git init && git annex init
# Create the 2nd client repository
mkdir $DIR/client2
cd $DIR/client2
git init && git annex init
# Create the transfer repository
mkdir $DIR/share
cd $DIR/share
git init && git annex init
# Setup the remotes and groups for the transfer repository
cd $DIR/share
git remote add client1 $DIR/client1
git remote add client2 $DIR/client2
git annex wanted . standard
git annex group . transfer
git annex group client1 client
git annex group client2 client
git annex mincopies 2
git annex numcopies 2
git co -b main
# Setup the remotes and groups for the 1st client repository.
cd $DIR/client1
git remote add share $DIR/share
git annex wanted . standard
git annex group . client
git annex group share transfer
# git annex config --set annex.addunlocked true
git co -b main
# Setup the remotes and groups for the 2nd client repository.
cd $DIR/client2
git remote add share $DIR/share
git annex wanted . standard
git annex group . client
git annex group share transfer
# git annex config --set annex.addunlocked true
git co -b main
# Start git-annex assistant for client1 only
cd $DIR/client1 && git annex assistant
# Add a single file to the 1st client.
cd $DIR/client1
touch file.txt
# Wait for the commit to be auto created by git-annex-assistant.
sleep 3;
cd $DIR/share
git pull client1 main
git annex assistant
cd $DIR/client2
git pull share main
git annex assistant
cd $DIR/client1
echo \"My first line\" >> file.txt
```
I have other issues following that, but I'll create separate forum questions for them.
Thanks again Joey.
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="https://esgf-node.llnl.gov/esgf-idp/openid/mvhulten"
nickname="mvhulten"
avatar="http://cdn.libravatar.org/avatar/8e966234bbd87d1efb0db4a4690960faa51b28cd27f4d285b9501c132a11567b"
subject="comment 2"
date="2023-12-07T12:30:24Z"
content="""
Thank you for the clarification.
"""]]

View file

@ -0,0 +1,111 @@
Thanks to Joey's help, I managed to get the transfer repository setup working in a [previous forum question](https://git-annex.branchable.com/forum/client_repositories_setup_problem/).
Now, I'm trying to do something similar, but using a bare git repository as the transfer repo instead of a regular git repository.
Here's my bash script which bootstraps the setup stage:
```
#/usr/bin/env bash
# Useful links:
# https://git-annex.branchable.com/bare_repositories/
# Just a way to access the script's directory
cd "$(dirname "$0")"
DIR="$(pwd)"
# Create the 1st client repository
mkdir $DIR/client1
cd $DIR/client1
git init && git annex init
# Create the 2nd client repository
mkdir $DIR/client2
cd $DIR/client2
git init && git annex init
# Create the transfer repository
mkdir $DIR/share
cd $DIR/share
git init --bare && git annex init
# Setup the remotes and groups for the transfer repository
cd $DIR/share
git remote add client1 $DIR/client1
git remote add client2 $DIR/client2
git annex wanted . standard
git annex group . transfer
git annex group client1 client
git annex group client2 client
git annex mincopies 2
git annex numcopies 2
# Setup the remotes and groups for the 1st client repository.
cd $DIR/client1
git remote add share $DIR/share
git annex wanted . standard
git annex group . client
git annex group share transfer
git annex config --set annex.addunlocked true
git co -b main
# Setup the remotes and groups for the 2nd client repository.
cd $DIR/client2
git remote add share $DIR/share
git annex wanted . standard
git annex group . client
git annex group share transfer
git annex config --set annex.addunlocked true
git co -b main
# Add a single file to the 1st client.
cd $DIR/client1
touch file.txt
git annex add file.txt
git commit -m "Initial commit"
# Needed step for bare repos, as documented in https://git-annex.branchable.com/bare_repositories/
cd $DIR/client1
git push share main
###############################################################################
# Need to do this if there are no commits in the 'client2' and 'share'
# repositories. Or else, I'll get the following logs:
#
# merge: refs/remotes/share/main - not something we can merge
# merge: refs/remotes/share/synced/main - not something we can merge
cd $DIR/client2
git pull share main
###############################################################################
# Run git-annex assistant for each repository
cd $DIR/client1 && git annex assistant
cd $DIR/client2 && git annex assistant
sleep 3;
cd $DIR/client1
echo "My first line" >> file.txt
```
The repo `client1` correctly contains 2 commits representing changes to `file.txt`.
Additionally, `share` and `client2` contain the same commits that were propagated.
However, I expected `cat client2/file.txt` to show "My first line", but it shows instead "/annex/objects/SHA256E-s14--42e950c34152a022a2ec82b2201a2287689e39d4d97bfcef67f8940b49d25d4b.txt".
Doing `git status` in `client2` yield:
```
file.txt is a git-annex pointer file. Its content is not available in this repository. (Maybe file.txt was copied from another repository?)
```
but not sure how to solve this.
Running `git annex whereis` yields:
```
whereis file.txt (0 copies) failed
whereis: 1 failed
```
Any ideas what went wrong?
-- [[kolam]]

View file

@ -0,0 +1,48 @@
[[!comment format=mdwn
username="kolam"
avatar="http://cdn.libravatar.org/avatar/4d2741e5e0b47928bc599b00397b5e59"
subject="comment 1"
date="2023-12-07T20:08:52Z"
content="""
Seems like I needed to manually run:
```
cd $DIR/client2
git annex sync --content
```
which solves the file not found issue. Wonder why the git-annex assistant didn't just sync again...
Then, `cat file.txt` still gives `/annex/objects/SHA256E-s14--42e950c34152a022a2ec82b2201a2287689e39d4d97bfcef67f8940b49d25d4b.txt`.
I managed to solve it by running `git-annex restage` on client2.
However, after running `git annex whereis`, I get:
```
whereis file.txt (3 copies)
1d6bad3e-6a1c-4371-af5f-794bf387480c -- kolam@xxx:~/git-annex-scenarios/share-between-clients/share [share]
87ba86d9-4922-4a4a-8c8d-57c791e0f80e -- kolam@xxx:~/git-annex-scenarios/share-between-clients/client2 [here]
f5b9efb1-e5b3-4573-aa6d-354180193c74 -- kolam@xxx:~/git-annex-scenarios/share-between-clients/client1
ok
```
but I noticed that the assistant doesn't drop the file from the \"share\" repo.
Running `git annex drop --auto --from share`, I get:
```
drop file.txt (from share...) (unsafe)
Could only verify the existence of 1 out of 2 necessary copies
Maybe add some of these git remotes (git remote add ...):
f5b9efb1-e5b3-4573-aa6d-354180193c74 -- kolam@nelson:~/git-annex-scenarios/share-between-clients/client1
(Use --force to override this check, or adjust numcopies.)
failed
drop: 1 failed
```
Of course, that also means that if I modify \"$DIR/client2/file.txt\", the assistant doesn't send the updates to client1. I need to do a manual `git annex sync --content` on `client1`.
Then again, I can't drop the file from \"share\" because of that same error as before.
"""]]

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="kolam"
avatar="http://cdn.libravatar.org/avatar/4d2741e5e0b47928bc599b00397b5e59"
subject="comment 2"
date="2023-12-07T20:16:29Z"
content="""
There's a similar setup page for running your own server with a bare git repo: <https://git-annex.branchable.com/tips/centralized_git_repository_tutorial/on_your_own_server/>
However:
1. the instructions are not specific for a transfer repo and showcasing the git-annex-drop statement
2. out of date as the instructions don't work.
I also found <https://git-annex.branchable.com/forum/How_to_work_with_transfer_repos_manually63/>.
But the solution doesn't seem to work here either.
Maybe something changed since then.
"""]]

View file

@ -1,88 +0,0 @@
I'm trying to set up two client repositories that don't communicate directly with one another, but sync their data using a transfer repository.
Here's the script I used for creating a reproducible environment:
```
#/usr/bin/env bash
# Just a way to access the script's directory
cd "$(dirname "$0")"
DIR="$(pwd)"
# Create the 1st client repository
mkdir $DIR/client1
cd $DIR/client1
git init && git annex init
# Create the 2nd client repository
mkdir $DIR/client2
cd $DIR/client2
git init && git annex init
# Create the transfer repository
mkdir $DIR/share
cd $DIR/share
git init && git annex init
# Setup the remotes and groups for the transfer repository
cd $DIR/share
git remote add client1 $DIR/client1
git remote add client2 $DIR/client1
git annex group . transfer
git annex group client1 client
git annex group client2 client
git co -b main
# Setup the remotes and groups for the 1st client repository.
cd $DIR/client1
git remote add share $DIR/share
git annex group . client
git annex group share transfer
git annex config --set annex.addunlocked true
git co -b main
# Setup the remotes and groups for the 2nd client repository.
cd $DIR/client2
git remote add share $DIR/share
git annex group . client
git annex group share transfer
git annex config --set annex.addunlocked true
git co -b main
# Run git-annex assistant for each repository
cd $DIR/client1 && git annex assistant
cd $DIR/client2 && git annex assistant
cd $DIR/share && git annex assistant
# Add a single file to the 1st client.
cd $DIR/client1
touch file.txt
# Need to do this if there are no commits in the 'client2' and 'share' repositories.
# Or else, I'll get the following logs:
#
# merge: refs/remotes/share/main - not something we can merge
# merge: refs/remotes/share/synced/main - not something we can merge
sleep 3;
cd $DIR/share
git pull client1 main
sleep 3;
cd $DIR/client2
git pull share main
cd $DIR/client1
echo "My first line" >> file.txt
```
However, after letting `git-annex assistant` do it's thing, `file.txt` seems to never be dropped from the `share` transfer repository.
Event after running `git-annex sync --content`, the `git-annex whereis file.txt` gives:
```
whereis file.txt (3 copies)
274b3417-1bf3-47b3-a75e-53ebe7ca20d8 -- user@server:~/share [share]
7cc7d6a8-6230-4d2c-8414-1b45b2fc14d8 -- user@server:~/client2
bdfea36f-d011-4950-8be0-1668f5e56f5c -- user@server:~/client1 [here]
ok
```
The documentation says that the file should be automatically dropped, but that doesn't happen here.

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="mike@2d6d71f56ce2a992244350475251df87c26fe351"
nickname="mike"
avatar="http://cdn.libravatar.org/avatar/183fa439752e2f0c6f39ede658d81050"
subject="--includesamecontent same as --not --includesamecontent?"
date="2023-12-06T22:12:47Z"
content="""
The text for `--includesamecontent` states that is the \"same as `--not --includesamecontent`\", this is probably a bug in the documentation?
"""]]

1
doc/users/kolam.mdwn Normal file
View file

@ -0,0 +1 @@
TODO