git-annex.git
5 years agoreleasing package git-annex version 8.20210803
Joey Hess [Tue, 3 Aug 2021 16:20:45 +0000 (12:20 -0400)]
releasing package git-annex version 8.20210803

5 years agowhitespace
Joey Hess [Tue, 3 Aug 2021 16:18:10 +0000 (12:18 -0400)]
whitespace

5 years agoAdded a comment
Ilya_Shlyakhter [Tue, 3 Aug 2021 15:14:53 +0000 (15:14 +0000)]
Added a comment

5 years agoAdded a comment: don't give up ;)
Ilya_Shlyakhter [Tue, 3 Aug 2021 15:06:35 +0000 (15:06 +0000)]
Added a comment: don't give up ;)

5 years agoAdded a comment
Lukey [Tue, 3 Aug 2021 07:54:13 +0000 (07:54 +0000)]
Added a comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 2 Aug 2021 18:11:36 +0000 (14:11 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agofix test suite
Joey Hess [Mon, 2 Aug 2021 17:59:23 +0000 (13:59 -0400)]
fix test suite

14683da9ebd629c3f77405b646d3f5661874f9d6 caused a test suite failure.
When the content of a key is not present, a LinkAnnexFailed is returned,
but replaceFile then tried to move the file into place, and since it was
not written, that crashed.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
5 years agofix missing new lines in processTranscript
Joey Hess [Mon, 2 Aug 2021 17:42:27 +0000 (13:42 -0400)]
fix missing new lines in processTranscript

5 years ago(no commit message)
jwrauch [Mon, 2 Aug 2021 17:03:23 +0000 (17:03 +0000)]

5 years agoinitial observation of .dot filename to consider having .dot extension
yarikoptic [Mon, 2 Aug 2021 16:56:19 +0000 (16:56 +0000)]
initial observation of .dot filename to consider having .dot extension

5 years agoAdded a comment: Also seeing this behaviour
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1 [Mon, 2 Aug 2021 06:14:41 +0000 (06:14 +0000)]
Added a comment: Also seeing this behaviour

5 years agoAdded a comment
mattplasmastrike@59cb7d099c8665f6c7668d78d9f17db87cabc2fe [Sat, 31 Jul 2021 23:59:12 +0000 (23:59 +0000)]
Added a comment

5 years agowork around strange auto-init bug
Joey Hess [Fri, 30 Jul 2021 22:36:03 +0000 (18:36 -0400)]
work around strange auto-init bug

git-annex get when run as the first git-annex command in a new repo did not
populate unlocked files. (Reversion in version 8.20210621)

I am not entirely happy with this, because I don't understand how
428c91606b434512d1986622e751c795edf4df44 caused the problem in the first
place, and I don't fully understand how skipping calling scanAnnexedFiles
during autoinit avoids the problem.

Kept the explicit call to scanAnnexedFiles during git-annex init,
so that when reconcileStaged is expensive, it can be made to run then,
rather than at some later point when the information is needed.

Sponsored-by: Brock Spratlen on Patreon
5 years agoremove unused code
Joey Hess [Fri, 30 Jul 2021 22:01:36 +0000 (18:01 -0400)]
remove unused code

5 years agoremove second pass in scanAnnexedFiles
Joey Hess [Fri, 30 Jul 2021 21:46:11 +0000 (17:46 -0400)]
remove second pass in scanAnnexedFiles

The pass was needed to populate files when annex.thin was set,
but in commit 73e0cbbb19703f08daf783d8788370726f852162,
reconcileStaged started to do that. So, this second pass is not needed
any longer.

5 years agobug
Joey Hess [Fri, 30 Jul 2021 19:39:47 +0000 (15:39 -0400)]
bug

5 years agoclose
Joey Hess [Fri, 30 Jul 2021 19:20:05 +0000 (15:20 -0400)]
close

I'm now reasonably sure I've identified both cases where this can
happen. v8 upgrades and certian filesystems eg NFS. Both are handled as
well as can be, though it may involve some extra checksumming work.

5 years agoFix a rounding bug in display of data sizes
Joey Hess [Fri, 30 Jul 2021 13:56:04 +0000 (09:56 -0400)]
Fix a rounding bug in display of data sizes

Eg, showImprecise 1 1.99 returned "1.1" rather than "2". The 9 rounded
upward to 10, and that was wrongly used as the decimal, rather than
carrying the 1.

Sponsored-by: Jack Hill on Patreon
5 years agobugreport: git-annex info . formats 2 TB as 1.1 TB
uli@8484a70fbfd489faef5f72c230d340b01e2676ca [Fri, 30 Jul 2021 07:24:53 +0000 (07:24 +0000)]
bugreport: git-annex info .   formats  2 TB as 1.1 TB

5 years agofsck: Detect and correct stale or missing inode caches for object files
Joey Hess [Thu, 29 Jul 2021 18:06:13 +0000 (14:06 -0400)]
fsck: Detect and correct stale or missing inode caches for object files

An easy way to see this in action is to have an unlocked file, and touch the
object file.

While all code that compares inode caches for object files needs to be
prepared for this kind of problem and fall back to verification, having
fsck notice it and correct it is cheap (as long as fsck is being run
anyway) and ensures that if it happens for some unusual reason, there's a
way for the user to notice that it's happening.

Not that, when annex.thin is in use, the earlier call to isUnmodified
(and also potentially earlier calls to inAnnex in eg, verifyLocationLog)
will fix up the same problem silently. That might prevent the warning
being displayed, although probably it still will be, because the
Database.Keys write of the InodeCache will be queued but will not have
happened yet. I can't see a way to improve this, but it's not great.

Sponsored-by: Dartmouth College's Datalad project
5 years agosplit verifyKeyContent
Joey Hess [Thu, 29 Jul 2021 17:36:19 +0000 (13:36 -0400)]
split verifyKeyContent

This avoids it calling enteringStage VerifyStage when it's used in
places that only fall back to verification rarely, and which might be
called while in TransferStage and be going to perform a transfer after
the verification.

5 years agocomment
Joey Hess [Thu, 29 Jul 2021 17:33:11 +0000 (13:33 -0400)]
comment

5 years agoimprove comment wording
Joey Hess [Thu, 29 Jul 2021 17:21:23 +0000 (13:21 -0400)]
improve comment wording

5 years agoadd note
Joey Hess [Thu, 29 Jul 2021 17:14:03 +0000 (13:14 -0400)]
add note

5 years agoremove unused parameter
Joey Hess [Thu, 29 Jul 2021 17:12:11 +0000 (13:12 -0400)]
remove unused parameter

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 29 Jul 2021 16:30:39 +0000 (12:30 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agosimplify code
Joey Hess [Thu, 29 Jul 2021 16:28:13 +0000 (12:28 -0400)]
simplify code

5 years agoremove unncessary debugs
Joey Hess [Thu, 29 Jul 2021 16:18:31 +0000 (12:18 -0400)]
remove unncessary debugs

Keeping the ones in Annex.InodeSentinal

5 years agoAdded a comment: Cause cannot (only) be a v7->v8 upgrade
mih [Thu, 29 Jul 2021 05:40:36 +0000 (05:40 +0000)]
Added a comment: Cause cannot (only) be a v7->v8 upgrade

5 years agouse SQL.addInodeCaches
Joey Hess [Tue, 27 Jul 2021 21:34:56 +0000 (17:34 -0400)]
use SQL.addInodeCaches

This avoids deadlock when opening the database handle calls
reconcileStaged.

5 years agofix problem populating pointer files
Joey Hess [Tue, 27 Jul 2021 18:21:09 +0000 (14:21 -0400)]
fix problem populating pointer files

This is a result of an audit of every use of getInodeCaches,
to find places that misbehave when the annex object is not in the inode
cache, despite pointer files for the same key being in the inode cache.

Unfortunately, that is the case for objects that were in v7 repos that
upgraded to v8. Added a note about this gotcha to getInodeCaches.

Database.Keys.reconcileStaged, then annex.thin is set, would fail to
populate pointer files in this situation. Changed it to check if the
annex object is unmodified the same way inAnnex does, falling back to a
checksum if the inode cache is not recorded.

Sponsored-by: Dartmouth College's Datalad project
5 years agomove verifyKeyContent to Annex.Verify
Joey Hess [Tue, 27 Jul 2021 18:07:23 +0000 (14:07 -0400)]
move verifyKeyContent to Annex.Verify

The goal is that Database.Keys be able to use it; it can't use
Annex.Content.Presence due to an import loop.

Several other things also needed to be moved to Annex.Verify as a
conseqence.

5 years agocomment
Joey Hess [Tue, 27 Jul 2021 17:45:33 +0000 (13:45 -0400)]
comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 27 Jul 2021 17:16:22 +0000 (13:16 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agofix potential race in updating inode cache
Joey Hess [Tue, 27 Jul 2021 17:01:30 +0000 (13:01 -0400)]
fix potential race in updating inode cache

Some uses of linkFromAnnex are inside replaceWorkTreeFile, which was
already safe, but others use it directly on the work tree file, which
was race-prone. Eg, if the work tree file was first removed, then
linkFromAnnex called to populate it, the user could have re-written it in
the interim.

This came to light during an audit of all calls of addInodeCaches,
looking for such races. All the other uses of it seem ok.

Sponsored-by: Brett Eisenberg on Patreon
5 years agofix potential race in updating inode cache
Joey Hess [Tue, 27 Jul 2021 16:29:10 +0000 (12:29 -0400)]
fix potential race in updating inode cache

In Annex.Content, the object file was statted after pointer files were
populated. But if annex.thin is set, once the pointer files are
populated, the object file can potentially be modified via the hard
link. So, it was possible, though seemingly very unlikely, for the inode
of the modified object file to be cached.

Command.Fix and Command.Fsck had similar problems, statting the work
tree files after they were in place. Changed them to stat the temp file
that gets moved into place. This does rely on .git/annex being on the
same filesystem. If it's not, the cached inode will not be the same as
the one that the temp file gets moved to. Result will be that git-annex
will later need to do an expensive verification of the content of the
worktree files. Note that the cross-filesystem move of the temp file
already is a larger amount of extra work, so this seems acceptable.

Sponsored-by: Luke Shumaker on Patreon
5 years agoAdded a comment: Fixed in 8.20210715-g3b5a3e168
mih [Tue, 27 Jul 2021 12:00:35 +0000 (12:00 +0000)]
Added a comment: Fixed in 8.20210715-g3b5a3e168

5 years agocheck if object is modified before starting to send it
Joey Hess [Mon, 26 Jul 2021 21:33:49 +0000 (17:33 -0400)]
check if object is modified before starting to send it

Fix bug that caused some transfers to incorrectly fail with "content
changed while it was being sent", when the content was not changed.

While I don't know how to reproduce the problem that several people
reported, it is presumably due to the inode cache somehow being stale.
So check isUnmodified', and if it's not modified, include the file's
current inode cache in the set to accept, when checking for modification
after the transfer.

That seems like the right thing to do for another reason: The failure
says the file changed while it was being sent, but if the object file was
changed before the transfer started, that's wrong. So it needs to check
before allowing the transfer at all if the file is modified.

(Other calls to sameInodeCache or elemInodeCaches, when operating on inode
caches from the database, could also be problimatic if the inode cache is
somehow getting stale. This does not address such problems.)

Sponsored-by: Dartmouth College's Datalad project
5 years agocomment
Joey Hess [Mon, 26 Jul 2021 21:09:14 +0000 (17:09 -0400)]
comment

5 years agofix a place where the inode cache could potentially have gotten stale
Joey Hess [Mon, 26 Jul 2021 18:12:58 +0000 (14:12 -0400)]
fix a place where the inode cache could potentially have gotten stale

When git-annex lock repopulates the object file by copying an associated
file that still has its content, it negected to update the inode cache.

I was not able to actually get this code to successfully repopulate the
object file; the associated file gets replaced with a dangling pointer
before unlock is able to do that. (By what I'm not sure..
reconcileStaged?) Which might be itself a bug, but
anyway this makes me doubtful that this was really leading to a stale
inode cache. Still, in case there is some situation in which it does
work, fixed it to update the inode cache.

5 years agocomment
Joey Hess [Mon, 26 Jul 2021 17:59:07 +0000 (13:59 -0400)]
comment

5 years agomore inode cache debugging
Joey Hess [Mon, 26 Jul 2021 16:57:35 +0000 (12:57 -0400)]
more inode cache debugging

5 years agopropagate debugging into remote's Annex monad
Joey Hess [Mon, 26 Jul 2021 15:39:57 +0000 (11:39 -0400)]
propagate debugging into remote's Annex monad

This is needed to make the debugging added in
00733848509940d81026c24919a909acc6dfa21e actually be displayed when
running git-annex get from a local remote.

5 years agoclose this frustrating todo due to lack of followup and/or being fixed
Joey Hess [Mon, 26 Jul 2021 15:16:58 +0000 (11:16 -0400)]
close this frustrating todo due to lack of followup and/or being fixed

5 years agocomment
Joey Hess [Mon, 26 Jul 2021 15:13:12 +0000 (11:13 -0400)]
comment

5 years agoadd debugging in sameInodeCache
Joey Hess [Mon, 26 Jul 2021 14:48:28 +0000 (10:48 -0400)]
add debugging in sameInodeCache

5 years agoAdded a comment: strace logs
mih [Mon, 26 Jul 2021 07:10:22 +0000 (07:10 +0000)]
Added a comment: strace logs

5 years agocomment
Joey Hess [Thu, 22 Jul 2021 18:14:25 +0000 (14:14 -0400)]
comment

5 years agocomment
Joey Hess [Thu, 22 Jul 2021 18:01:12 +0000 (14:01 -0400)]
comment

5 years agocomment
Joey Hess [Thu, 22 Jul 2021 17:34:27 +0000 (13:34 -0400)]
comment

5 years agocomment
Joey Hess [Thu, 22 Jul 2021 17:28:23 +0000 (13:28 -0400)]
comment

5 years agoAdded a comment: Carification
mih [Thu, 22 Jul 2021 14:59:23 +0000 (14:59 +0000)]
Added a comment: Carification

5 years agoAdded a comment: Reproducible with 8.20210715-g39d747936
mih [Thu, 22 Jul 2021 14:54:40 +0000 (14:54 +0000)]
Added a comment: Reproducible with 8.20210715-g39d747936

5 years agocomment
Joey Hess [Wed, 21 Jul 2021 15:06:03 +0000 (11:06 -0400)]
comment

5 years agoAdded a comment
neil.okamoto@6ca5b1b6563bc71ce13ec235852d23e6ac86e331 [Wed, 21 Jul 2021 07:13:02 +0000 (07:13 +0000)]
Added a comment

5 years agoAdded a comment
neil.okamoto@6ca5b1b6563bc71ce13ec235852d23e6ac86e331 [Tue, 20 Jul 2021 23:22:29 +0000 (23:22 +0000)]
Added a comment

5 years agocomment
Joey Hess [Mon, 19 Jul 2021 16:39:17 +0000 (12:39 -0400)]
comment

5 years agosync, merge: Added --allow-unrelated-histories option
Joey Hess [Mon, 19 Jul 2021 16:08:24 +0000 (12:08 -0400)]
sync, merge: Added --allow-unrelated-histories option

Which is the same as the git merge option.

After last commit, this turns out to be needed in the test suite, and when
doing git-annex import from special remote, followed by a git-annex merge.

Sponsored-by: Svenne Krap on Patreon
5 years agoremove direct mode remnant of merging unrelated histories
Joey Hess [Mon, 19 Jul 2021 15:40:48 +0000 (11:40 -0400)]
remove direct mode remnant of merging unrelated histories

sync, merge, post-receive: Avoid merging unrelated histories, which used to
be allowed only to support direct mode repositories.

(However, sync does still merge unrelated histories when importing trees
from special remotes, and the assistant still merges unrelated histories
always.)

See 556b2ded2ba8270846fa207255b4c2def6ef5d8a for why this was added
back in 2016, for direct mode.

This is a behavior change, which might break something that was relying
on sync merging unrelated histories, but git had a good reason to
prevent it, since it's easy to foot shoot with it, and git-annex should
follow suit.

Sponsored-by: Noam Kremen on Patreon
5 years agosync --quiet
Joey Hess [Mon, 19 Jul 2021 15:28:31 +0000 (11:28 -0400)]
sync --quiet

* sync: When --quiet is used, run git commit, push, and pull without
  their ususual output.
* merge: When --quiet is used, run git merge without its usual output.

This might also make --quiet work better for some other commands
that make commits, like git-annex adjust.

Sponsored-by: Kevin Mueller on Patreon
5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 19 Jul 2021 15:24:45 +0000 (11:24 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agocomment
Joey Hess [Mon, 19 Jul 2021 14:29:12 +0000 (10:29 -0400)]
comment

5 years ago(no commit message)
Atemu [Sun, 18 Jul 2021 22:36:15 +0000 (22:36 +0000)]

5 years ago(no commit message)
remyabel [Sun, 18 Jul 2021 04:25:29 +0000 (04:25 +0000)]

5 years agoAdded a comment: same problem on debian bullseye
anarcat [Sun, 18 Jul 2021 02:02:43 +0000 (02:02 +0000)]
Added a comment: same problem on debian bullseye

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Sat, 17 Jul 2021 21:42:57 +0000 (17:42 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoAdded a comment
Atemu [Fri, 16 Jul 2021 22:47:44 +0000 (22:47 +0000)]
Added a comment

5 years agoclose
Joey Hess [Fri, 16 Jul 2021 20:28:22 +0000 (16:28 -0400)]
close

5 years agocomment
Joey Hess [Fri, 16 Jul 2021 19:16:56 +0000 (15:16 -0400)]
comment

5 years agosplit annexLocations
Joey Hess [Fri, 16 Jul 2021 18:16:05 +0000 (14:16 -0400)]
split annexLocations

To avoid mistakes like commit 0ccbed4f6fe0149229533b8448eee7dd6f90dc29,
be explicit about the two variants of this.

Incidentially avoids a small amount of overhead in calling reverse.

Sponsored-by: Shae Erisson on Patreon
5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 16 Jul 2021 18:02:41 +0000 (14:02 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoI understand this now, marking confirmed
Joey Hess [Fri, 16 Jul 2021 18:02:12 +0000 (14:02 -0400)]
I understand this now, marking confirmed

5 years agoAdded a comment
alt [Fri, 16 Jul 2021 12:37:47 +0000 (12:37 +0000)]
Added a comment

5 years agoAdded a comment
Atemu [Fri, 16 Jul 2021 11:21:43 +0000 (11:21 +0000)]
Added a comment

5 years agoAdded a comment: appendix
guardcat [Fri, 16 Jul 2021 06:34:53 +0000 (06:34 +0000)]
Added a comment: appendix

5 years agoAdded a comment: Fixing problem
guardcat [Fri, 16 Jul 2021 06:21:23 +0000 (06:21 +0000)]
Added a comment: Fixing problem

5 years agoremoved
guardcat [Fri, 16 Jul 2021 06:03:55 +0000 (06:03 +0000)]
removed

5 years agoAdded a comment: Fixing problem
guardcat [Fri, 16 Jul 2021 06:02:17 +0000 (06:02 +0000)]
Added a comment: Fixing problem

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 16 Jul 2021 01:02:29 +0000 (21:02 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agofix oops
Joey Hess [Fri, 16 Jul 2021 01:01:07 +0000 (21:01 -0400)]
fix oops

dd31fe7b9e44c42a3e0623cc06cd507bc60930ce broke non-bare repos by using
bare hash dirs first, oops

5 years ago(no commit message)
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1 [Fri, 16 Jul 2021 00:32:49 +0000 (00:32 +0000)]

5 years agoAdded a comment
Lukey [Thu, 15 Jul 2021 18:40:13 +0000 (18:40 +0000)]
Added a comment

5 years agoClarify
Lukey [Thu, 15 Jul 2021 18:30:22 +0000 (18:30 +0000)]
Clarify

5 years agomore forumbugs
Joey Hess [Thu, 15 Jul 2021 17:06:56 +0000 (13:06 -0400)]
more forumbugs

There are surely a lot more of these..

5 years agofollowup
Joey Hess [Thu, 15 Jul 2021 17:05:25 +0000 (13:05 -0400)]
followup

5 years agomore forumbugs
Joey Hess [Thu, 15 Jul 2021 16:59:43 +0000 (12:59 -0400)]
more forumbugs

5 years agofix name
Joey Hess [Thu, 15 Jul 2021 16:56:44 +0000 (12:56 -0400)]
fix name

5 years agorename tag page
Joey Hess [Thu, 15 Jul 2021 16:55:05 +0000 (12:55 -0400)]
rename tag page

5 years agofix syntax
Joey Hess [Thu, 15 Jul 2021 16:53:03 +0000 (12:53 -0400)]
fix syntax

5 years agodon't treat bugreport tag page as a bug report
Joey Hess [Thu, 15 Jul 2021 16:52:21 +0000 (12:52 -0400)]
don't treat bugreport tag page as a bug report

5 years agoforum posts tagged bugreport get moved to the bug list and can be closed
Joey Hess [Thu, 15 Jul 2021 16:50:08 +0000 (12:50 -0400)]
forum posts tagged bugreport get moved to the bug list and can be closed

5 years agoFix retrieval of content from borg repos accessed over ssh
Joey Hess [Thu, 15 Jul 2021 16:38:55 +0000 (12:38 -0400)]
Fix retrieval of content from borg repos accessed over ssh

It was making the borgrepo path absolute.. even when it was a ssh
repository.

Made BorgRepo a newtype, to guard against accidentially treating it like a
FilePath.

Sponsored-by: Graham Spencer on Patreon
5 years agocomment
Joey Hess [Thu, 15 Jul 2021 16:19:49 +0000 (12:19 -0400)]
comment

5 years agofall back to checking lower case hash directories in normal repo
Joey Hess [Thu, 15 Jul 2021 16:16:31 +0000 (12:16 -0400)]
fall back to checking lower case hash directories in normal repo

Fix a bug that prevented getting content from a repository that started out
as a bare repository, or had annex.crippledfilesystem set, and was
converted to a non-bare repository.

This unfortunately means that inAnnex check gets slowed down by a stat call
in normal repos when the content is not present. Oh well, such is the cost
of backwards compatability with old mistakes.

Sponsored-by: Mark Reidenbach on Patreon
5 years agocomment
Joey Hess [Thu, 15 Jul 2021 15:48:12 +0000 (11:48 -0400)]
comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 15 Jul 2021 15:43:40 +0000 (11:43 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years ago(no commit message)
guardcat [Thu, 15 Jul 2021 10:33:26 +0000 (10:33 +0000)]

5 years ago(no commit message)
guardcat [Thu, 15 Jul 2021 10:29:59 +0000 (10:29 +0000)]

5 years ago(no commit message)
guardcat [Thu, 15 Jul 2021 09:45:54 +0000 (09:45 +0000)]

5 years ago(no commit message)
guardcat [Thu, 15 Jul 2021 09:35:40 +0000 (09:35 +0000)]