git-annex.git
4 years agofix up comment
Dan Kessler [Wed, 27 Jul 2022 23:26:10 +0000 (19:26 -0400)]
fix up comment

4 years agoAdded a comment: Confirming all annexed files exist elsewhere?
Dan [Wed, 27 Jul 2022 16:35:22 +0000 (16:35 +0000)]
Added a comment: Confirming all annexed files exist elsewhere?

4 years agoAdded a comment: Bump for --want-get/drop-by
kdm9 [Tue, 26 Jul 2022 18:19:37 +0000 (18:19 +0000)]
Added a comment: Bump for --want-get/drop-by

4 years agouse ResourcePool for hash-object handles
Joey Hess [Mon, 25 Jul 2022 21:32:39 +0000 (17:32 -0400)]
use ResourcePool for hash-object handles

Avoid starting an unncessary number of git hash-object processes when
concurrency is enabled.

Sponsored-by: Dartmouth College's DANDI project
4 years agoanalysis
Joey Hess [Mon, 25 Jul 2022 21:03:24 +0000 (17:03 -0400)]
analysis

4 years agocomment and fix my incorrect earlier comment
Joey Hess [Mon, 25 Jul 2022 20:30:22 +0000 (16:30 -0400)]
comment and fix my incorrect earlier comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 25 Jul 2022 20:23:52 +0000 (16:23 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agohandle upgrading repositories initialized with --version=9
Joey Hess [Mon, 25 Jul 2022 20:13:46 +0000 (16:13 -0400)]
handle upgrading repositories initialized with --version=9

There is nothing in upgrade.log because it was never upgraded to version
9. Before, it would have never autoupgraded to 10, but it's entirely
safe to upgrade to 10 immediately.

Of course, annex.autoupgraderepository = false will prevent that
upgrade. So if someone for some reason really wants v9, they can set
that. I can't think of a reason someone would actually want v9 rather
than v10 though.

Sponsored-by: k0ld on Patreon
4 years agov8 repositories automatically upgrade to v9
Joey Hess [Mon, 25 Jul 2022 20:09:11 +0000 (16:09 -0400)]
v8 repositories automatically upgrade to v9

(And v9 later on to v10.)

When v9/v10 were added, making v8 automatically upgrade was deferred
"for a few months" to prevent interoperability problems if users also
have an old version of git-annex. Of course that could still be the
case, but there has been a good amount of time and this can't be put off
forever.

Allow setting annex.autoupgraderepository to false to avoid this upgrade.
Previously, that only prevented upgrades from no longer supported git-annex
versions, but v8 is still supported, and users may want to keep on v8 to
interoperate with an old git-annex version.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
4 years agoavoid writing new line to upgrade.log when upgrade is deferred
Joey Hess [Mon, 25 Jul 2022 20:01:48 +0000 (16:01 -0400)]
avoid writing new line to upgrade.log when upgrade is deferred

With automatic upgrades to v10 enabled, this could have led to each
run of git-annex adding a line to upgrade.log for v9. However,
they're not yet, so it only happened when running git-annex upgrade
in a v9 repository.

Sponsored-by: Brock Spratlen on Patreon
4 years agofix logic errors in code that determines if it's time for v10 upgrade
Joey Hess [Mon, 25 Jul 2022 19:56:33 +0000 (15:56 -0400)]
fix logic errors in code that determines if it's time for v10 upgrade

This would have prevented old git-annex from ever upgrading from v9 to
v10. Note that a manual `git-annex upgrade` can never run while the
assistant is running, so not <$> assistantrunning was always True,
so no matter what the timestamp of the v9 upgrade in the log, it would
decide there was old process danger.

Sponsored-by: Jack Hill on Patreon
4 years agoinitial report on hash-object's
yarikoptic [Mon, 25 Jul 2022 19:17:37 +0000 (19:17 +0000)]
initial report on hash-object's

4 years agoAdded a comment
yarikoptic [Mon, 25 Jul 2022 19:03:42 +0000 (19:03 +0000)]
Added a comment

4 years agofix build
Joey Hess [Mon, 25 Jul 2022 18:10:30 +0000 (14:10 -0400)]
fix build

4 years agoadd news item for git-annex 10.20220724
Joey Hess [Mon, 25 Jul 2022 18:07:37 +0000 (14:07 -0400)]
add news item for git-annex 10.20220724

4 years agoreleasing package git-annex version 10.20220724
Joey Hess [Mon, 25 Jul 2022 18:07:20 +0000 (14:07 -0400)]
releasing package git-annex version 10.20220724

4 years agocomment
Joey Hess [Mon, 25 Jul 2022 16:54:31 +0000 (12:54 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 25 Jul 2022 16:50:56 +0000 (12:50 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 25 Jul 2022 16:35:58 +0000 (12:35 -0400)]
comment

4 years agoAdded a comment
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Mon, 25 Jul 2022 07:52:39 +0000 (07:52 +0000)]
Added a comment

4 years agoremoved
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Mon, 25 Jul 2022 07:20:13 +0000 (07:20 +0000)]
removed

4 years agoAdded a comment
yarikoptic [Sun, 24 Jul 2022 16:52:33 +0000 (16:52 +0000)]
Added a comment

4 years agoAdded a comment
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Sun, 24 Jul 2022 16:16:35 +0000 (16:16 +0000)]
Added a comment

