git-annex.git
4 years agofactor out IncrementalHasher from IncrementalVerifier
Joey Hess [Tue, 9 Nov 2021 16:29:09 +0000 (12:29 -0400)]
factor out IncrementalHasher from IncrementalVerifier

4 years agouninit edge cases
Joey Hess [Mon, 8 Nov 2021 20:47:00 +0000 (16:47 -0400)]
uninit edge cases

* uninit: Avoid error message when no commits have been made to the
  repository yet.
* uninit: Avoid error message when there is no git-annex branch.

Sponsored-by: Svenne Krap on Patreon
4 years agocomment
Joey Hess [Mon, 8 Nov 2021 20:28:43 +0000 (16:28 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 8 Nov 2021 20:23:05 +0000 (16:23 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 8 Nov 2021 20:20:57 +0000 (16:20 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agodevblog
Joey Hess [Mon, 8 Nov 2021 20:20:43 +0000 (16:20 -0400)]
devblog

4 years agodynamically disable filter-process in restagePointerFile when it would be slower
Joey Hess [Mon, 8 Nov 2021 19:55:27 +0000 (15:55 -0400)]
dynamically disable filter-process in restagePointerFile when it would be slower

Based on my earlier benchmark, I have a rough cost model for how
expensive it is for git-annex smudge to be run on a file, vs
how expensive it is for a gigabyte of a file's content to be read and
piped through to filter-process.

So, using that cost model, it can decide if using filter-process will
be more or less expensive than running the smudge filter on the files to
be restaged.

It turned out to be *really* annoying to temporarily disable
filter-process. I did find a way, but urk, this is horrible. Notice
that, if it's interrupted with it disabled, it will remain disabled
until the next time restagePointerFile runs. Which could be some time
later. If the user runs `git add` or `git checkout` on a lot of small
files before that, they will see slower than expected performance.

(This commit also deletes where I wrote down the benchmark results
earlier.)

Sponsored-by: Noam Kremen on Patreon
4 years agoAdded a comment
Lukey [Mon, 8 Nov 2021 19:38:35 +0000 (19:38 +0000)]
Added a comment

4 years agoAdded a comment
Ilya_Shlyakhter [Mon, 8 Nov 2021 16:34:30 +0000 (16:34 +0000)]
Added a comment

4 years agoSuggest description
xeruf [Sun, 7 Nov 2021 20:50:03 +0000 (20:50 +0000)]
Suggest description

4 years ago(no commit message)
xeruf [Sun, 7 Nov 2021 19:25:09 +0000 (19:25 +0000)]

4 years agobenchmarking of filter-process vs smudge/clean
Joey Hess [Fri, 5 Nov 2021 17:37:53 +0000 (13:37 -0400)]
benchmarking of filter-process vs smudge/clean

No firm conclusions yet, but it's doing better than I would have
expected.

Sponsored-by: Graham Spencer on Patreon
4 years agoclose
Joey Hess [Fri, 5 Nov 2021 16:46:56 +0000 (12:46 -0400)]
close

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 5 Nov 2021 16:46:14 +0000 (12:46 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoRevert "disable filter.annex.process in restagePointerFile"
Joey Hess [Fri, 5 Nov 2021 16:43:33 +0000 (12:43 -0400)]
Revert "disable filter.annex.process in restagePointerFile"

This reverts commit afe327ac4947d6d32ff888e7485509be03d9baaf.

Unfortunately, disabling it by setting it to "" does not work, git
then ignores filter.annex.smudge/clean, and does not pass files through
git-annex at all.

I don't think there is a way to temporarily disable this git config
from the git command line. Which seems like a bug in git.

So, it may be more expensive than anticipated to enable
filter.annex.process, since git checkout etc will pipe all annexed files
being checked out through it.

4 years agoupdate
Joey Hess [Fri, 5 Nov 2021 15:00:45 +0000 (11:00 -0400)]
update

4 years agoupdate
Joey Hess [Fri, 5 Nov 2021 14:53:11 +0000 (10:53 -0400)]
update

4 years agoAdded a comment
jkniiv [Fri, 5 Nov 2021 10:25:32 +0000 (10:25 +0000)]
Added a comment

4 years agorestated: plenty of unit tests fail both under Windows and Ubuntu 18.04
jkniiv [Fri, 5 Nov 2021 06:02:29 +0000 (06:02 +0000)]
restated: plenty of unit tests fail both under Windows and Ubuntu 18.04

4 years agoplenty of unit tests fail on Windows
jkniiv [Fri, 5 Nov 2021 03:34:16 +0000 (03:34 +0000)]
plenty of unit tests fail on Windows

4 years agoadd pktLineHeaderLength
Joey Hess [Thu, 4 Nov 2021 19:37:39 +0000 (15:37 -0400)]
add pktLineHeaderLength

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 4 Nov 2021 19:24:46 +0000 (15:24 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoadd filter.annex.process to bypassSmudgeConfig
Joey Hess [Thu, 4 Nov 2021 19:23:07 +0000 (15:23 -0400)]
add filter.annex.process to bypassSmudgeConfig

4 years agodisable filter.annex.process in restagePointerFile
Joey Hess [Thu, 4 Nov 2021 19:20:26 +0000 (15:20 -0400)]
disable filter.annex.process in restagePointerFile

This means git will run git-annex smudge --clean once per file that is
restaged, which can be slow. But probably *not* as slow as git feeding
all the content of annexed files you've gotten through a pipe to
git-annex filter-process.

The only time this is probably not ideal is after a drop of a bunch of
files, when filter-process would be faster.

4 years agoupdate for git-annex filter-process
Joey Hess [Thu, 4 Nov 2021 19:11:30 +0000 (15:11 -0400)]
update for git-annex filter-process

4 years agomention filter-process as v9 material
Joey Hess [Thu, 4 Nov 2021 19:05:24 +0000 (15:05 -0400)]
mention filter-process as v9 material

4 years agoupdate with actual command to run
Joey Hess [Thu, 4 Nov 2021 19:03:51 +0000 (15:03 -0400)]
update with actual command to run

4 years agoMerge branch 'master' into long-running-smudge
Joey Hess [Thu, 4 Nov 2021 19:03:28 +0000 (15:03 -0400)]
Merge branch 'master' into long-running-smudge

4 years agoreorg
Joey Hess [Thu, 4 Nov 2021 19:03:12 +0000 (15:03 -0400)]
reorg

4 years agoadd git-annex filter-process
Joey Hess [Thu, 4 Nov 2021 19:02:36 +0000 (15:02 -0400)]
add git-annex filter-process

filter-process: New command that can make git add/checkout faster when
there are a lot of unlocked annexed files or non-annexed files, but that
also makes git add of large annexed files slower.

Use it by running: git
config filter.annex.process 'git-annex filter-process'

Fully tested and working, but I have not benchmarked it at all.
And, incremental hashing is not done when git add uses it, so extra work is
done in that case.

Sponsored-by: Mark Reidenbach on Patreon
4 years agohandle unhandled case
Joey Hess [Thu, 4 Nov 2021 18:36:48 +0000 (14:36 -0400)]
handle unhandled case

4 years agoshorten synopsis
Joey Hess [Thu, 4 Nov 2021 18:33:07 +0000 (14:33 -0400)]
shorten synopsis

This is to avoid the display being too wide.

4 years agoremoved
CandyAngel [Thu, 4 Nov 2021 16:06:17 +0000 (16:06 +0000)]
removed

4 years agoAdded a comment
CandyAngel [Thu, 4 Nov 2021 16:04:07 +0000 (16:04 +0000)]
Added a comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 3 Nov 2021 20:06:49 +0000 (16:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agodevblog
Joey Hess [Wed, 3 Nov 2021 20:06:32 +0000 (16:06 -0400)]
devblog

4 years agolong-running-smudge branch started
Joey Hess [Wed, 3 Nov 2021 19:44:05 +0000 (15:44 -0400)]
long-running-smudge branch started

4 years agogit long-running filter process implementation
Joey Hess [Wed, 3 Nov 2021 19:41:26 +0000 (15:41 -0400)]
git long-running filter process implementation

This module is not used yet, but the plan is to use it for smudge/clean
filtering, at least as an option. In some circumstances, using this
interface may perform better than the interface git-annex is currently
using.

Sponsored-by: Brock Spratlen on Patreon
4 years agogit pkt-line implementation
Joey Hess [Wed, 3 Nov 2021 17:29:53 +0000 (13:29 -0400)]
git pkt-line implementation

This module is not used yet, but the plan is to implement
the long running filter process for smudge/clean.

Sponsored-by: Shae Erisson on Patreon
4 years ago(no commit message)
bjornw [Tue, 2 Nov 2021 23:12:33 +0000 (23:12 +0000)]

4 years ago(no commit message)
bjornw [Tue, 2 Nov 2021 23:10:14 +0000 (23:10 +0000)]

4 years agocomment
Joey Hess [Tue, 2 Nov 2021 19:24:22 +0000 (15:24 -0400)]
comment

4 years agocomment
Joey Hess [Tue, 2 Nov 2021 19:16:15 +0000 (15:16 -0400)]
comment

4 years agoinvestigation results
Joey Hess [Tue, 2 Nov 2021 19:06:20 +0000 (15:06 -0400)]
investigation results

Also, close dup bug.

4 years agotighter --json parsing for metadata
Joey Hess [Mon, 1 Nov 2021 18:40:33 +0000 (14:40 -0400)]
tighter --json parsing for metadata

metadata --batch --json: Reject input whose "fields" does not consist of
arrays of strings. Such invalid input used to be silently ignored.

Used to be that parseJSON for a JSONActionItem ran parseJSON separately
for the itemAdded, and if that failed, did not propagate the error. That
allowed different items with differently named fields to be parsed.
But it was actually only used to parse "fields" for metadata, so that
flexability is not needed.

The fix is just to parse "fields" as-is. AddJSONActionItemFields is needed
only because of the wonky way Command.MetaData adds onto the started json
object.

Note that this line got a dummy type signature added,
just because the type checker needs it to be some type.
itemFields = Nothing :: Maybe Bool
Since it's Nothing, it doesn't really matter what type it is,
and the value gets turned into json and is then thrown away.

Sponsored-by: Kevin Mueller on Patreon
4 years agocomment
Joey Hess [Mon, 1 Nov 2021 17:42:48 +0000 (13:42 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 1 Nov 2021 17:41:19 +0000 (13:41 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agometadata --batch: Avoid crashing when a non-annexed file is input
Joey Hess [Mon, 1 Nov 2021 17:38:14 +0000 (13:38 -0400)]
metadata --batch: Avoid crashing when a non-annexed file is input

Turns out that CommandStart actions do not have their exceptions caught,
which is why the giveup was causing a crash. Mostly these actions
do not do very much work on their own, but it does seem possible there
are other commands whose CommandStart also throws an exception.

So, my first attempt at a fix was to catch those exceptions. But,
--json-error-messages then causes a difficulty, because in order to output
a json error message, an action needs to have been started; that sets up
the json object that the error message will be included in a field of.

While it would be possible to output an object with just an error field,
this would be json output of a format that the user has no reason to
expect, that happens only in an exceptional circumstance. That is something
I have always wanted to avoid with the json output; while git-annex man
pages don't document what the json looks like, the output has always
been made to be self-describing. Eg, it includes "error-messages":[]
even when there's no errors.

With that ruled out, it doesn't seem a good idea to catch CommandStart
exceptions and display the error to stderr when --json-error-messages
is set. And so I don't know if it makes sense to catch exceptions from that
at all. Maybe I'd have a different opinion if --json-error-messages did not
exist though.

So instead, output a blank line like other batch commands do.
This also leaves open the possibility of implementing support for matching
object with metadata --json, which would also want to output a blank line
when the input didn't match.

Sponsored-by: Dartmouth College's DANDI project
4 years agoAdded a comment
Lukey [Sat, 30 Oct 2021 16:45:52 +0000 (16:45 +0000)]
Added a comment

4 years ago(no commit message)
erewhon [Sat, 30 Oct 2021 03:00:05 +0000 (03:00 +0000)]

4 years ago(no commit message)
jenkin.schibel@286264d9ceb79998aecff0d5d1a4ffe34f8b8421 [Fri, 29 Oct 2021 18:24:15 +0000 (18:24 +0000)]

4 years agoadd news item for git-annex 8.20211028
Joey Hess [Thu, 28 Oct 2021 16:01:31 +0000 (12:01 -0400)]
add news item for git-annex 8.20211028

4 years agoreleasing package git-annex version 8.20211028
Joey Hess [Thu, 28 Oct 2021 16:00:56 +0000 (12:00 -0400)]
releasing package git-annex version 8.20211028

4 years agofix addurl concurrency issue
Joey Hess [Wed, 27 Oct 2021 20:15:41 +0000 (16:15 -0400)]
fix addurl concurrency issue

addurl: Support adding the same url to multiple files at the same time when
using -J with --batch --with-files.

Implementation was easier than expected, was able to reuse OnlyActionOn.

While it will download the url's content multiple times, that seems like
the best thing to do; see my comment for why.

Sponsored-by: Dartmouth College's DANDI project
4 years agoadd a comment about checkSaneLock
Joey Hess [Wed, 27 Oct 2021 18:55:30 +0000 (14:55 -0400)]
add a comment about checkSaneLock

See commit 8c2dd7d8ee814614bf3c871903b5d4d2aba193f4 for original
introduction of it, but needing to spelunk that far back to understand
the code is not good.

4 years agomove transfer already in progress message to warning
Joey Hess [Wed, 27 Oct 2021 18:46:21 +0000 (14:46 -0400)]
move transfer already in progress message to warning

This makes it be displayed in the error-messages field with
--json-error-messages. And with --quiet, it will let it be displayed,
which makes sense because it's telling the user why what they requested
to do has failed to happen.

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 27 Oct 2021 18:40:41 +0000 (14:40 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agocomment
Joey Hess [Wed, 27 Oct 2021 18:40:02 +0000 (14:40 -0400)]
comment

4 years agoAdded a comment
jwodder [Wed, 27 Oct 2021 18:19:23 +0000 (18:19 +0000)]
Added a comment

4 years agocomment
Joey Hess [Wed, 27 Oct 2021 18:18:19 +0000 (14:18 -0400)]
comment

4 years agoavoid redundant freezeContent call
Joey Hess [Wed, 27 Oct 2021 18:11:34 +0000 (14:11 -0400)]
avoid redundant freezeContent call

This opens the potential for the object file to be in place but
git-annex is interrupted before it can freeze it. git-annex fsck already
fixes that situation, which can also occur when lockContentForRemoval
thaws content.

Also improve comment to not be Windows-specific.

4 years agoAdded a comment
jwodder [Wed, 27 Oct 2021 18:16:44 +0000 (18:16 +0000)]
Added a comment

4 years agoCall freezeContent after move into annex
Reiko Asakura [Tue, 26 Oct 2021 19:46:38 +0000 (15:46 -0400)]
Call freezeContent after move into annex

This change better supports Windows ACL management using
annex.freezecontent-command and annex.thawcontent-command and matches
the behaviour of adding an unlocked file.

By calling freezeContent after the file has moved into the annex,
the file's delete permission can be denied. If the file's delete
permission is denied before moving into the annex, the file cannot
be moved or deleted. If the file's delete permission is not denied after
moving into the annex, it will likely inherit a grant for the delete
permission which allows it to be deleted irrespective of the permissions
of the parent directory.

4 years agocomment
Joey Hess [Wed, 27 Oct 2021 17:55:36 +0000 (13:55 -0400)]
comment

4 years agocomment
Joey Hess [Wed, 27 Oct 2021 16:56:09 +0000 (12:56 -0400)]
comment

4 years agoupdate, bugfix also fixed git-annex info
Joey Hess [Wed, 27 Oct 2021 16:22:02 +0000 (12:22 -0400)]
update, bugfix also fixed git-annex info

4 years agocomment
Joey Hess [Wed, 27 Oct 2021 16:21:43 +0000 (12:21 -0400)]
comment

4 years ago(no commit message)
jwodder [Wed, 27 Oct 2021 16:08:30 +0000 (16:08 +0000)]

4 years ago(no commit message)
mich_hein@7649a6a913fc77618845b4f94a5ae54fa432708a [Wed, 27 Oct 2021 13:28:56 +0000 (13:28 +0000)]

4 years agoAdded a comment
jkniiv [Tue, 26 Oct 2021 23:55:13 +0000 (23:55 +0000)]
Added a comment

4 years ago(no commit message)
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Tue, 26 Oct 2021 22:37:52 +0000 (22:37 +0000)]

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Tue, 26 Oct 2021 20:13:19 +0000 (20:13 +0000)]
Added a comment

4 years agoUpdated patch
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Tue, 26 Oct 2021 19:55:58 +0000 (19:55 +0000)]
Updated patch

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Tue, 26 Oct 2021 19:54:53 +0000 (19:54 +0000)]
Added a comment

4 years agoFix using lookupkey inside a subdirectory
Joey Hess [Tue, 26 Oct 2021 18:58:44 +0000 (14:58 -0400)]
Fix using lookupkey inside a subdirectory

Caused by dirContains ".." "foo" being incorrectly False.

Also added a test of dirContains, which includes all the previous bug fixes
I could find and some obvious cases.

Reversion in version 8.20211011

Sponsored-by: Brett Eisenberg on Patreon
4 years agocomment
Joey Hess [Tue, 26 Oct 2021 18:12:35 +0000 (14:12 -0400)]
comment

4 years agoreview
Joey Hess [Tue, 26 Oct 2021 18:08:56 +0000 (14:08 -0400)]
review

4 years agowhen private journal file exists, still read from git-annex branch
Joey Hess [Tue, 26 Oct 2021 17:43:50 +0000 (13:43 -0400)]
when private journal file exists, still read from git-annex branch

Fix bug that caused stale git-annex branch information to read when
annex.private or remote.name.annex-private is set.

The private journal file should not prevent reading more current
information from the git-annex branch, but used to.

Note that, overBranchFileContents has to do additional work now, when
there's a private journal file, it reads from the branch redundantly
and more slowly.

Sponsored-by: Jack Hill on Patreon
4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 26 Oct 2021 16:11:40 +0000 (12:11 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoAdded a comment
Lukey [Mon, 25 Oct 2021 10:25:05 +0000 (10:25 +0000)]
Added a comment

4 years ago(no commit message)
Lukey [Mon, 25 Oct 2021 10:16:35 +0000 (10:16 +0000)]

4 years agoAdded a comment
pat [Sun, 24 Oct 2021 22:42:35 +0000 (22:42 +0000)]
Added a comment

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Sun, 24 Oct 2021 21:23:56 +0000 (21:23 +0000)]
Added a comment

4 years ago(no commit message)
jwodder [Sun, 24 Oct 2021 19:21:54 +0000 (19:21 +0000)]

4 years ago(no commit message)
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Sun, 24 Oct 2021 19:12:23 +0000 (19:12 +0000)]

4 years agostill think we should highlight this as new info
jkniiv [Sun, 24 Oct 2021 15:10:13 +0000 (15:10 +0000)]
still think we should highlight this as new info

4 years agoAdded a comment
username [Sat, 23 Oct 2021 15:53:57 +0000 (15:53 +0000)]
Added a comment

4 years agoMoved WSL1 guide to a tips page
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Fri, 22 Oct 2021 22:14:40 +0000 (22:14 +0000)]
Moved WSL1 guide to a tips page

4 years ago(no commit message)
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Fri, 22 Oct 2021 22:13:46 +0000 (22:13 +0000)]

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Fri, 22 Oct 2021 15:58:11 +0000 (15:58 +0000)]
Added a comment

4 years ago(no commit message)
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Thu, 21 Oct 2021 21:24:24 +0000 (21:24 +0000)]

4 years ago(no commit message)
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Thu, 21 Oct 2021 17:17:42 +0000 (17:17 +0000)]

4 years agoAdded a comment
git-annex.visiteur@e9d364191d2ffc1b163c8d9e4c57dbadf58aad8e [Thu, 21 Oct 2021 08:24:55 +0000 (08:24 +0000)]
Added a comment

4 years agoremove obsolete libgcc1
Joey Hess [Thu, 21 Oct 2021 07:02:16 +0000 (03:02 -0400)]
remove obsolete libgcc1

last seen in debian oldstable

4 years ago(no commit message)
jwodder [Thu, 21 Oct 2021 04:54:26 +0000 (04:54 +0000)]

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Thu, 21 Oct 2021 02:09:02 +0000 (02:09 +0000)]
Added a comment

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Thu, 21 Oct 2021 02:06:50 +0000 (02:06 +0000)]
Added a comment

4 years ago(no commit message)
jwodder [Thu, 21 Oct 2021 01:35:48 +0000 (01:35 +0000)]

4 years agoAdded a comment
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476 [Wed, 20 Oct 2021 22:54:39 +0000 (22:54 +0000)]
Added a comment

4 years agocomment
Joey Hess [Wed, 20 Oct 2021 19:25:35 +0000 (15:25 -0400)]
comment