yarikoptic [Thu, 24 Feb 2022 02:20:15 +0000 (02:20 +0000)]
Added a comment: approach which somewhat works
yarikoptic [Wed, 23 Feb 2022 21:08:16 +0000 (21:08 +0000)]
adjusted with edit 1 observation
yarikoptic [Wed, 23 Feb 2022 20:53:38 +0000 (20:53 +0000)]
initial experimentation/complain about freeze/thawing files
Joey Hess [Wed, 23 Feb 2022 19:17:08 +0000 (15:17 -0400)]
smudge: Warn when encountering a pointer file that has other content appended to it
It will then proceed to add the file the same as if it were any other
file containing possibly annexable content. Usually the file is one that
was annexed before, so the new, probably corrupt content will also be added
to the annex. If the file was not annexed before, the content will be added
to git.
It's not possible for the smudge filter to throw an error here, because
git then just adds the file to git anyway.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 23 Feb 2022 18:20:31 +0000 (14:20 -0400)]
fully specify the pointer file format
This format is designed to detect accidental appends, while having some
room for future expansion.
Detect when an unlocked file whose content is not present has gotten some
other content appended to it, and avoid treating it as a pointer file, so
that appended content will not be checked into git, but will be annexed
like any other file.
Dropped the max size of a pointer file down to 32kb, it was around 80 kb,
but without any good reason and certianly there are no valid pointer files
anywhere that are larger than 8kb, because it's just been specified what it
means for a pointer file with additional data even looks like.
I assume 32kb will be good enough for anyone. ;-) Really though, it needs
to be some smallish number, because that much of a file in git gets read
into memory when eg, catting pointer files. And since we have no use cases
for the extra lines of a pointer file yet, except possibly to add
some human-visible explanation that it is a git-annex pointer file, 32k
seems as reasonable an arbitrary number as anything. Increasing it would be
possible, eg to 64k, as long as users of such jumbo pointer files didn't
mind upgrading all their git-annex installations to one that supports the
new larger size.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 23 Feb 2022 16:54:40 +0000 (12:54 -0400)]
read up to and including maxPointerSz
For consistency with everything else.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 23 Feb 2022 16:38:35 +0000 (12:38 -0400)]
read a consistent amount from pointer file
A few places were reading the max symlink size of a pointer file,
then passing tp parseLinkTargetOrPointer. Which is fine currently, but
to support pointer files with lines of data after the pointer, enough
has to be read that parseLinkTargetOrPointer can be assured of seeing
enough of that data to know if it's correctly formatted.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 23 Feb 2022 16:24:09 +0000 (12:24 -0400)]
fold parseLinkTarget into parseLinkTargetOrPointer
Only one place remained that differentiated between them.
It is the case that a symlink target that happens to contain a newline
somehow will be treated as a link to a key truncated at the newline.
This is super unlikely to happen, and since a key cannot actually
contain a newline, it's as good a behavior as any. Anyway, this commit
does not change the behavior there, although arguably it should be
changed. Note that getAnnexLinkTarget does prevent a symlink target
containing a newline.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 23 Feb 2022 15:23:48 +0000 (11:23 -0400)]
comment
moortgat-pick [Wed, 23 Feb 2022 12:53:15 +0000 (12:53 +0000)]
moortgat-pick [Wed, 23 Feb 2022 12:46:37 +0000 (12:46 +0000)]
moortgat-pick [Wed, 23 Feb 2022 12:45:11 +0000 (12:45 +0000)]
https://christian.amsuess.com/chrysn [Wed, 23 Feb 2022 12:18:54 +0000 (12:18 +0000)]
Added a comment: inodes of git vs. git-annex
Joey Hess [Tue, 22 Feb 2022 17:34:58 +0000 (13:34 -0400)]
add news item for git-annex 10.
20220222
Joey Hess [Tue, 22 Feb 2022 17:33:45 +0000 (13:33 -0400)]
releasing package git-annex version 10.
20220222
Joey Hess [Tue, 22 Feb 2022 16:04:10 +0000 (12:04 -0400)]
comment
yarikoptic [Mon, 21 Feb 2022 21:53:03 +0000 (21:53 +0000)]
Added a comment
yarikoptic [Mon, 21 Feb 2022 21:48:59 +0000 (21:48 +0000)]
Added a comment
yarikoptic [Mon, 21 Feb 2022 21:46:15 +0000 (21:46 +0000)]
Added a comment
Joey Hess [Mon, 21 Feb 2022 19:59:29 +0000 (15:59 -0400)]
comment
Joey Hess [Mon, 21 Feb 2022 19:46:12 +0000 (15:46 -0400)]
comment
Joey Hess [Mon, 21 Feb 2022 19:39:38 +0000 (15:39 -0400)]
comment and close, not a bug really
Joey Hess [Mon, 21 Feb 2022 19:13:51 +0000 (15:13 -0400)]
comment
Joey Hess [Mon, 21 Feb 2022 19:00:55 +0000 (15:00 -0400)]
comment
Joey Hess [Mon, 21 Feb 2022 18:45:11 +0000 (14:45 -0400)]
info: Allow using matching options in more situations
File matching options like --include will be rejected in situations where
there is no filename to match against. (Or where there is a filename but
it's not relative to the cwd, or otherwise seemed too bothersome to match
against.)
The addition of listKeys' was necessary to avoid using more memory in the
common case of "git-annex info". Adding a filterM would have caused the
list to buffer in memory and not stream. This is an ugly hack, but listKeys
had previously run Annex operations inside unafeInterleaveIO (for direct
mode). And matching against a matcher should hopefully not change any Annex
state.
This does allow for eg `git-annex info somefile --include=*.ext`
although why someone would want to do that I don't really know. But it
seems to make sense to allow it.
But, consider: `git-annex info ./somefile --include=somefile`
This does not match, so will not display info about somefile.
If the user really wants to, they can `--include=./somefile`.
Using matching options like --copies or --in=remote seems likely to be
slower than git-annex find with those options, because unlike such
commands, info does not have optimised streaming through the matcher.
Note that `git-annex info remote` is not the same as
`git-annex info --in remote`. The former shows info about all files in
the remote. The latter shows local keys that are also in that remote.
The output should make that clear, but this still seems like a point
where users could get confused.
Sponsored-by: Jochen Bartl on Patreon
Joey Hess [Mon, 21 Feb 2022 16:49:36 +0000 (12:49 -0400)]
comment
Joey Hess [Mon, 21 Feb 2022 16:13:59 +0000 (12:13 -0400)]
retitle
Atemu [Sun, 20 Feb 2022 18:03:35 +0000 (18:03 +0000)]
xloem [Sat, 19 Feb 2022 07:50:53 +0000 (07:50 +0000)]
Added a comment
xloem [Sat, 19 Feb 2022 07:48:48 +0000 (07:48 +0000)]
removed
xloem [Sat, 19 Feb 2022 07:47:28 +0000 (07:47 +0000)]
Added a comment: free dweb storage services
xloem [Sat, 19 Feb 2022 07:47:07 +0000 (07:47 +0000)]
Added a comment: free dweb storage services
ycp@f118e050dc106530b9cf62ead031e05eef7b1687 [Sat, 19 Feb 2022 01:15:24 +0000 (01:15 +0000)]
Added a comment
yarikoptic [Fri, 18 Feb 2022 21:56:19 +0000 (21:56 +0000)]
Added a comment
yarikoptic [Fri, 18 Feb 2022 20:18:04 +0000 (20:18 +0000)]
Added a comment
yarikoptic [Fri, 18 Feb 2022 20:02:40 +0000 (20:02 +0000)]
initial thinking for a possible safe guard
yarikoptic [Fri, 18 Feb 2022 19:17:37 +0000 (19:17 +0000)]
bug/question on the semantic of find --unlocked
Joey Hess [Fri, 18 Feb 2022 19:06:40 +0000 (15:06 -0400)]
Avoid git status taking a long time after git-annex unlock of many files.
Implemented by making Git.Queue have a FlushAction, which can accumulate
along with another action on files, and runs only once the other action has
run.
This lets git-annex unlock queue up git update-index actions, without
conflicting with the restagePointerFiles FlushActions.
In a repository with filter-process enabled, git-annex unlock will
often not take any more time than before, though it may when the files are
large. Either way, it should always slow down less than git-annex status
speeds up.
When filter-process is not enabled, git-annex unlock will slow down as much
as git status speeds up.
Sponsored-by: Jochen Bartl on Patreon
Joey Hess [Fri, 18 Feb 2022 18:23:25 +0000 (14:23 -0400)]
restage pointer file after unlock
This avoids a later git status or similar taking a long time to run
as it runs git-annex smudge once per file. While v9 repositories do
avoid that taking long when the files are small, large files can still
make git status take a very long time.
This does make unlock slower, because now git-annex smudge is being run
once per file unlocked. However, the next commit should speed that up in
many cases.
Sponsored-by: Boyd Stephen Smith Jr. on Patreon
Joey Hess [Fri, 18 Feb 2022 17:18:05 +0000 (13:18 -0400)]
complete annex.skipunknown transition
annex.skipunknown now defaults to false, so commands like `git annex get foo*`
will not silently skip over files/dirs that are not checked into git.
Sponsored-by: Brock Spratlen on Patreon
Joey Hess [Fri, 18 Feb 2022 16:35:49 +0000 (12:35 -0400)]
comment
Joey Hess [Fri, 18 Feb 2022 16:16:19 +0000 (12:16 -0400)]
comment
Joey Hess [Fri, 18 Feb 2022 16:10:55 +0000 (12:10 -0400)]
comment
nluv4hs@705031de2adc81421f76ad6025dc4d1519d5361a [Wed, 16 Feb 2022 17:18:23 +0000 (17:18 +0000)]
ycp@f118e050dc106530b9cf62ead031e05eef7b1687 [Wed, 16 Feb 2022 08:03:05 +0000 (08:03 +0000)]
Added a comment: I have the same problem
Joey Hess [Mon, 14 Feb 2022 17:29:20 +0000 (13:29 -0400)]
registerurl,unregisterurl: rework output and support --json
* registerurl, unregisterurl: Improved output when reading from stdin
to be more like other batch commands.
* registerurl, unregisterurl: Added --json and --json-error-messages options.
Note that this did change the --batch output in a way that could possibly
break something that expected the old output to never change. I think it's
acceptable to break that because there has never been a guarantee of
unchanging output format except with --batch for most commands. The old
output was just really weird too!
One possible wart is that "git-annex registerurl" with no options now
seems to just hang, since it's waiting for stdin input. Before, it said
"registerurl (stdin)" which was clearer about what's happenening. But this
is a deprecated mode anyway, --batch makes clear what's happening. If
anything, this problem would be a reason to eventually remove the support
for reading from stdin w/o --batch.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Mon, 14 Feb 2022 16:42:37 +0000 (12:42 -0400)]
comment
Joey Hess [Thu, 10 Feb 2022 19:44:04 +0000 (15:44 -0400)]
comment
yarikoptic [Thu, 10 Feb 2022 15:55:56 +0000 (15:55 +0000)]
initial report on a failing test
yarikoptic [Wed, 9 Feb 2022 21:39:46 +0000 (21:39 +0000)]
initial todo for --json for registerurl
Jakube [Tue, 8 Feb 2022 20:50:56 +0000 (20:50 +0000)]
Jakube [Tue, 8 Feb 2022 20:46:18 +0000 (20:46 +0000)]
jonas@ab8487518c600ac0c785f4f6ca641c219f2bcfdc [Tue, 8 Feb 2022 18:04:45 +0000 (18:04 +0000)]
Added a comment
Joey Hess [Tue, 8 Feb 2022 17:24:28 +0000 (13:24 -0400)]
comment
Joey Hess [Tue, 8 Feb 2022 17:11:46 +0000 (13:11 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 8 Feb 2022 17:11:18 +0000 (13:11 -0400)]
comment
Joey Hess [Tue, 8 Feb 2022 17:03:58 +0000 (13:03 -0400)]
close wontfix
Joey Hess [Tue, 8 Feb 2022 16:22:34 +0000 (12:22 -0400)]
document another behavior of --auto
Atemu [Tue, 8 Feb 2022 10:47:21 +0000 (10:47 +0000)]
Joey Hess [Mon, 7 Feb 2022 18:58:15 +0000 (14:58 -0400)]
add a test case for transition propagation
As was fixed in
6992250d63484a6cf3e5d22b9137d23a3fe1a63e.
It took 2-3 years to notice that bug, so this part of git-annex needs
test cases like this.
Sponsored-by: Boyd Stephen Smith Jr. on Patreon
Joey Hess [Mon, 7 Feb 2022 18:09:43 +0000 (14:09 -0400)]
fix obviously wrong attoparsec parser
takeByteString can only be used at the end of a parser, not before other
input. This was a dumb enough mistake that I audited the rest of the
code base for similar mistakes. Pity that attoparsec cannot avoid it at
the type level.
Fixes git-annex forget propagation between repositories. (reversion
introduced in version 7.
20190122)
Sponsored-by: Brock Spratlen on Patreon
Joey Hess [Mon, 7 Feb 2022 17:12:14 +0000 (13:12 -0400)]
bug report followup
Joey Hess [Mon, 7 Feb 2022 16:42:27 +0000 (12:42 -0400)]
comment
Joey Hess [Mon, 7 Feb 2022 16:34:00 +0000 (12:34 -0400)]
comment
Joey Hess [Mon, 7 Feb 2022 16:33:23 +0000 (12:33 -0400)]
comment
Joey Hess [Mon, 7 Feb 2022 16:27:50 +0000 (12:27 -0400)]
comment and bug report
Joey Hess [Mon, 7 Feb 2022 16:17:18 +0000 (12:17 -0400)]
comment
jonas@ab8487518c600ac0c785f4f6ca641c219f2bcfdc [Sun, 6 Feb 2022 23:30:17 +0000 (23:30 +0000)]
Added a comment
jonas@ab8487518c600ac0c785f4f6ca641c219f2bcfdc [Sun, 6 Feb 2022 23:29:02 +0000 (23:29 +0000)]
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 08:09:20 +0000 (08:09 +0000)]
removed
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 07:58:55 +0000 (07:58 +0000)]
Added a comment
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 07:58:20 +0000 (07:58 +0000)]
Added a comment
MatusGoljer1 [Thu, 3 Feb 2022 23:28:54 +0000 (23:28 +0000)]
jwrauch [Wed, 2 Feb 2022 20:48:56 +0000 (20:48 +0000)]
Added a comment
Ilya_Shlyakhter [Wed, 2 Feb 2022 16:54:29 +0000 (16:54 +0000)]
added question on git-annex memory usage
Joey Hess [Tue, 1 Feb 2022 17:43:18 +0000 (13:43 -0400)]
Pass --no-textconv when running git diff internally
Seems that --no-ext-diff and -c diff.external= are not enough to disable
external diff command when gitattributes textconv specifies it.
I'm pretty sure that --no-ext-diff and -c diff.external= are not both
needed, but not 100%. Something about -G may need the latter to fully
disable diffs in some cases. So kept that part as it was.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Tue, 1 Feb 2022 17:29:06 +0000 (13:29 -0400)]
comment
jwrauch [Mon, 31 Jan 2022 19:41:42 +0000 (19:41 +0000)]
Joey Hess [Mon, 31 Jan 2022 17:42:37 +0000 (13:42 -0400)]
comment
Joey Hess [Mon, 31 Jan 2022 17:36:45 +0000 (13:36 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 31 Jan 2022 17:36:32 +0000 (13:36 -0400)]
comment
Joey Hess [Mon, 31 Jan 2022 17:19:09 +0000 (13:19 -0400)]
adb: Avoid find failing with "Argument list too long"
The "+" argument only runs the command once, so is not safe to use. Using
";" instead would have been the simplest fix, but also the slowest.
Since my phone has an xargs that supports -0, I piped find to xargs
instead. Unsure how portable this will be, perhaps some android's don't
have xargs -0 or find -printf to send null terminated output.
The business with pipefail is necessary to make a failure of find cause the
import to fail. Probably this works on all androids, but if not, it will
probably just result in a failure of find being ignored. It would be
possible to make ignorefinderror just disable setting pipefail, but then
if some android has a shell that has pipefail enabled by default, ignorefinderror
would not work, so I kept the || true approach for that.
Sponsored-by: Max Thoursie on Patreon
Joey Hess [Mon, 31 Jan 2022 16:39:54 +0000 (12:39 -0400)]
comment
Ilya_Shlyakhter [Mon, 31 Jan 2022 16:28:52 +0000 (16:28 +0000)]
Added a comment: conda updated
chewie@a4440559aa1bc84271fa9c8ef754e402afbd7d0d [Sun, 30 Jan 2022 18:14:47 +0000 (18:14 +0000)]
amerlyq [Sat, 29 Jan 2022 15:59:31 +0000 (15:59 +0000)]
Added a comment
Ilya_Shlyakhter [Fri, 28 Jan 2022 19:49:56 +0000 (19:49 +0000)]
Added a comment
Added a comment: Thanks!
Joey Hess [Thu, 27 Jan 2022 18:54:10 +0000 (14:54 -0400)]
add news item for git-annex 10.
20220127
Joey Hess [Thu, 27 Jan 2022 18:53:22 +0000 (14:53 -0400)]
releasing package git-annex version 10.
20220127
Joey Hess [Thu, 27 Jan 2022 18:36:40 +0000 (14:36 -0400)]
improve display of subframes
Joey Hess [Thu, 27 Jan 2022 17:51:16 +0000 (13:51 -0400)]
update
Joey Hess [Thu, 27 Jan 2022 16:58:36 +0000 (12:58 -0400)]
comment
yarikoptic [Wed, 26 Jan 2022 18:40:50 +0000 (18:40 +0000)]
Added a comment: comment regarding "default" version of the repo etc
Joey Hess [Wed, 26 Jan 2022 17:26:55 +0000 (13:26 -0400)]
comment
Joey Hess [Wed, 26 Jan 2022 17:25:01 +0000 (13:25 -0400)]
clarify --version behavior on upgrade
eg, git-annex init --version=9 does not use v10 even though v9 can
automatically upgrade to v10, because v9 is a supported version. It's
only unsupported versions that make a newer version be used.
Joey Hess [Wed, 26 Jan 2022 17:16:06 +0000 (13:16 -0400)]
have v9 autoupgrade to v10
This was right before commit
a27776f6026082683ab40d88745f1cc6242fca6c,
which made v6 v7 autoupgrade to v8 but not yet to v10.
Sponsored-by: Dartmouth College's Datalad project
Joey Hess [Wed, 26 Jan 2022 16:59:55 +0000 (12:59 -0400)]
reject batch options combined with non-batch options
Reject combinations of --batch (or --batch-keys) with options like --all or
--key or with filenames.
Most commands ignored the non-batch items when batch mode was enabled.
For some reason, addurl and dropkey both processed first the specified
non-batch items, followed by entering batch mode. Changed them to also
error out, for consistency.
Sponsored-by: Dartmouth College's Datalad project