Commit graph

41166 commits

Author SHA1 Message Date
Joey Hess
3d7933f124
fix inverted logic
Now the content lock files are used in v9. However, I am not yet certian
they are correct. In particular, lockContentUsing deletes
the content lock file on unlock. But what if there's a shared lock
by another process? That seems like it would discard that lock too!

(Windows seems like it would not have the same problem, because as the
comment in there says, "Can't delete a locked file on Windows".
So if another process has a shared lock, removing it presumably fails.)

Sponsored-by: Dartmouth College's Datalad project
2022-01-13 13:58:31 -04:00
Joey Hess
731b1ecf87
v9 upgrade implemented
Seems to work ok. Unsure yet about the actual locking changes being
correct.

This is not the end of the story with upgrades, because it is unsafe for
this upgrade as implemented to run in a repository where an old
git-annex process is already running. The old process would use the old
locking method, and not notice files locked by the new, and this could
result in data loss. This problem will need to be dealt with before this
branch is suitable for merging.

Sponsored-by: Dartmouth College's Datalad project
2022-01-13 13:25:10 -04:00
Joey Hess
3936599885
move code from Command.Fsck
Sponsored-by: Dartmouth College's Datalad project
2022-01-13 13:24:50 -04:00
Joey Hess
3c042606c2
use separate lock from content file in v9
Windows has always used a separate lock file, but on unix, the content
file itself was locked, and in v9 that changes to also use a separate
lock file.

This needs to be tested more. Eg, what happens after dropping a file;
does the the content lock file get deleted too, or linger around?

Sponsored-by: Dartmouth College's Datalad project
2022-01-11 17:03:14 -04:00
Joey Hess
43f9d967ff
shared repository content file permissions for v9
v9 will not need to write to annex content files in order to lock them,
so freezeContent removes the write bit in a shared repository, the same
as in any other repository.

checkContentWritePerm makes sure that the write perm is not set, which
will let git-annex fsck fix up the permissions. Upgrading to v9
will need to fix the permissions as well, but it seems likely there will
be situations where the user git-annex is running an upgrade as cannot,
so it will have to leave the write bit set. In such a case, git-annex
fsck can fix it later.

Sponsored-by: Dartmouth College's Datalad project
2022-01-11 16:50:50 -04:00
Joey Hess
ff570ad363
add v9 annex.version, not yet the default
This is the start of v9, but it's currently identical to v8, and v8 is
not upgraded to it. git-annex upgrade will upgrade to v9 with this
change.

Sponsored-by: Dartmouth College's Datalad project
2022-01-11 14:59:39 -04:00
Joey Hess
029820c832
v9-locking branch 2022-01-11 14:49:21 -04:00
Joey Hess
f1e5a42392
followup and close 2022-01-11 13:28:13 -04:00
Joey Hess
a12f3f58ab
comment 2022-01-11 13:07:51 -04:00
Joey Hess
f54c58f0df
Avoid crashing when run in a bare git repo that somehow contains an index file
Do not populate the keys database with associated files,
because a bare repo has no working tree, and so it does not make sense to
populate it.

Queries of associated files in the keys database always return empty lists
in a bare repo, even if it's somehow populated. One way it could be
populated is if a user converts a non-bare repo to a bare repo.

Note that Git.Config.isBare does a string comparison, so this is not free!
But, that string comparison is very small compared to a sqlite query.

Sponsored-by: Erik Bjäreholt on Patreon
2022-01-11 13:01:49 -04:00
Joey Hess
c031d19c32
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-11 12:25:12 -04:00
Joey Hess
8ae88923b8
moreinfo 2022-01-11 12:24:40 -04:00
mih
da71a52b12 2022-01-11 12:54:35 +00:00
Joey Hess
525473aa5a
adb: Added ignorefinderror configuration parameter
On a phone with Calyxos, adb find in /sdcard complains:

find: ./Android/data/com.android.providers.downloads.ui: Permission denied

But otherwise works, so this option makes import and export work ok, except
for that one app's data.

