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

This commit is contained in:
Joey Hess 2024-01-02 13:59:55 -04:00
commit 2b8d081b60
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
8 changed files with 216 additions and 0 deletions

View file

@ -0,0 +1,74 @@
### Please describe the problem.
While on an adjusted branch, merge conflicts can neither be resolved manually nor with a git merge driver. See the transcript below.
### What version of git-annex are you using? On what operating system?
git-annex version: 10.20230802
debian bullseye
### Please provide any additional information below.
[[!format sh """
$ cat ~/.gitconfig
...
[merge "commit"]
name = commit conflict markers
driver = "bash -c 'git merge-file %A %O %B; exit 0'"
...
$ cat .gitattributes
* annex.backend=SHA256E
study.org* merge=commit
dotfiles/** merge=commit
$ git annex sync
git-annex sync will change default behavior to operate on --content in a future version of git-annex. Recommend you explicitly use --no-content (or -g) to prepare for that change. (Or you can configure annex.synccontent)
commit
On branch adjusted/master(unlocked)
nothing to commit, working tree clean
ok
pull uni-lfs
(Merging into master...)
Auto-merging study.org
CONFLICT (content): Merge conflict in study.org
Automatic merge failed; fix conflicts and then commit the result.
(Merging into master...)
Auto-merging study.org
CONFLICT (content): Merge conflict in study.org
Automatic merge failed; fix conflicts and then commit the result.
failed
push uni-lfs
To xxx
! [rejected] master -> synced/master (non-fast-forward)
error: failed to push some refs to 'xxx'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
To xxx
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'xxx'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Pushing to uni-lfs failed.
failed
sync: 2 failed
$ git annex version
git-annex version: 10.20230802
build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV
dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.26 DAV-1.3.4 feed-1.3.0.1 ghc-8.8.4 http-client-0.6.4.1 persistent-sqlite-2.10.6.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.1.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_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 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
operating system: linux x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10
local repository version: 10
# End of transcript or log.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="Lukey"
avatar="http://cdn.libravatar.org/avatar/c7c08e2efd29c692cc017c4a4ca3406b"
subject="comment 8"
date="2023-12-30T11:35:22Z"
content="""
I solved this problem by having my own dhcp+dns server (dnsmasq) running on the LAN which gives out only 30 second dhcp leases. This way only alive hosts are resolvable. And remotes are accessed not by ip, but by hostname.
Another way to do this is via mdns, but I found that to be very unreliable.
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="lemondata"
avatar="http://cdn.libravatar.org/avatar/481bf8163b175e5d0bdbef7d8c7fb3f4"
subject="comment 3"
date="2024-01-02T15:44:21Z"
content="""
The first system I tried capped out at 8GB of ram, and it used around 7 before ending the process with `error: git-annex died of signal 9`. Since I initially thought it might just be a ram problem I attempted the same on a system with 32GB of ram, but arrived at the same results after the system used around 31GB of ram. I was not able to try any higher due to my own physical hardware restrictions.
Just to help confirm the suspicion of the problem I tried the same thing with `versioning=no` set, and the import worked great.
Since I do not want to import all 22000 files and I just need two items at this prefix(and their historical versions), I think some way to filter on the fly would make a huge difference. Alternatively, like you mentioned, importing one historical tree at a time sounds like it would ease the ram requirements here too.
Is there anything I can do to help further with testing? Or is there any more information I can give about the issue that would be helpful to you?
"""]]

View file