4 years ago(no commit message)
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Sat, 23 Jul 2022 15:24:06 +0000 (15:24 +0000)]

4 years agoAdded a comment
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Sat, 23 Jul 2022 08:48:17 +0000 (08:48 +0000)]
Added a comment

4 years agoAdded a comment: Confirmed your suspiction
drunken_sapo [Sat, 23 Jul 2022 02:28:18 +0000 (02:28 +0000)]
Added a comment: Confirmed your suspiction

4 years agoAdded a comment
Atemu [Fri, 22 Jul 2022 23:47:19 +0000 (23:47 +0000)]
Added a comment

4 years agoclose git bug that I reported to git mailing list
Joey Hess [Fri, 22 Jul 2022 17:24:24 +0000 (13:24 -0400)]
close git bug that I reported to git mailing list

4 years agoreproduced
Joey Hess [Fri, 22 Jul 2022 16:24:42 +0000 (12:24 -0400)]
reproduced

4 years agocomment
Joey Hess [Fri, 22 Jul 2022 15:59:15 +0000 (11:59 -0400)]
comment

4 years agocomment
Joey Hess [Fri, 22 Jul 2022 15:38:33 +0000 (11:38 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 22 Jul 2022 15:37:35 +0000 (11:37 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoforce fully strict read of journal file again
Joey Hess [Fri, 22 Jul 2022 15:36:21 +0000 (11:36 -0400)]
force fully strict read of journal file again

I was thinking that discardIncompleteAppend would make it strict, since
it looks at the end of the bytestring. But, it's applied lazily..

This probably fixes windows, which was failing:

      git-annex.exe: .git\annex\journal\trust.log: DeleteFile "\\\\?\\C:\\Users\\runneradmin\\.t\\5\\tmprepo22\\.git\\annex\\journal\\trust.log": permission denied (The process cannot access the file because it is being used by another process.)

4 years agoAdded a comment
jkniiv [Thu, 21 Jul 2022 20:08:55 +0000 (20:08 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Thu, 21 Jul 2022 14:03:56 +0000 (14:03 +0000)]
Added a comment

4 years agoAdded a comment: Happens only when core.untrackedCache=true
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Thu, 21 Jul 2022 08:23:04 +0000 (08:23 +0000)]
Added a comment: Happens only when core.untrackedCache=true

4 years agocomment
Joey Hess [Wed, 20 Jul 2022 17:51:26 +0000 (13:51 -0400)]
comment

4 years agocomment
Joey Hess [Wed, 20 Jul 2022 17:44:24 +0000 (13:44 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 20 Jul 2022 17:34:37 +0000 (13:34 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agofixed
Joey Hess [Wed, 20 Jul 2022 17:32:26 +0000 (13:32 -0400)]
fixed

4 years agoMerge branch 'append'
Joey Hess [Wed, 20 Jul 2022 17:24:04 +0000 (13:24 -0400)]
Merge branch 'append'

4 years agoprevent appends except when annex.alwayscompact=false
Joey Hess [Wed, 20 Jul 2022 17:19:06 +0000 (13:19 -0400)]
prevent appends except when annex.alwayscompact=false

I would like for a new repo version to enable appends, but to do so
safely would need a v11 followed by a 1 year delay followed by a v12
that does it. Since a similar v9 and v10 transition is currently
happening, and is less than 6 months along in most repos, it does not
feel wise to stack up another year-long transition behind that. What if
I need to hurry up a new repo version for some other change?

Added todo so I remember to make this change at some time when a v11
and probably v12 repo version do make sense.

Sponsored-by: Dartmouth College's DANDI project
4 years agohandling of interrupted appends
Joey Hess [Wed, 20 Jul 2022 16:39:03 +0000 (12:39 -0400)]
handling of interrupted appends

An append that is interrupted and writes part of a line is now dealt
with by subsequent reads and appends. This also handles a read that
happens at the same time as an append to the file.

Old versions of git-annex will still see a partially written line,
and could get confused. Since appends are currently done for url logs
and location logs, the confusion is limited to a substring of the actual
url or UUID of the remote being read. This will not affect writes, since
the journal file is locked when reading in preparation for writing.
However, the bad data can be output by git-annex and used by other
things, or could cause surprising behavior by git-annex. Including eg,
downloading the content of the wrong url.

So, something needs to be done to prevent old versions of git-annex from
running in a repository where this appending is being done..

Sponsored-by: Dartmouth College's DANDI project
4 years agono locking of journal on read after all
Joey Hess [Wed, 20 Jul 2022 14:57:28 +0000 (10:57 -0400)]
no locking of journal on read after all

Finally have a final design, and it turns out not to need locking on read.

4 years agocomment
Joey Hess [Tue, 19 Jul 2022 22:10:45 +0000 (18:10 -0400)]
comment

4 years agoAdded a comment
yarikoptic [Tue, 19 Jul 2022 21:29:02 +0000 (21:29 +0000)]
Added a comment

4 years agothoughts
Joey Hess [Tue, 19 Jul 2022 19:45:08 +0000 (15:45 -0400)]
thoughts

4 years agoAdded a comment: cannot reproduce
akspecs@fae4f3d58a0c6c9d50f01a850ce53d425e1a90ba [Tue, 19 Jul 2022 12:53:46 +0000 (12:53 +0000)]
Added a comment: cannot reproduce

4 years ago(no commit message)
arnaud@c1d1cc612a3921dc06a417301be08a3e125478c4 [Tue, 19 Jul 2022 11:22:26 +0000 (11:22 +0000)]

4 years ago(no commit message)
daven.quinn@d0ed4e0e5e4462d9a74a5d5a8fbd1b17f85db13e [Tue, 19 Jul 2022 07:57:37 +0000 (07:57 +0000)]

4 years agocomment
Joey Hess [Mon, 18 Jul 2022 21:02:41 +0000 (17:02 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 18 Jul 2022 20:56:31 +0000 (16:56 -0400)]
comment

4 years agoMerge branch 'master' into append
Joey Hess [Mon, 18 Jul 2022 20:46:01 +0000 (16:46 -0400)]
Merge branch 'master' into append

4 years agofix build
Joey Hess [Mon, 18 Jul 2022 20:44:32 +0000 (16:44 -0400)]
fix build

After 28b0aaea54e9515c16e440f9f22688dc2e7dc642

4 years agore-add lock journal before reading journal files
Joey Hess [Mon, 18 Jul 2022 20:40:25 +0000 (16:40 -0400)]
re-add lock journal before reading journal files

This reverts commit 2e6e9876e3fc420a22eee82eedec54ac3f678878.

This is gonna be needed after all.. The append will only be atomic if
the journal is locked, because the file being appended will have to be
moved out of the way to avoid an old version of git-annex seeing an
incomplete write to it. When git-annex finds that the file is not in the
journal, and checks the append location, locking will be needed to avoid
a race causing it to miss it in the append location too due to it being
moved back to the journal.

4 years agoadd annex.alwayscompact
Joey Hess [Mon, 18 Jul 2022 19:50:36 +0000 (15:50 -0400)]
add annex.alwayscompact

Added annex.alwayscompact setting which can be unset to speed up writes to
the git-annex branch in some cases.

Sponsored-by: Dartmouth College's DANDI project
4 years agoAdded a comment
yarikoptic [Mon, 18 Jul 2022 19:23:02 +0000 (19:23 +0000)]
Added a comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 18 Jul 2022 18:45:23 +0000 (14:45 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agocomments
Joey Hess [Mon, 18 Jul 2022 18:45:03 +0000 (14:45 -0400)]
comments

4 years agoMerge branch 'master' into append
Joey Hess [Mon, 18 Jul 2022 18:17:15 +0000 (14:17 -0400)]
Merge branch 'master' into append

4 years agoefficient but unsafe journal file append
Joey Hess [Mon, 18 Jul 2022 17:47:56 +0000 (13:47 -0400)]
efficient but unsafe journal file append

This is only for checking performance, it's not safe.

Sponsored-by: Dartmouth College's DANDI project
4 years agominor optimisation
Joey Hess [Mon, 18 Jul 2022 17:49:17 +0000 (13:49 -0400)]
minor optimisation

Avoid re-writing the file when the journal directory did not
exist.

4 years agoRevert "lock journal before reading journal files"
Joey Hess [Mon, 18 Jul 2022 17:38:12 +0000 (13:38 -0400)]
Revert "lock journal before reading journal files"

This reverts commit 47358a6f956681346a198cdf27c60bcf9498cc45.

This added overhead, and will not be needed, because appends are going
to have to be made atomic for other reasons than avoiding incomplete
reads of data being appended.

In particular, when git-annex is interrupted in the middle of an append,
it must not leave the file with a partially written line. So appending
has to somehow be made fully atomic.

4 years agosplit out appending to journal from writing, high level only
Joey Hess [Mon, 18 Jul 2022 17:22:50 +0000 (13:22 -0400)]
split out appending to journal from writing, high level only

Currently this is not an improvement, but it allows for optimising
appendJournalFile later. With an optimised appendJournalFile, this will
greatly speed up access patterns like git-annex addurl of a lot of urls
to the same key, where the log file can grow rather large. Appending
rather than re-writing the journal file for each line can save a lot of
disk writes.

It still has to read the current journal or branch file, to check
if it can append to it, and so when the journal file does not exist yet,
it can write the old content from the branch to it. Probably the re-reads
are better cached by the filesystem than repeated writes. (If the
re-reads turn out to keep performance bad, they could be eliminated, at
the cost of not being able to compact the log when replacing old
information in it. That could be enabled by a switch.)

While the immediate need is to affect addurl writes, it was implemented
at the level of presence logs, so will also perhaps speed up location logs.
The only added overhead is the call to isNewInfo, which only needs to
compare ByteStrings. Helping to balance that out, it avoids compactLog
when it's able to append.

Sponsored-by: Dartmouth College's DANDI project
4 years agoadded suggestion to record ETags in URL- keys
Ilya_Shlyakhter [Mon, 18 Jul 2022 16:43:28 +0000 (16:43 +0000)]
added suggestion to record ETags in URL- keys

4 years agoremoved duplicated content
g@aaed65f19d6c3a2a18c33da828e66c7bb915e65a [Mon, 18 Jul 2022 16:42:10 +0000 (16:42 +0000)]
removed duplicated content

4 years agoMerge branch 'master' into append
Joey Hess [Mon, 18 Jul 2022 16:38:17 +0000 (12:38 -0400)]
Merge branch 'master' into append

4 years agoAdd new bug "creating failure getting/copying on git-lfs remote (gcrypt)"
g@aaed65f19d6c3a2a18c33da828e66c7bb915e65a [Mon, 18 Jul 2022 16:18:42 +0000 (16:18 +0000)]
Add new bug "creating failure getting/copying on git-lfs remote (gcrypt)"

4 years agoAdd new bug "creating failure getting/copying on git-lfs remote (gcrypt)"
g@aaed65f19d6c3a2a18c33da828e66c7bb915e65a [Mon, 18 Jul 2022 16:17:33 +0000 (16:17 +0000)]
Add new bug "creating failure getting/copying on git-lfs remote (gcrypt)"

4 years agoAdded a comment: checksums and addurl --fast
Ilya_Shlyakhter [Mon, 18 Jul 2022 16:01:41 +0000 (16:01 +0000)]
Added a comment: checksums and addurl --fast

4 years agoAdded a comment
cehteh [Mon, 18 Jul 2022 13:19:44 +0000 (13:19 +0000)]
Added a comment

4 years agoAdded a comment
oliv5 [Sun, 17 Jul 2022 20:41:51 +0000 (20:41 +0000)]
Added a comment

4 years ago(no commit message)
Atemu [Sun, 17 Jul 2022 13:49:11 +0000 (13:49 +0000)]

4 years ago(no commit message)
Atemu [Sun, 17 Jul 2022 13:17:22 +0000 (13:17 +0000)]

4 years agoAdded a comment
Lukey [Sun, 17 Jul 2022 09:33:04 +0000 (09:33 +0000)]
Added a comment

4 years agoAdded a comment: Hashes for files added via addurl
tomdhunt [Sat, 16 Jul 2022 20:12:20 +0000 (20:12 +0000)]
Added a comment: Hashes for files added via addurl

4 years agoincrease cabal-version to work with recent cabal
Joey Hess [Sat, 16 Jul 2022 18:57:29 +0000 (14:57 -0400)]
increase cabal-version to work with recent cabal

It started complaining about custom setup needing too old a version of
cabal, a very confusing error message.

1.12 is the version of Cabal on the i386ancient builder.

Sponsored-by: Jack Hill on Patreon
4 years ago(no commit message)
dwhitman44@5e9829794550d547215bc1a5a197bde8e0c2d741 [Sat, 16 Jul 2022 17:03:03 +0000 (17:03 +0000)]

4 years agoAdded a comment
yarikoptic [Fri, 15 Jul 2022 19:33:50 +0000 (19:33 +0000)]
Added a comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 15 Jul 2022 19:07:05 +0000 (15:07 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agodesign work
Joey Hess [Fri, 15 Jul 2022 19:06:40 +0000 (15:06 -0400)]
design work

4 years agolock journal before reading journal files
Joey Hess [Fri, 15 Jul 2022 18:43:29 +0000 (14:43 -0400)]
lock journal before reading journal files

This is not currently necessary; journal files are updated atomically.

However, for faster appends to large journal files, locking on read will
be needed, because appends are not atomic.

Sponsored-by: Dartmouth College's DANDI project
4 years agodisable journalIgnorable in enableInteractiveBranchAccess
Joey Hess [Fri, 15 Jul 2022 17:43:46 +0000 (13:43 -0400)]
disable journalIgnorable in enableInteractiveBranchAccess

Fix a reversion that prevented --batch commands (and the assistant)
from noticing data written to the journal by other commands.

I have not identified which commit broke this for sure,
but probably it was aeca7c2207a652c8a72f044204a5c0edb4782aac

--batch commands that wrote to the journal avoided the problem since
journalIgnorable sets unset on write. It's a little bit surprising that
nobody noticed that query --batch commands did not see data written by
other commands.

Sponsored-by: Dartmouth College's DANDI project
4 years agocomplete a comment
Joey Hess [Fri, 15 Jul 2022 16:59:59 +0000 (12:59 -0400)]
complete a comment

4 years ago(no commit message)
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9 [Fri, 15 Jul 2022 16:26:18 +0000 (16:26 +0000)]

4 years agoAdded a comment
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9 [Fri, 15 Jul 2022 15:55:38 +0000 (15:55 +0000)]
Added a comment

4 years agocomment
Joey Hess [Fri, 15 Jul 2022 15:14:13 +0000 (11:14 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 15 Jul 2022 15:10:44 +0000 (11:10 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agocomment
Joey Hess [Fri, 15 Jul 2022 15:10:40 +0000 (11:10 -0400)]
comment

4 years ago(no commit message)
oliv5 [Fri, 15 Jul 2022 06:33:25 +0000 (06:33 +0000)]

4 years agoAdded a comment
jkniiv [Thu, 14 Jul 2022 20:32:06 +0000 (20:32 +0000)]
Added a comment

4 years agocomment
Joey Hess [Thu, 14 Jul 2022 20:09:48 +0000 (16:09 -0400)]
comment

4 years agoAdded a comment
yarikoptic [Thu, 14 Jul 2022 19:42:58 +0000 (19:42 +0000)]
Added a comment

4 years agocomments
Joey Hess [Thu, 14 Jul 2022 19:08:01 +0000 (15:08 -0400)]
comments

4 years agoS3: Avoid writing or checking the uuid file in the S3 bucket when importtree=yes...
Joey Hess [Thu, 14 Jul 2022 19:05:51 +0000 (15:05 -0400)]
S3: Avoid writing or checking the uuid file in the S3 bucket when importtree=yes or exporttree=yes

It does not make sense for either; importing from an existing bucket should
not write to it. And the user may not have write access at all. And exporting to
a bucket should not write other files.

Also this prevents the uuid file being imported after being written.

Sponsored-by: Dartmouth College's DANDI project
4 years agocomment
Joey Hess [Thu, 14 Jul 2022 17:54:50 +0000 (13:54 -0400)]
comment

4 years agoclose
Joey Hess [Thu, 14 Jul 2022 17:53:32 +0000 (13:53 -0400)]
close

4 years agocomment
Joey Hess [Thu, 14 Jul 2022 17:51:59 +0000 (13:51 -0400)]
comment

4 years agoAdded a comment
yarikoptic [Thu, 14 Jul 2022 17:00:40 +0000 (17:00 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Thu, 14 Jul 2022 16:50:15 +0000 (16:50 +0000)]
Added a comment