Sponsored-by: Graham Spencer
2022-01-10 21:17:00 -04:00
lell
a55fc567c3 removed 2022-01-10 08:34:19 +00:00
lell
31e52a08d2 Added a comment 2022-01-10 08:33:47 +00:00
lell
29088d78f3 2022-01-10 08:31:48 +00:00
aaron
91329eaf93 Added a comment 2022-01-09 08:36:34 +00:00
tomdhunt
d8ad2d8889 Added a comment 2022-01-09 05:45:35 +00:00
aaron
4b548efca2 Added a comment: How does the gcrypt type compare to the rsync special remote 2022-01-09 05:31:35 +00:00
aaron
dd6f6519df Added a comment: Not auto-signing commits with webapp (and possible assistant) 2022-01-09 04:29:26 +00:00
amerlyq
46abc97d32 Added a comment 2022-01-08 14:32:12 +00:00
amerlyq
af64183932 Added a comment 2022-01-08 14:15:55 +00:00
Yaroslav Halchenko
00a917d2d2
Update standalone patch for changes in debian/control text description 2022-01-07 17:24:50 -04:00
Joey Hess
e95747a149
fix handling of corrupted data received from git remote
Recover from corrupted content being received from a git remote due eg to a
wire error, by deleting the temporary file when it fails to verify. This
prevents a retry from failing again.

Reversion introduced in version 8.20210903, when incremental verification
was added.

Only the git remote seems to be affected, although it is certianly
possible that other remotes could later have the same issue. This only
affects things passed to getViaTmp that return (False, UnVerified) due to
verification failing. As far as getViaTmp can tell, that could just as well
mean that the transfer failed in a way that would resume, so it cannot
delete the temp file itself. Remote.Git and P2P.Annex use getViaTmp internally,
while other remotes do not, which is why only it seems affected.

A better fix perhaps would be to improve the types of the callback
passed to getViaTmp, so that some other value could be used to indicate
the state where the transfer succeeded but verification failed.

Sponsored-by: Boyd Stephen Smith Jr.
2022-01-07 13:25:33 -04:00
Joey Hess
21c0d5be6e
comment 2022-01-07 12:27:19 -04:00
Joey Hess
022e63cdde
comment 2022-01-07 12:08:19 -04:00
Joey Hess
8657df23fe
comment 2022-01-07 12:05:48 -04:00
amerlyq
39daac8e99 Added a comment 2022-01-07 12:52:35 +00:00
lell
56e8c6843d Added a comment: Propagation is different between "annex adjust" and "annex sync" 2022-01-07 10:21:46 +00:00
Joey Hess
0f1490c953
comment 2022-01-06 12:25:00 -04:00
Joey Hess
218a3c0f09
improve description
Sponsored-by: Jack Hill on Patreon
2022-01-06 12:24:27 -04:00
arekmenner@f0f5403c5cbc803fedaf860e3a6f839a41075e3b
6308dbedf7 Added a comment: reply 2022-01-06 15:13:15 +00:00
Joey Hess
08e5dea062
comment 2022-01-05 15:56:14 -04:00
Joey Hess
759346cc65
remove incorrect speculation 2022-01-05 15:42:46 -04:00
arekmenner@f0f5403c5cbc803fedaf860e3a6f839a41075e3b
16207484d2 description of another noob question 2022-01-05 19:30:14 +00:00
Joey Hess
0e9db8a190
comment 2022-01-05 15:26:34 -04:00
Joey Hess
c7db49e43c
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-05 15:24:32 -04:00
Joey Hess
e416635021
renameremote: Better handling of case where there are multiple special remotes with a name
Instead of renaming one at random, error out and ask that a uuid be
specified.

Sponsored-by: Brett Eisenberg on Patreon
2022-01-05 15:24:02 -04:00
arekmenner@f0f5403c5cbc803fedaf860e3a6f839a41075e3b
2b6499a632 Added a comment: response 2022-01-05 19:18:09 +00:00
Joey Hess
58afb00f6e
enableremote: Better handling of the unusual case where multiple special remotes have been initialized with the same name
Before it would pick one at random, though preferring ones that were not
dead over dead ones.

Now, if one is dead and the other not, it will use the non-dead one. But if
both are not dead, or both dead, it will error out, suggesting the user
clarify what they want to enable.

Sponsored-by: Luke Shumaker on Patreon
2022-01-05 15:12:11 -04:00
Joey Hess
7f3628331c
comment 2022-01-05 14:04:32 -04:00
Joey Hess
0c604e29a4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-05 13:10:03 -04:00
Joey Hess
c36895e9cb
comment 2022-01-05 13:09:18 -04:00
Joey Hess
ff33189548
comment 2022-01-05 12:58:19 -04:00
Joey Hess
a114670d3d
comment 2022-01-05 12:31:37 -04:00
Joey Hess
46d793c8df
comment 2022-01-05 12:18:18 -04:00
Joey Hess
7c6d088f62
retrospectively add from NEWS 2022-01-05 11:56:22 -04:00
amerlyq
aa6534caa7 Added a comment 2022-01-05 15:46:07 +00:00
Joey Hess
85978f59e6
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-05 10:11:29 -04:00