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

This commit is contained in:
Joey Hess 2023-02-15 14:51:51 -04:00
commit cb2f071377
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 156 additions and 1 deletions

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="anarcat"
avatar="http://cdn.libravatar.org/avatar/4ad594c1e13211c1ad9edb81ce5110b7"
subject="comment 4"
date="2023-02-14T19:03:24Z"
content="""
Yeah, it's not strace: the problem just disappeared, sorry. :/ If I hit it again, i'll be sure to do my homework. :)
"""]]

View file

@ -0,0 +1,147 @@
### Please describe the problem.
Release 10.20230214 was supposed to give the ability to refresh the view branch with `sync` to
reflect any changes made to metadata or parent branch, yet for users of crippled filesystems
(for whom the view branches are a bit marginal anyway considering that symbolic or hard links
are not employed) who are dependent on adjusted branches this does not work. It seems git annex
tries to reach for the parent branch in the form of `adjusted/master` but normally it should be
similar to `adjusted/master(unlocked)` with the parenthesized portion at the end.
[[!format sh """
X:\git-annex-tests\annex-view-test-a [views/adjusted/master(unlocked)(subdir_=_)]> git status
On branch views/adjusted/master(unlocked)(subdir_=_)
nothing to commit, working tree clean
X:\git-annex-tests\annex-view-test-a [views/adjusted/master(unlocked)(subdir_=_)]> git annex sync --no-commit
fatal: not a valid object name: 'adjusted/master'
git-annex: failed to update refs/heads/synced/adjusted/master
"""]]
### What steps will reproduce the problem?
Use a crippled filesystem on Windows with adjusted unlocked branches and enter a view branch
and then try to `git annex sync --no-commit` -- the sync at least partially fails.
### What version of git-annex are you using? On what operating system?
[[!format sh """
git-annex version: 10.20230214-gf3019d7e2
build flags: Assistant Webapp Pairing TorrentParser 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 persistent-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 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: mingw32 x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 2 3 4 5 6 7 8 9 10
local repository version: 10
"""]]
Windows 10 version 22H2 (build 19045.2486), 64 bit.
### Please provide any additional information below.
[[!format sh """
X:\> cd git-annex-tests
X:\git-annex-tests> git init annex-view-test-a
X:\git-annex-tests> cd .\annex-view-test-a\
X:\git-annex-tests\annex-view-test-a [master]> git config annex.thin true
X:\git-annex-tests\annex-view-test-a [master]> git annex init Annex-view-test-a
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked)]> echo Aaa > a
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +1 ~0 -0 !]> mkdir subdir
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +1 ~0 -0 !]> echo Bbb > subdir\b
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +2 ~0 -0 !]> echo Ccc > subdir\c
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +2 ~0 -0 !]> mkdir subdir\subsubdir
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +2 ~0 -0 !]> echo Ddd > .\subdir\subsubdir\d
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +2 ~0 -0 !]> git annex add .
add a
ok
add subdir/b
ok
add subdir/c
ok
add subdir/subsubdir/d
ok
(recording state in git...)
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +4 ~0 -0 ~]> ls -r
Directory: X:\git-annex-tests\annex-view-test-a
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 15.2.2023 12:37 subdir
-a--- 15.2.2023 12:31 5 a
Directory: X:\git-annex-tests\annex-view-test-a\subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 15.2.2023 12:38 subsubdir
-a--- 15.2.2023 12:34 5 b
-a--- 15.2.2023 12:37 5 c
Directory: X:\git-annex-tests\annex-view-test-a\subdir\subsubdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 15.2.2023 12:38 5 d
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +4 ~0 -0 ~]> fsutil hardlink list a
\git-annex-tests\annex-view-test-a\.git\annex\objects\b29\a20\SHA256E-s5--e3c555b2205407e76d3a460513cf44c1c62e48ba83ec4948ed05d0f87b957051\SHA256E-s5--e3c555b2205407e76d3a460513cf44c1c62e48ba83ec4948ed05d0f87b957051
\git-annex-tests\annex-view-test-a\a
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked) +4 ~0 -0 ~]> git commit -m 'Add test files'
[adjusted/master(unlocked) 56b11c9] Add test files
4 files changed, 4 insertions(+)
create mode 100644 a
create mode 100644 subdir/b
create mode 100644 subdir/c
create mode 100644 subdir/subsubdir/d
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked)]> git annex metadata -t test subdir\b
metadata subdir/b
lastchanged=2023-02-15@10-52-31
tag=test
tag-lastchanged=2023-02-15@10-52-31
ok
(recording state in git...)
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked)]> git annex metadata -t test subdir\subsubdir\d
metadata subdir/subsubdir/d
lastchanged=2023-02-15@10-53-00
tag=test
tag-lastchanged=2023-02-15@10-53-00
ok
(recording state in git...)
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked)]> git annex metadata subdir\c
metadata subdir/c
ok
X:\git-annex-tests\annex-view-test-a [adjusted/master(unlocked)]> git annex view 'subdir\=*'
view (searching...)
Switched to branch 'views/adjusted/master(unlocked)(subdir_=_)'
ok
X:\git-annex-tests\annex-view-test-a [views/adjusted/master(unlocked)(subdir_=_)]> ls -r
Directory: X:\git-annex-tests\annex-view-test-a
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 15.2.2023 12:55 subsubdir
-a--- 15.2.2023 12:55 178 b_%subdir%
Directory: X:\git-annex-tests\annex-view-test-a\subsubdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 15.2.2023 12:55 181 d_%subdir%subsubdir%
X:\git-annex-tests\annex-view-test-a [views/adjusted/master(unlocked)(subdir_=_)]> git annex sync --no-commit
fatal: not a valid object name: 'adjusted/master'
git-annex: failed to update refs/heads/synced/adjusted/master
# 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)
Git Annex is great. 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. :)
Big thanks, Joey!
[[!meta author=jkniiv]]

View file

@ -30,7 +30,7 @@ two different encrypted remotes.
So, the encrypted cipher is just stored with the rest of a remote's So, the encrypted cipher is just stored with the rest of a remote's
configuration in `remote.log` (see [[internals]]). When `git configuration in `remote.log` (see [[internals]]). When `git
annex intiremote` makes a remote, it generates a random symmetric annex initremote` makes a remote, it generates a random symmetric
cipher, and encrypt it with the specified gpg key. To allow another gpg cipher, and encrypt it with the specified gpg key. To allow another gpg
public key access, update the encrypted cipher to be encrypted to both gpg public key access, update the encrypted cipher to be encrypted to both gpg
keys. keys.