@ -0,0 +1,49 @@
After inadvertently deleting my main repository on my local machine, I had to rebuild. This has worked ok, as far as I can tell at the moment. However, when listing the repository details, I get the listing below.
My problem is that **S5** has three aliases: `S5 [S51]`, which I cannot rename to `S5` for some reason, and two other repos residing in `jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex`. When I try to query there details, I get the information at the bottom. I am a bit anxious, as I am unsure if I am dealing with prior instances that have been somehow overridden but are still being tracked.
Any help in understanding the situation is appreciated. Ideally, I would like to remove the spurious repository references, provided they are not required.
```sh
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex info
trusted repositories: 0
semitrusted repositories: 15
00000000-0000-0000-0000-000000000001 -- web
00000000-0000-0000-0000-000000000002 -- bittorrent
246524b7-7cc2-4b3e-9559-4aa5992a4b94 -- S5 [S51]
2d8de5a5-4662-4bbb-bab0-51f39ec07d2e -- L1
39291601-0cc2-45aa-89f4-85e6d5bead99 -- L6
40897254-d2e8-4803-b291-a735d23fe03b -- [S2]
48e8f8c5-cb12-4b1d-9f50-30b39f38b6cb -- L5
63e417a1-b10c-45c2-8a90-44971b8b69bf -- [S1]
96d8d103-1bc5-41d8-be3e-804260a9ee8d -- jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
a518d97d-4fb0-4018-95b1-2fc1b02a3081 -- L3
a7972a52-b3c2-4282-b690-a832dbbad982 -- [S3]
ae317911-25b1-418c-bcd2-a88d4f8d48f2 -- [S4]
af3e59fb-d2a8-418d-bde5-48b008f61fbb -- jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
cb2c7d0c-b946-4e74-9362-3f4d56a5db5a -- jg@jg-Latitude-5500:~/annex [jglatitude5500.lan_annex]
ce573cf5-5007-4d5d-b540-ab73f393c32e -- jg@jg-OptiPlex-9020-AIO:~/Desktop/annex [here]
untrusted repositories: 0
transfers in progress: none
available local disk space: 14.23 megabytes (+100 megabytes reserved)
local annex keys: 292
local annex size: 120.26 gigabytes
annexed files in working tree: 45158
size of annexed files in working tree: 1 terabyte
bloom filter size: 32 mebibytes (0.1% full)
backend usage:
SHA256E: 45158
```
```sh
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex info repository 96d8d103-1bc5-41d8-be3e-804260a9ee8d
fatal: Not a valid object name repository
info repository (not a directory or an annexed file or a treeish or a remote or a uuid) failed
uuid: 96d8d103-1bc5-41d8-be3e-804260a9ee8d
description: jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
trust: semitrusted
remote annex keys: 0
remote annex size: 0 bytes
info: 1 failed
```

View file

@ -0,0 +1,26 @@
[[!comment format=mdwn
username="jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1"
nickname="jgsuess"
avatar="http://cdn.libravatar.org/avatar/35a99d1b5df046b206807941ce9795d3"
subject="wrong parameter used - `repository` is not a subcommand"
date="2023-12-31T09:41:13Z"
content="""
If I call with UUID, I receive this. However, this still does not help me understand what the item is:
```sh
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex info af3e59fb-d2a8-418d-bde5-48b008f61fbb
uuid: af3e59fb-d2a8-418d-bde5-48b008f61fbb
description: jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
trust: semitrusted
remote annex keys: 1
remote annex size: 373.36 megabytes
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex info 96d8d103-1bc5-41d8-be3e-804260a9ee8d
uuid: 96d8d103-1bc5-41d8-be3e-804260a9ee8d
description: jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
trust: semitrusted
remote annex keys: 0
remote annex size: 0 bytes
```
"""]]

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1"
nickname="jgsuess"
avatar="http://cdn.libravatar.org/avatar/35a99d1b5df046b206807941ce9795d3"
subject="Scanning for files in ghost repos"
date="2023-12-31T09:46:53Z"
content="""
So I used the incantations below to scan for contents. Seems that one only holds a single file and the other does not hold anything at all. Is it the safe to declare them `dead` and will that lead to the replication of the file from `S1` to somewhere else?
```sh
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex whereis --all --in=af3e59fb-d2a8-418d-bde5-48b008f61fbb
whereis SHA256E-s373363860--f10c801755cabc38d958adace3af29d767670c780b97c572d04a8dcd10ca0a9a.avi (2 copies)
63e417a1-b10c-45c2-8a90-44971b8b69bf -- [S1]
af3e59fb-d2a8-418d-bde5-48b008f61fbb -- jg@jg-OptiPlex-9020-AIO:/media/jg/S5/annex
ok
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$ git-annex whereis --all --in=96d8d103-1bc5-41d8-be3e-804260a9ee8d
jg@jg-OptiPlex-9020-AIO:~/Desktop/annex/VideoStreamFiles/space race$
```
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="Lukey"
avatar="http://cdn.libravatar.org/avatar/c7c08e2efd29c692cc017c4a4ca3406b"
subject="comment 3"
date="2023-12-31T14:41:18Z"
content="""
Are these special remotes? You can get more info with `git cat-file blob git-annex:remote.log`. Warning, this will print encryption keys if you set up a encrypted special remote.
Any yes, `git annex dead` should do the trick, it will not count files in the dead repo as a copy anymore.
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="Atemu"
avatar="http://cdn.libravatar.org/avatar/86b8c2d893dfdf2146e1bbb8ac4165fb"
subject="comment 4"
date="2023-12-29T17:06:37Z"
content="""
I may have been unclear in my wording but what I really want is `info` to be able to show me numbers on *all* keys of the git-annex branch, including keys not in the current working tree or repo.
The intent is that I want to preserve past versions and also want to be able to query copies, where they're located etc. of those together with the \"used\" keys. I don't care whether they're referenced in the current revision and want to be able to tell `git-annex info` to not care too.
Ideally, this should skip any unused check; operating only on the git-annex branch's data and none of master's. (That might also yield a much needed performance benefit.)
Total size of annex sounds amazing; I've been wanting that ever since I set up distributed cold storage. I'll give it a spin :)
"""]]