Commit graph

4604 commits

Author SHA1 Message Date
Joey Hess
6f0783d7a0
close bug report and improve docs that led to it being filed 2023-06-12 16:30:21 -04:00
Joey Hess
64738ea157
config: Added the --show-origin and --for-file options
* config: Added the --show-origin and --for-file options.
* config: Support annex.numcopies and annex.mincopies.

There is a little bit of redundancy here with other code elsewhere that
combines the various configs and selects which to use. But really only
for the special case of annex.numcopies, which is a git config that does
not override the annex branch setting and for annex.mincopies, which does
not have a git config but does have gitattributes settings as well as the
annex branch setting.

That seems small enough, and unlikely enough to grow into a mess that it was
worth supporting annex.numcopies and annex.mincopies in git-annex config
--show-origin. Because these settings are a prime thing that someone might
get confused about and want to know where they were configured.

And, it followed that git-annex config might as well support those two
for --set and --get as well. While this is redundant with the speclialized
commands, it's only a little code and it makes it more consistent.

Note that --set does not have as nice output as numcopies/mincopies
commands in some special cases like setting to 0 or a negative number.
It does avoid setting to a bad value thanks to the smart
constructors (eg configuredNumCopies).

As for other git-annex branch configurations that are not set by git-annex
config, things like trust and wanted that are specific to a repository
don't map to a git config name, so don't really fit into git-annex config.
And they are only configured in the git-annex branch with no local override
(at least so far), so --show-origin would not be useful for them.

Sponsored-by: Dartmouth College's DANDI project
2023-06-12 16:24:31 -04:00
Joey Hess
6b5af6a7f3
close weirdly time warped bug report 2023-06-12 12:51:50 -04:00
nobodyinperson
757ab21682 2023-06-12 13:56:48 +00:00
nobodyinperson
68d5976225 Added a comment 2023-06-10 06:06:59 +00:00
yarikoptic
97646765e2 initial todo/question for easing 2023-06-09 18:47:23 +00:00
nobodyinperson
2fe032c4ee Added a comment 2023-06-07 04:49:04 +00:00
Joey Hess
4437e187e6
update 2023-06-06 13:04:47 -04:00
Joey Hess
3efcb58b6a
comment 2023-06-06 13:02:15 -04:00
nobodyinperson
aa61ac4273 Added a comment 2023-06-06 12:54:36 +00:00
nobodyinperson
cf7249d00c 2023-06-06 12:49:11 +00:00
Joey Hess
4c9326dab5
reject 2023-06-05 15:00:39 -04:00
Joey Hess
92e4ed3cc0
retitle 2023-06-01 18:44:11 -04:00
Joey Hess
40017089f2
use importChanges optimisation
Large speed up to importing trees from special remotes that contain a lot
of files, by only processing changed files.

Benchmarks:

Importing from a special remote that has 10000 files, that have all been
imported before, and 1 new file sped up from 26.06 to 2.59 seconds.

An import with no change and 10000 unchanged files sped up from 24.3 to
1.99 seconds.

Going up to 20000 files, an import with no changes sped up from
125.95 to 3.84 seconds.

Sponsored-by: k0ld on Patreon
2023-06-01 13:47:00 -04:00
Joey Hess
51319f8558
update 2023-05-30 17:19:23 -04:00
Joey Hess
9ca81ed02a
update 2023-05-30 15:49:52 -04:00
Joey Hess
aaeae746f0
comment and a neat idea 2023-05-30 15:42:34 -04:00
yarikoptic
250194b7d1 Added a comment 2023-05-23 16:12:42 +00:00
Joey Hess
03437364b9
document -m 2023-05-23 11:46:54 -04:00
nobodyinperson
87e6c56a21 2023-05-22 11:22:42 +00:00
nobodyinperson
2510bdb799 Added a comment 2023-05-20 06:03:30 +00:00
Joey Hess
9ed59dab5b
assist: operate on all files in working tree by default
Consistency with sync and internal consistency is more important than
consistency with the assistant, which is not itself consistent about
what it does when run in a subdirectory.

Note that with -C, it will still commit staged changes to files outside
the directory. Like sync does. Presumably if the user is manually
staging things, then running this command, they intend to build up a
commit.

Sponsored-by: unqueued on Patreon
2023-05-19 14:47:05 -04:00
nobodyinperson
f8df46537d Added a comment: 👍 git annex assist 2023-05-19 05:54:44 +00:00
Joey Hess
e955912ad0
git-annex assist
assist: New command, which is the same as git-annex sync but with
new files added and content transferred by default.

(Also this fixes another reversion in git-annex sync,
--commit --no-commit, and --message were not enabled, oops.)

See added comment for why git-annex assist does commit staged
changes elsewhere in the work tree, but only adds files under
the cwd.

Note that it does not support --no-commit, --no-push, --no-pull
like sync does. My thinking is, why should it? If you want that
level of control, use git commit, git annex push, git annex pull.
Sync only got those options because pull and push were not split
out.

Sponsored-by: k0ld on Patreon
2023-05-18 14:37:43 -04:00
nobodyinperson
84563b7da4 Added a comment 2023-05-18 08:40:37 +00:00
Joey Hess
8987cc214e
update 2023-05-17 13:41:33 -04:00
Joey Hess
502e7affb9
Merge branch 'master' of ssh://git-annex.branchable.com 2023-05-17 13:33:47 -04:00
Joey Hess
5cc89b7444
comment 2023-05-17 13:33:42 -04:00
Joey Hess
f93a7fce1d
sync: Started transition to --content being enabled by default
When used without --content or --no-content, warn about the upcoming
transition, and suggest using one of the options, or setting
annex.synccontent.

Sponsored-by: Brett Eisenberg on Patreon
2023-05-17 13:23:42 -04:00
nobodyinperson
62b2a88dac Added a comment 2023-05-17 10:41:18 +00:00
Joey Hess
5df89d58c7
git-annex pull and push
Split out two new commands, git-annex pull and git-annex push. Those plus a
git commit are equivilant to git-annex sync.

In a sense, git-annex sync conflates 3 things, and it would have been
better to have push and pull from the beginning and not sync. Although
note that git-annex sync --content is faster than a pull followed by a
push, because it only has to walk the tree once, look at preferred
content once, etc. So there is some value in git-annex sync in speed, as
well as user convenience.

And it would be hard to split out pull and push from sync, as far as the
implementaton goes. The implementation inside sync was easy, just adjust
SyncOptions so it does the right thing.

Note that the new commands default to syncing content, unless
annex.synccontent is explicitly set to false. I'd like sync to also do
that, but that's a hard transition to make. As a start to that
transition, I added a note to git-annex-sync.mdwn that it may start to
do so in a future version of git-annex. But a real transition would
necessarily involve displaying warnings when sync is used without
--content, and time.

Sponsored-by: Kevin Mueller on Patreon
2023-05-16 16:51:07 -04:00
Joey Hess
705b7e2d36
comment 2023-05-16 13:08:43 -04:00
nobodyinperson
5c6b299ef6 Added a comment 2023-05-15 21:13:34 +00:00
Joey Hess
7d6a161e35
comment 2023-05-15 16:19:53 -04:00
nobodyinperson
ee23c540ea Added a comment: Git Alias for a 'full sync' 2023-05-15 07:31:41 +00:00
yarikoptic
69aea7a0a3 Added a comment 2023-05-12 13:22:19 +00:00
yarikoptic
38a9a9400b Added a comment 2023-05-12 13:22:01 +00:00
Joey Hess
3990cce78a
finished this 2023-05-11 13:57:59 -04:00
Joey Hess
271f3b1ab4
uninit: Support --json and --json-error-messages
Had to convert uninit to do everything that can error out inside a
CommandStart. This was harder than feels nice.

(Also, in passing, converted CommandCheck to use a data type, not a
weird number that it was not clear how it managed to be unique.)

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-11 13:43:02 -04:00
Joey Hess
de84abb210
configremote: Support --json and --json-error-messages
Seems unlikely to be too useful, but who knows.

Moved the checkSafeConfig call to happen after an action is started, so
it will be captured by --json-error-messages

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-10 14:21:42 -04:00
Joey Hess
a242eabc7a
enableremote: Support --json and --json-error-messages
Seems unlikely to be too useful, but who knows. Was trivial anyway.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-10 14:09:27 -04:00
Joey Hess
b3cc8dbacb
initremote: Support --json and --json-error-messages
Including special --whatelse handling.

Otherwise, it seems unlikely to be too useful, but who knows.

Refactored code to call starting before displaying error messages.
This makes the error messages be captured by --json-error-messages

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-10 14:03:40 -04:00
Joey Hess
8d8e044458
upgrade: Support --json and --json-error-messages and --json-progress
Seems unlikely to be very useful, but trivial.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-10 12:54:48 -04:00
Joey Hess
c98fb0b637
merge: Support --json and --json-error-messages and --json-progress
Seems unlikely to be very useful, but trivial.
And, this completes the story that git-annex sync does not need json,
since every sub-operation is available in a command that does support json.
(Well, except for committing, but that's not a git-annex command.)

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-10 12:34:19 -04:00
Joey Hess
7919349cee
importfeed: Support --json and --json-error-messages and --json-progress
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-09 16:51:16 -04:00
Joey Hess
04ee6c4c6b
importfeed: Support -J (and work toward supporting --json)
Both -J and --json needed importfeed to be refactored to use commandAction.

That was difficult, because of the interrelated nature of downloading feeds
and then downloading files from feeds, both of which needed to use
commandAction. And then checking for problems in feeds has to come after
these actions, which may be run as background jobs.

As for --json support, it's most of the way there, but still has some
warts, so I didn't enable jsonOptions yet. The warts include:

- An initial empty json record is displayed by getCache.
- Input is not populated, should be feed url
- feedProblem at end will not be captured by --json-error-messages
  (see FIXME)

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-09 16:13:56 -04:00
Joey Hess
a71c831949
renameremote: Support --json and --json-error-messages
Seems unlikely to be useful, but it works so

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 16:25:40 -04:00
Joey Hess
a5d0c85ae1
factor out maybeAddJSONField
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 16:15:41 -04:00
Joey Hess
3d8f93dc0a
reinject: Support --json and --json-error-messages
Also fix support for operating on multiple pairs of files and keys.

Moved notAnnexed to inside starting, so error message will get into the json.

Cannot include the key in the starting as it's not known yet, so instead
add it to the json later.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 15:43:37 -04:00
Joey Hess
91b9915b09
reinit: Support --json and --json-error-messages
Basically same concerns as init..

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 15:07:40 -04:00
Joey Hess
f09a248fe2
init: Support --json and --json-error-messages
Dunno how useful this will be, since about all that's accessible from
the json is whether it succeeded or failed, and the error messages
which were already on stderr.

Note that, when autoenabling a special remote, it would be possible for
one to stop and prompt or output not using Messages and so not output as
part of the json. I don't think that happens, but I'm not 100% sure
something doesn't manage to break it. Of course, the same could be the
case for commands that transfer objects. Using Annex.Init.autoEnableSpecialRemotes
in --json mode would avoid the problem, but I've chosen to wait until I
know it's needed to use it.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 14:58:08 -04:00
Joey Hess
c208442292
unused: Support --json and --json-error-messages
Generalized AddJSONActionItemField to allow it to add several fields. Not entirely
happy with that, since the names of the fields have to be carefully chosen to
not conflict with other json fields. And fields added that way can't be parsed
back in FromJSON, except for the "fields" field that is special cased for metadata.
Still, I couldn't see another way to do it.

Also, omit file:null from the json output. Which does affect other commands,
eg git-annex whereis --all --json. Hopefully that won't break something that expects
a null file. If it did, that could be reverted, but it would be ugly to have
file:null in the unused --json

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-08 14:39:57 -04:00
Joey Hess
a267a5efa1
oops 2023-05-05 15:36:51 -04:00
Joey Hess
365dbc89dc
expire, trust et al, dead, describe: Support --json and --json-error-messages
For expire, the normal output is unchanged, but the --json output includes the uuid
in machine parseable form. Which could be very useful for this somewhat obscure
command. That needed ActionItemUUID to be implemented, which seemed like a lot
of work, but then ---

I had been going to skip implementing them for trust, untrust, dead, semitrust,
and describe, but putting the uuid in the json is useful information, it tells
what uuid git-annex picked given the input. It was not hard to support
these once ActionItemUUID was implemented.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-05 15:33:30 -04:00
Joey Hess
1a9af823bc
addunused, dropunused: Support --json and --json-error-messages
This also changes addunused to display the names of the files that it adds.
That seems like a general usability improvement, and not displaying the input
number does not seem likely to be a problem to a user, since the filename
is based on the key. Displaying the filename was necessary to get it and the key
included in the json.

dropunused does not include the key in the json. It would be possible to
add, but would need more changes. And I doubt that dropunused --json
would be used in a situation where a program cared which keys were
dropped. Note that drop --unused does have the key in its json, so such
a program could just use it. Or could just dropkey --batch with the
specific keys it wants to drop if it cares about specific keys.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-05 14:01:40 -04:00
Joey Hess
8c3a847960
update 2023-05-04 16:48:51 -04:00
Joey Hess
1d4bd2dcb8
migrate, undo: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-04 16:34:35 -04:00
Joey Hess
38fc5d3fc7
rekey, setpresentkey: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-04 16:03:54 -04:00
Joey Hess
9bc9421c08
update 2023-05-04 14:34:37 -04:00
Joey Hess
f20c8b087e
fix: Support --json and --json-error-messages
And triaged out some commands that don't need to support these options.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-04 14:28:21 -04:00
Joey Hess
46c7c30140
log: Support --json and --json-error-messages
Also in passing the --all display was fixed up to not quote keys like filenames.

Note that the check added to compareChanges was needed to avoid logging when
nothing changed.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-04 12:36:31 -04:00
yarikoptic
563d6dcf62 moved log and rmurl to the top as the one we use AFAIK 2023-05-04 00:10:09 +00:00
Joey Hess
6cbcba484c
unannex: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-03 15:56:20 -04:00
yarikoptic
2002108a55 plea for --json for unannex and other commands 2023-05-03 19:08:03 +00:00
nobodyinperson
bc1410100b Added a comment: adding all files or only in current directory? 2023-05-03 14:23:05 +00:00
nobodyinperson
a24a4cfbcd 2023-04-28 07:56:18 +00:00
Joey Hess
67f8268b3f
Support core.sharedRepository=0xxx at long last
Sponsored-by: Brett Eisenberg on Patreon
2023-04-26 17:03:29 -04:00
Joey Hess
7af75a59be
Warn about unsupported core.sharedRepository=0xxx when set
This spams the user with a lot of messages, but it seems like busywork to
avoid that and only warn once, since this warning will go away when it gets
implemented.

Also fix parsing of the octal value.

Sponsored-by: Kevin Mueller on Patreon
2023-04-26 13:25:29 -04:00
Joey Hess
4881bc5a53
rename errorid to message-id 2023-04-26 12:53:30 -04:00
yarikoptic
b43da83a67 Added a comment 2023-04-26 16:38:27 +00:00
yarikoptic
5a24daf500 Added a comment 2023-04-26 14:34:32 +00:00
Joey Hess
96cb6d2157
close and followup 2023-04-25 19:32:51 -04:00
Joey Hess
be36e208c2
json object for FileNotFound
When a nonexistant file is passed to a command and  --json-error-messages
is enabled, output a JSON object indicating the problem.

(But git ls-files --error-unmatch still displays errors about such files in
some situations.)

I don't like the duplication of the name of the command introduced by this,
but I can't see a great way around it. One way would be to pass the Command
instead.

When json is not enabled, the stderr is unchanged. This is necessary
because some commands like find have custom output. So dislaying
"find foo not found" would be wrong. So had to complicate things with
toplevelFileProblem having different output with and without json.

When not using --json-error-messages but still using --json, it displays
the error to stderr, but does display a json object without the error. It
does have an errorid though. Unsure how useful that behavior is.

Sponsored-by: Dartmouth College's Datalad project
2023-04-25 19:26:20 -04:00
Joey Hess
91ba0cc7fd
Revert "--json-exceptions"
This reverts commit a325524454.

Turns out this was predicated on an incorrect belief that json output
didn't already sometimes lack the "key" field. Since json output already
can when `giveup` was used, it seems unncessary to add a whole new
option for this.
2023-04-25 17:37:34 -04:00
Joey Hess
7c514d717b
Merge branch 'master' of ssh://git-annex.branchable.com 2023-04-25 17:08:52 -04:00
Joey Hess
a325524454
--json-exceptions
Added a --json-exceptions option, which makes some exceptions be output in json.

The distinction is that --json-error-messages is for messages relating
to a particular ActionItem, while --json-exceptions is for messages that
are not, eg ones for a file that does not exist.

It's unfortunate that we need two switches with such a fine distinction
between them, but I'm worried about maintaining backwards compatability
in the json output, to avoid breaking anything that parses it, and this was
the way to make sure I didn't.

toplevelWarning is generally used for the latter kind of message. And
the other calls to toplevelWarning could be converted to showException. The
only possible gotcha is that if toplevelWarning is ever called after
starting acting on a file, it will add to the --json-error-messages of the
json displayed for that file and converting to showException would be a
behavior change. That seems unlikely, but I didn't convery everything to
avoid needing to satisfy myself it was not a concern.

Sponsored-by: Dartmouth College's Datalad project
2023-04-25 17:05:33 -04:00
yarikoptic
38e9b0989e Added a comment 2023-04-25 18:45:58 +00:00
yarikoptic
def90e6fb0 Added a comment 2023-04-25 18:31:20 +00:00
Joey Hess
6b77c02be9
comment 2023-04-25 14:30:27 -04:00
Joey Hess
97d10f2f44
update 2023-04-25 13:49:19 -04:00
Joey Hess
26953ad3a6
comment 2023-04-25 13:18:01 -04:00
Joey Hess
fdac66ae10
sanitize control characters in main thread fatal exceptions
Sponsored-by: Noam Kremen on Patreon
2023-04-12 14:21:53 -04:00
Joey Hess
c50aa21d5f
init: Avoid autoenabling special remotes that have control characters in their names
I'm on the fence about this. Notice that pulling from a git remote can
pull branches that have escape sequences in their names. Git will
display those as-is. Arguably git should try harder to avoid that.

But, names of remotes are usually up to the local user, and autoenable
changes that, and so it makes sense that git chooses to display control
characters in names of remotes, and so autoenable needs to guard against
it.

Sponsored-by: Graham Spencer on Patreon
2023-04-12 12:37:12 -04:00
Joey Hess
27915817b0
update 2023-04-11 16:31:31 -04:00
Joey Hess
8b6c7bdbcc
filter out control characters in all other Messages
This does, as a side effect, make long notes in json output not
be indented. The indentation is only needed to offset them
underneath the display of the file they apply to, so that's ok.

Sponsored-by: Brock Spratlen on Patreon
2023-04-11 12:58:01 -04:00
Joey Hess
a0e6fa18eb
eliminate showStart showStartOther
These were not handling control characters and are redundant.

Sponsored-by: Jack Hill on Patreon
2023-04-10 16:28:58 -04:00
Joey Hess
3290a09a70
filter out control characters in warning messages
Converted warning and similar to use StringContainingQuotedPath. Most
warnings are static strings, some do refer to filepaths that need to be
quoted, and others don't need quoting.

Note that, since quote filters out control characters of even
UnquotedString, this makes all warnings safe, even when an attacker
sneaks in a control character in some other way.

When json is being output, no quoting is done, since json gets its own
quoting.

This does, as a side effect, make warning messages in json output not
be indented. The indentation is only needed to offset warning messages
underneath the display of the file they apply to, so that's ok.

Sponsored-by: Brett Eisenberg on Patreon
2023-04-10 15:55:44 -04:00
Joey Hess
cd544e548b
filter out control characters in error messages
giveup changed to filter out control characters. (It is too low level to
make it use StringContainingQuotedPath.)

error still does not, but it should only be used for internal errors,
where the message is not attacker-controlled.

Changed a lot of existing error to giveup when it is not strictly an
internal error.

Of course, other exceptions can still be thrown, either by code in
git-annex, or a library, that include some attacker-controlled value.
This does not guard against those.

Sponsored-by: Noam Kremen on Patreon
2023-04-10 13:50:51 -04:00
Joey Hess
2ba1559a8e
git style quoting for ActionItemOther
Added StringContainingQuotedPath, which is used for ActionItemOther.

In the process, checked every ActionItemOther for those containing
filenames, and made them use quoting.

Sponsored-by: Graham Spencer on Patreon
2023-04-08 16:30:01 -04:00
Joey Hess
c5b017e55b
full emulation of git filename escaping
Not yet used, but the plan is to make git-annex use this when displaying
filenames similar to how git does.

Sponsored-by: Lawrence Brogan on Patreon
2023-04-07 17:17:31 -04:00
Joey Hess
218cb6ab56
expand 2023-04-07 13:13:16 -04:00
Joey Hess
c417336fbb
todo 2023-04-05 19:37:21 -04:00
Joey Hess
2b940f7725
registerurl, unregisterurl: Added --remote option
This serves two purposes. --remote=web bypasses other special remotes that
claim the url, same as addurl --raw. And, specifying some other remote
allows making sure that an url is claimed by the remote you expect,
which makes then using setpresentkey not be fragile.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-04-05 15:54:41 -04:00
Joey Hess
c39d72ac78
comments 2023-04-05 15:00:39 -04:00
yarikoptic
e4c93a233e Added a comment 2023-04-05 01:03:38 +00:00
Joey Hess
e37b968383
comment 2023-04-04 14:09:02 -04:00
Joey Hess
bac1a990a6
comments 2023-04-04 13:52:23 -04:00
yarikoptic
d9549d4744 initial todo for adding --remote to registerurl 2023-03-31 22:15:26 +00:00
Joey Hess
18d326cb6f
external protocol VERSION 2
Support VERSION 2 in the external special remote protocol, which is
identical to VERSION 1, but avoids external remote programs neededing to
work around the above bug. External remote program that support
exporttree=yes are recommended to be updated to send VERSION 2.

Sponsored-by: Kevin Mueller on Patreon
2023-03-28 17:00:08 -04:00
Joey Hess
bb8c550d0d
comment 2023-03-28 12:14:23 -04:00
gerzoyayde@85d55f6dec266753698f42d1c8e06917ef6674a3
a91f8070e7 Added a comment: annex.bwlimit and jobs 2023-03-28 00:00:44 +00:00
Joey Hess
2b5fa091e2
annex.maxextensionlength for view
view: Support annex.maxextensionlength when generating filenames for the
view branch.

Note that refining an existing view will reuse the extension length that was
configured when initially constructing the view. This is necessarily the case
because it reuses the filenames.

Also view files used to have all extensions at the end, no matter how
many there were. Since annex.maxextensionlength's documentation includes
that it's limited to 2 extensions, I made it consistent with that.

Sponsored-by: k0ld on Patreon
2023-03-24 14:01:38 -04:00
Xyem
bf32e6137d Added a comment 2023-03-23 22:26:25 +00:00
Joey Hess
85702b2b38
comment 2023-03-23 16:45:03 -04:00
Xyem
328e9672db Added a comment 2023-03-23 17:05:24 +00:00
Joey Hess
47c010155f
todo that I decided not to do, recorded for posterity 2023-03-14 12:25:22 -04:00
Joey Hess
8c0051930e
comment 2023-03-10 11:48:37 -04:00
yarikoptic
db8d50dbeb Added a comment 2023-03-10 02:52:08 +00:00
yarikoptic
996868f552 original idea on some "native" support for ephemeral datalad clones. 2023-03-10 02:50:38 +00:00
Joey Hess
bded62378a
close 2023-03-01 12:34:40 -04:00
Joey Hess
70d89456d2
close 2023-03-01 12:22:38 -04:00
Joey Hess
9fcaf27cba
done with adjusted view branches!
Well, perhaps it could be documented better, but it's a compositional
feature so users who need it will probably try it and be happy to find
that it works.
2023-02-27 15:55:31 -04:00
Joey Hess
a5a23f0e9a
comment 2023-02-27 11:57:07 -04:00
nobodyinperson
f9b4b318c2 Added a comment 2023-02-23 22:59:49 +00:00
Joey Hess
595f5b8b1a
comment 2023-02-23 14:46:44 -04:00
Atemu
cfb396becf Added a comment 2023-02-23 08:59:28 +00:00
nobodyinperson
a268dbf401 2023-02-22 21:57:19 +00:00
Joey Hess
da61d564f1
fix view reversion caused by optimisation
view: Fix a reversion in 10.20230214 that omitted a file from a view when
the file had no metadata set, but the view only used path fields.

Sponsored-by: Jack Hill on Patreon
2023-02-16 15:18:17 -04:00
Joey Hess
1c2e5b4519
close bug as dup and update todo item with implementation plan 2023-02-16 14:51:00 -04:00
jkniiv
5565f6b61b a todo on: explicit metadata needed for view inclusion or not 2023-02-15 19:07:25 +00:00
Joey Hess
2b73662291
comment 2023-02-14 12:18:00 -04:00
nobodyinperson
2e80d964de Added a comment: 👍 This made it easier for the Thunar plugin! 2023-02-14 09:35:32 +00:00
Joey Hess
826b225ca8
Sped up view branch construction by 50%
A benchmark in my sound repository with `git-annex view feedtitle=*`
took 2:52 wall clock time before and 1:58 after. Though it still only used
130% of CPU.

This is the same kind of optimisation that is in seekFilteredKeys, though
that precaches location logs while this streams the metadata logs direct
to parsing them.

seekFilteredKeys contains more streaming, to find the annexed files, and
this could be further sped up with similar streaming.

Sponsored-by: Nicholas Golder-Manning on Patreon
2023-02-13 13:29:57 -04:00
Joey Hess
551d5abeb5
close todo and open new one 2023-02-10 15:51:38 -04:00
Joey Hess
9e59ebea52
comment 2023-02-10 14:42:14 -04:00
nobodyinperson
11b250352c Added a comment: long filenames in view 2023-02-08 22:11:30 +00:00
nobodyinperson
6e7e9813ee Added a comment: git annex sync when in view 2023-02-08 20:17:12 +00:00
Joey Hess
5f9bf51438
sync in view branch updates the view branch
* sync: When run in a view branch, refresh the view branch to reflect any
    changes that have been made to the parent branch or metadata.

This is basically working, but probably needs some more work to deal with
all the edge cases of things sync does.

Sponsored-by: Lawrence Brogan on Patreon
2023-02-08 15:37:28 -04:00
Joey Hess
dcaea65e39
comment 2023-02-08 12:41:54 -04:00
Joey Hess
21e8d201f3
link to related todo 2023-02-08 12:35:29 -04:00
Joey Hess
ece8f393f8
fix spelling 2023-02-08 12:21:53 -04:00
Joey Hess
f19ee2c479
thought 2023-02-08 12:21:33 -04:00
Joey Hess
9a8f6e8d67
todo 2023-02-08 09:40:07 -04:00
nobodyinperson
4f733c25ba Added a comment 2023-02-07 20:54:48 +00:00
Joey Hess
aa0350ff49
add directory to views for files that lack specified metadata
* view: New field?=glob and ?tag syntax that includes a directory "_"
  in the view for files that do not have the specified metadata set.
* Added annex.viewunsetdirectory git config to change the name of the
  "_" directory in a view.

When in a view using the new syntax, old git-annex will fail to parse the
view log. It errors with "Not in a view.", which is not ideal. But that
only affects view commands.

annex.viewunsetdirectory is included in the View for a couple of reasons.
One is to avoid needing to warn the user that it should not be changed when
in a view, since that would confuse git-annex. Another reason is that it
helped with plumbing the value through to some pure functions.

annex.viewunsetdirectory is actually mangled the same as any other view
directory. So if it's configured to something like "N/A", there won't be
multiple levels of directories, which would also confuse git-annex.

Sponsored-By: Jack Hill on Patreon
2023-02-07 16:28:46 -04:00
Joey Hess
fb30ad7846
comment 2023-02-07 13:31:45 -04:00
nobodyinperson
3965919100 2023-02-03 13:40:41 +00:00
nobodyinperson
6de19ba619 Added a comment: 👍 +1 for updating the view when committing 2023-02-03 13:25:22 +00:00
jpds
dd923afc56 Added a comment 2023-01-28 00:00:13 +00:00
nobodyinperson
d8d5564e69 Added a comment: Thank you!! 2023-01-24 21:15:50 +00:00
nobodyinperson
4edae1430a Added a comment 2023-01-23 22:55:11 +00:00
nobodyinperson
c2c405d45a Added a comment 2023-01-23 22:38:28 +00:00
Joey Hess
57987ed2cd
update 2023-01-23 18:08:55 -04:00
Joey Hess
1ee72de32e
done 2023-01-23 17:57:15 -04:00
Joey Hess
05b2ae30f0
update 2023-01-23 12:45:01 -04:00
Joey Hess
45c338204f
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-20 11:23:24 -04:00
Joey Hess
5645017a03
comment 2023-01-20 11:23:04 -04:00
nobodyinperson
f14346bf07 2023-01-20 10:29:33 +00:00
yarikoptic
ea44f2416c Added a comment 2023-01-18 17:55:50 +00:00
Joey Hess
2a92f5cc2c
comment 2023-01-18 13:05:47 -04:00
Joey Hess
f8bc208e89
findkeys: New command, very similar to git-annex find but operating on keys
I've long been asked for `git-annex find --all` or something like that,
but pushed back on it because I feel that the command is analagous to
find(1) and so it would be surprising for it to list keys rather than
files. So instead, add a new findkeys subcommand.

Note that the use of withKeyOptions is rather strange because usually
that is used to fall back to --all rather than listing files, but here
it's made to default to --all like behavior and never list files.

A performance thing that could be improved is that withKeyOptions
always reads and caches location logs. But findkeys with no options does
not need them, so it could be made faster. That caching does speed up
options like --in though. This is really just a subset of a more general
performance thing that --all reads location logs sometimes unncessarily.
Anyway, it needs to read the location log in order to checkDead,
and it seems good that findkeys does skip dead keys.

Also, cleaned up comments on git-annex-find man page asking for --all
option.

Sponsored-by: Dartmouth College's DANDI project
2023-01-17 14:51:57 -04:00
Joey Hess
ce241f9aa9
comment 2023-01-17 13:10:28 -04:00
daven.quinn@d0ed4e0e5e4462d9a74a5d5a8fbd1b17f85db13e
be6aec3100 Added a comment: comment 1 response 2023-01-16 21:45:35 +00:00
yarikoptic
e42ac8844e Added a comment 2023-01-16 21:43:40 +00:00
yarikoptic
fdca11e815 Added a comment 2023-01-16 21:32:09 +00:00
Joey Hess
e97da33773
comment 2023-01-16 15:52:52 -04:00
Joey Hess
ec0107098d
close wontfix with submitter agreement 2023-01-16 14:40:30 -04:00
Joey Hess
321850a67d
close as dup 2023-01-16 14:37:44 -04:00
Joey Hess
62dd19e391
comment 2023-01-16 14:28:46 -04:00
Joey Hess
086cb30eb1
comment 2023-01-16 14:16:13 -04:00
Joey Hess
f87c74566a
close wontfix 2023-01-16 14:08:37 -04:00
Joey Hess
7f39037e57
close 2023-01-16 14:02:10 -04:00
Joey Hess
4229e6761e
close 2023-01-16 13:57:54 -04:00
Joey Hess
817b06b439
close wontfix 2023-01-16 13:53:54 -04:00
Joey Hess
90e21c59a1
comment 2023-01-16 13:51:19 -04:00
Joey Hess
6156fe625d
close this old todo 2023-01-16 13:45:24 -04:00
Joey Hess
dcebf6851a
comment 2023-01-16 13:36:08 -04:00
Joey Hess
df5a3a6ca4
respond and wontfix 2023-01-16 13:35:14 -04:00
Joey Hess
8955a9c7d2
comment 2023-01-16 13:16:02 -04:00
Joey Hess
156842cff6
comment 2023-01-16 12:58:32 -04:00
yarikoptic
3b769d91dd Added a comment 2023-01-12 20:48:48 +00:00
Joey Hess
cfaae7e931
added an optional cost= configuration to all special remotes
Note that when this is specified and an older git-annex is used to
enableremote such a special remote, it will simply ignore the cost= field
and use whatever the default cost is.

In passing, fixed adb to support the remote.name.cost and
remote.name.cost-command configs.

Sponsored-by: Dartmouth College's DANDI project
2023-01-12 13:42:28 -04:00
nobodyinperson
8da345b1fb 2023-01-12 10:10:37 +00:00
Joey Hess
8a305e5fa3
respect urlinclude/urlexclude of other web special remotes
When a web special remote does not have urlinclude/urlexclude
configured, make it respect the configuration of other web special
remotes and avoid using urls that match the config of another.

Note that the other web special remote does not have to be enabled.
That seems ok, it would have been extra work to check for only ones that
are enabled.

The implementation does mean that the web special remote re-parses
its own config once at startup, as well as re-parsing the configs of any
other web special remotes. This should be a very small slowdown
unless there are lots of web special remotes.

Sponsored-by: Dartmouth College's DANDI project
2023-01-10 14:58:53 -04:00
Joey Hess
0fc476f16e
comments 2023-01-10 11:52:11 -04:00
yarikoptic
79be0eea2f Added a comment: Concern 2023-01-10 13:17:30 +00:00
nobodyinperson
4a13131ce7 Added a comment: {copy,move} with both --to and --from would be great! 2023-01-10 09:38:39 +00:00
yarikoptic
dfaccf0b21 Added a comment 2023-01-09 22:04:11 +00:00
yarikoptic
f33dda3e7a initial report on copy --from --to 2023-01-09 21:51:18 +00:00
Joey Hess
6fa166e1fc
web: Add urlinclude and urlexclude configuration settings
Sponsored-by: Dartmouth College's DANDI project
2023-01-09 17:16:53 -04:00
Joey Hess
8d06930c88
web special remote is no longer a singleton
Allow initremote of additional special remotes with type=web, in addition
to the default web special remote.

When --sameas=web is used, these provide additional names for the web
special remote, and may also have their own additional configuration
(once there is any for the web special remote) and cost.

Sponsored-by: Dartmouth College's DANDI project
2023-01-09 15:49:20 -04:00
satra
a5d3328a6f Added a comment: use list order for cost 2023-01-06 19:36:07 +00:00
yarikoptic
c7aa99808c initial todo on prioritization of URLs 2023-01-06 17:27:34 +00:00
yarikoptic
975cb5edf1 Added a comment: importtree readonly remote folder? 2023-01-06 14:21:36 +00:00
Joey Hess
4d90053e17
remove old closed bugs and todo items to speed up wiki updates and reduce size
Remove closed bugs and todos that were last edited or commented before 2022.

Except for ones tagged projects/* since projects like datalad want to keep
around records of old deleted bugs longer.

Command line used:

	for f in $(grep -l '|done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2022 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2022 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
	for f in $(grep -l '\[\[done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2022 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2022 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
2023-01-05 15:09:30 -04:00
nobodyinperson
45e71edc17 Added a comment 2023-01-02 22:58:08 +00:00
nobodyinperson
6e2f35f77d Added a comment 2023-01-02 21:58:26 +00:00
Joey Hess
adb122adcf
todo 2023-01-02 15:58:47 -04:00
Joey Hess
c326e5100f
comment 2023-01-02 15:08:24 -04:00
nobodyinperson
2c40c30dd0 Added a comment 2022-12-29 10:49:27 +00:00
Joey Hess
0b76a32629
comment 2022-12-27 17:03:47 -04:00
nobodyinperson
c14e15fd1a Added a comment: Maybe add a very slow KDF first? 2022-12-27 20:26:45 +00:00
Joey Hess
0be6cad7a8
idea 2022-12-27 13:48:53 -04:00
Joey Hess
65ddd13cf7
close 2022-12-26 13:31:09 -04:00
nobodyinperson
82ae848dd0 Added a comment 2022-12-23 10:05:27 +00:00
nobodyinperson
8ec93b6e2f Added a comment 2022-12-23 09:39:58 +00:00
Joey Hess
bda406ff90
Merge branch 'master' of ssh://git-annex.branchable.com 2022-12-22 14:34:16 -04:00
Joey Hess
2fa7656627
switch to readMaybe to handle values with leading number followed by non-number
readish ignores a trailing string after a number, but to support values
like "YYYY:MM:DD" which it makes sense to compare lexographically,
require the whole string to be parsed as a number in order to enable
numeric comparison.

Sponsored-by: Max Thoursie on Patreon
2022-12-22 14:33:47 -04:00
nobodyinperson
11873d00cd Added a comment 2022-12-22 11:39:41 +00:00
Joey Hess
eb8e0594bb
use status --ignore-submodules in configureSmudgeFilter
Speed up git-annex upgrade (from v5) and init in a repository that has
submodules. Setting the config does not affect the submodules, so avoid
the work of getting status in them, which may involve using the smudge
filter etc.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2022-12-20 16:02:42 -04:00
Joey Hess
0b2dd374d8
--anything and --nothing
Added --anything (and --nothing). Eg, git-annex find --anything will list
all annexed files whether or not the content is present. This is slightly
faster and clearer than --include=* or --exclude=*

While I can't imagine how --nothing will be used, preferred content
expressions already had anything and nothing, so might as well support both
as matching options as well.

Sponsored-by: Dartmouth College's Datalad project
2022-12-20 15:44:09 -04:00
Joey Hess
5cbfb74391
belatedly added comment made somewhat earlier 2022-12-20 15:02:09 -04:00
yarikoptic
d3532ebe2b initial TODO for making it possible to use find/findref without penalty 2022-12-15 01:24:55 +00:00
yarikoptic
2e62601db3 fixing formatting 2022-12-12 23:11:21 +00:00
yarikoptic
e1133e9de8 initial report on annex upgrade too curious about submodules 2022-12-12 23:03:33 +00:00
Joey Hess
aa6919737c
--metadata lexicographical comparisons
Change --metadata comparisons < > <= and >= to fall back to lexicographical
comparisons when one or both values being compared are not numbers.

Sponsored-by: Erik Bjäreholt on Patreon
2022-12-12 13:33:24 -04:00
nobodyinperson
ea0a8f5551 2022-12-02 12:00:35 +00:00
nobodyinperson
c0df47c6ac 2022-12-02 11:57:40 +00:00
nobodyinperson
ae9ef1f8fe 2022-12-02 11:56:02 +00:00
Joey Hess
4ae920e0f2
close dup with comment 2022-11-21 15:13:21 -04:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
06793aee26 Add my name for better comunication 2022-11-18 22:05:07 +00:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
58eedf062d Add another reflink support request 2022-11-18 22:02:20 +00:00
Joey Hess
9313bf0eac
close as git-annex already makes reflinks when supported 2022-11-14 13:29:27 -04:00
Lena Wildervanck
a140e16fb6 add macos reflink to comment 2022-11-13 20:20:03 +01:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
896a299a34 Added a comment 2022-11-13 19:03:49 +00:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
092b118099 2022-11-13 15:42:14 +00:00
Joey Hess
e03cf52504
done 2022-11-04 16:20:51 -04:00
Joey Hess
3149a1e2fe
More robust handling of ErrorBusy when writing to sqlite databases
While ErrorBusy and other exceptions were caught and the write retried for
up to 10 seconds, it was still possible for git-annex to eventually
give up and error out without writing to the database. Now it will retry
as long as necessary.

This does mean that, if one git-annex process is suspended just as sqlite
has locked the database for writing, another git-annex that tries to write
it it might get stuck retrying forever. But, that could already happen when
opening the sqlite database, which retries forever on ErrorBusy. This is an
area where git-annex is known to not behave well, there's a todo about the
general case of it.

Sponsored-by: Dartmouth College's Datalad project
2022-10-17 15:56:19 -04:00
Joey Hess
d5cd1de280
update and open a todo about something I'm pondering 2022-10-12 15:53:56 -04:00
Joey Hess
b4305315b2
S3: pass fileprefix into getBucket calls
S3: Speed up importing from a large bucket when fileprefix= is set by only
asking for files under the prefix.

getBucket still returns the files with the prefix included, so the rest of
the fileprefix stripping still works unchanged.

Sponsored-by: Dartmouth College's DANDI project
2022-10-10 17:37:26 -04:00
Joey Hess
1328be2013
applied a patch 2022-09-30 14:04:10 -04:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
3c1230a8c0 2022-09-30 15:41:51 +00:00
Joey Hess
79aadf63d4
changelog and close 2022-09-26 13:11:23 -04:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
f105bed5d9 2022-09-25 19:39:22 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
cc9634ce12 2022-09-24 23:28:09 +00:00
Joey Hess
f64eff9355
test: Added --test-with-git-config option
Sponsored-by: Dartmouth College's DANDI project
2022-09-22 15:58:45 -04:00
Joey Hess
d049228fd3
comment and todo 2022-09-22 14:48:32 -04:00
Joey Hess
34e313f786
annex.diskreserve default increased from 1 mb to 100 mb
It's hard to know what's a good default for this. But 1 mb seems way too
small, because it's very easy for a git pull or some similar operation
that we don't think of as using much space to use up 1 mb of space.

Most people would want to free up some space if a filesystem only had 100
mb free. But on a small VPS, it's probably not uncommon to have only 1 gb
free. So 1 gb is too large for annex.diskreserve.

While old 1 gb USB keys are around, it's unlikely that anyone is
relying on them to shuttle annex data around; it would be worth anyone's
time to upgrade to a 32 gb or larger cheap modern USB key ($5).

Sponsored-by: Kevin Mueller on Patreon
2022-09-21 15:00:13 -04:00
Joey Hess
94216c99a7
comment and todo 2022-09-21 14:32:42 -04:00
Joey Hess
90da0a5e59
comment 2022-09-21 13:04:47 -04:00
yarikoptic
f3a99db14b Added a comment 2022-09-20 22:50:46 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
0602d659af Added a comment 2022-09-20 21:30:51 +00:00
Joey Hess
3d51f866d3
comment 2022-09-20 14:02:09 -04:00
Joey Hess
f5a3a12360
wontfix 2022-09-20 13:54:34 -04:00
Joey Hess
0a4871cb65
comment 2022-09-16 12:39:43 -04:00
prancewit
f9417c9b20 Added a comment 2022-09-16 08:39:09 +00:00
Joey Hess
9164d9587c
general purpose design for this todo
Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-09-15 14:26:18 -04:00
prancewit
bef6eb5d02 Added a comment 2022-09-13 21:36:38 +00:00
prancewit
9f5f960548 removed 2022-09-13 21:34:39 +00:00
prancewit
518105f89c Added a comment 2022-09-13 21:32:45 +00:00
prancewit
e0e16187a8 Added a comment: My current use case 2022-09-13 19:45:23 +00:00
Joey Hess
e13444fb2b
comments 2022-09-13 12:46:05 -04:00
prancewit
0b3da75e62 2022-09-12 19:06:11 +00:00
Joey Hess
c2184e2295
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-09 14:46:55 -04:00
Joey Hess
c62fe5e9a8
avoid redundant prompt for http password in git-annex get that does autoinit
autoEnableSpecialRemotes runs a subprocess, and if the uuid for a git
remote has not been probed yet, that will do a http get that will prompt
for a password. And then the parent process will subsequently prompt
for a password when getting annexed files from the remote.

So the solution is for autoEnableSpecialRemotes to run remoteList before
the subprocess, which will probe for the uuid for the git remote in the
same process that will later be used to get annexed files.

But, Remote.Git imports Annex.Init, and Remote.List imports Remote.Git,
so Annex.Init cannot import Remote.List. Had to pass remoteList into
functions in Annex.Init to get around this dependency loop.
2022-09-09 14:43:43 -04:00
Joey Hess
9621beabc4
cache credentials in memory when doing http basic auth to a git remote
When accessing a git remote over http needs a git credential prompt for a
password, cache it for the lifetime of the git-annex process, rather than
repeatedly prompting.

The git-lfs special remote already caches the credential when discovering
the endpoint. And presumably commands like git pull do as well, since they
may download multiple urls from a remote.

The TMVar CredentialCache is read, so two concurrent calls to
getBasicAuthFromCredential will both prompt for a credential.
There would already be two concurrent password prompts in such a case,
and existing uses of `prompt` probably avoid it. Anyway, it's no worse
than before.
2022-09-09 14:20:32 -04:00
yarikoptic
9811a02b67 Added a comment 2022-09-09 16:51:47 +00:00
Joey Hess
adb2f5cc00
comment 2022-09-09 12:39:28 -04:00
Joey Hess
28fc8d491f
comment 2022-09-09 12:30:46 -04:00
yarikoptic
f895adbb05 initial todo on multiple passwords entry for get 2022-09-06 21:02:01 +00:00
jgoerzen
254c204da2 Added a comment: mtree can help 2022-09-03 17:30:58 +00:00
yarikoptic
55252d1d4f Added a comment 2022-08-30 19:38:49 +00:00
Joey Hess
b7ff67d176
update 2022-08-30 15:22:06 -04:00
Joey Hess
e1dd689630
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-30 15:20:46 -04:00
Joey Hess
a93163d6f7
optimise linker in linux standalone tarballs
Trick the linker into not doing unncessary work searching for optimised
libraries that are not present, by symlinking the directories where
optimised libs would be to the main lib dir.

This reduces the ENOENT of git-annex init by about 1/2. The linker always
finds the files where it looks first time now. I have not looked at what
the wall clock speedup might be, it's probably rather small.

If a x86-64-v5 comes to be, the list will need to be extended. And there
may be other directories used on some machines that I have missed. Not done
for arm64 yet, or any uncommon architectures.

Sponsored-by: Dartmouth College's Datalad project
2022-08-30 15:20:04 -04:00
Joey Hess
345e60a623
comment 2022-08-30 13:36:53 -04:00
yarikoptic
04689aa74d Added a comment 2022-08-29 20:46:12 +00:00
Ilya_Shlyakhter
8df2e2dbd8 added suggestion for git-annex-import to import symlinks 2022-08-29 18:45:35 +00:00
Ilya_Shlyakhter
a1efed2a9c Added a comment: testremote cleanup 2022-08-29 18:09:24 +00:00
Joey Hess
d4fd966396
avoid dup check of guardSafeToUseRepo
Speeds up init slightly, and reduces the number of syscalls by the
dynamic linker.

Sponsored-by: Dartmouth College's Datalad project
2022-08-29 13:52:58 -04:00
Joey Hess
f184dca7de
comment 2022-08-29 13:38:42 -04:00
Joey Hess
f8524d6ecb
comment 2022-08-29 12:45:58 -04:00
Ilya_Shlyakhter
86e0e8fce1 Added a comment: testremote cleanup 2022-08-28 20:15:39 +00:00
yarikoptic
ab8ffb406c initial report on libpcre lookups 2022-08-27 00:53:22 +00:00
yarikoptic
3ff0d9ac66 Added a comment 2022-08-24 19:27:00 +00:00
Joey Hess
5e45befa1b
comment 2022-08-24 15:17:43 -04:00
yarikoptic
9750dd5e21 Added a comment 2022-08-24 18:40:10 +00:00
yarikoptic
8e5b22af2f Added a comment 2022-08-24 18:35:25 +00:00
yarikoptic
26c152bae1 Added a comment 2022-08-24 18:32:53 +00:00
Joey Hess
33083a952a
comment 2022-08-24 13:28:43 -04:00
Joey Hess
ef037b9028
comment 2022-08-24 13:26:42 -04:00
Joey Hess
a124a53fa2
comment 2022-08-24 13:17:56 -04:00
Joey Hess
ea445260ba
comment 2022-08-24 13:13:45 -04:00
yarikoptic
cc64741410 Added a comment 2022-08-24 15:42:10 +00:00
yarikoptic
4344943d64 added "reproducer" 2022-08-24 15:25:33 +00:00
yarikoptic
749593af7d request add --batch to be able to handle directories 2022-08-24 15:12:19 +00:00
Ilya_Shlyakhter
ba5c8cba44 added suggestion to add clean-up after a testremote failure 2022-08-24 14:52:36 +00:00
Joey Hess
28921af543
remove old closed bugs and todo items to speed up wiki updates and reduce size
Remove closed bugs and todos that were last edited or commented before 2021.

Except for ones tagged projects/* since projects like datalad want to keep
around records of old deleted bugs longer.

Command line used:

    for f in $(grep -l '|done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
    for f in $(grep -l '\[\[done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
2022-08-22 12:27:10 -04:00
Yaroslav Halchenko
0151976676
Typo fix unncessary -> unnecessary.
Detected while reading recent CHANGELOG entry but then decided to apply
to entire codebase and docs since why not?
2022-08-20 09:40:19 -04:00
Joey Hess
cd9fd6e28c
fix case of Win32 2022-08-04 12:17:27 -04:00
jkniiv
2930afded3 Added a comment: typo in Utility/LockFile/Windows.hs 2022-08-03 20:46:14 +00:00
Joey Hess
f185140d3e
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-03 11:16:50 -04:00
Joey Hess
3a513cfe73
add --dry-run: New option
This is intended for users who want to see what it would output in order to
eg, check if a file would be added to git or the annex. It is not intended
as a way for scripts to get information.

Sponsored-by: Dartmouth College's Datalad project
2022-08-03 11:16:04 -04:00
jkniiv
e5a83d29bc Added a comment 2022-08-03 15:14:23 +00:00
Joey Hess
54b3bfed4b
comment 2022-08-03 10:21:08 -04:00
Joey Hess
c6ce2150f4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-03 09:53:56 -04:00
yarikoptic
d297e9ba78 initial report on wanting --dry-run 2022-08-02 21:06:06 +00:00
Joey Hess
472f5c142b
Use createFile_NoRetry from win32 2.13.3.1
Sponsored-by: Tobias Ammann on Patreon
2022-08-02 10:45:39 -04:00
Joey Hess
f6f46eb9eb
comment 2022-08-01 12:45:41 -04:00
Joey Hess
89095abc26
comment 2022-08-01 12:38:39 -04:00
Joey Hess
0c0724e9a8
response 2022-08-01 12:36:44 -04:00
Joey Hess
08be64b6f6
comment 2022-07-29 12:30:33 -04:00
Joey Hess
be19a68276
new matching options --want-get-by and --want-drop-by
Sponsored-by: Graham Spencer on Patreon
2022-07-28 13:26:03 -04:00
kdm9
11f7e68e16 Added a comment: Bump for --want-get/drop-by 2022-07-26 18:19:37 +00:00
Joey Hess
d4b2c4a3fe
comment and fix my incorrect earlier comment 2022-07-25 16:30:22 -04:00
yarikoptic
dfa8298f46 Added a comment 2022-07-25 19:03:42 +00:00
Joey Hess
7f77405f60
comment 2022-07-25 12:50:56 -04:00
Joey Hess
7e4ee80e9a
comment 2022-07-25 12:35:58 -04:00
yarikoptic
b40ac7af3d Added a comment 2022-07-24 16:52:33 +00:00
Joey Hess
2de61f2e5a
comment 2022-07-22 11:38:33 -04:00
jkniiv
3d105f44bb Added a comment 2022-07-21 20:08:55 +00:00
yarikoptic
152f82796a Added a comment 2022-07-21 14:03:56 +00:00
Joey Hess
27e0108097
comment 2022-07-20 13:51:26 -04:00
Joey Hess
03ce01dcf9
comment 2022-07-20 13:44:24 -04:00
Joey Hess
8b4f7af605
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-20 13:34:37 -04:00
Joey Hess
a0746d2027
fixed 2022-07-20 13:32:26 -04:00
Joey Hess
05b96a1acf
Merge branch 'append' 2022-07-20 13:24:04 -04:00
Joey Hess
4e88137a28
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
2022-07-20 13:23:55 -04:00
Joey Hess
c933b0074f
comment 2022-07-19 18:10:45 -04:00
yarikoptic
78642ededb Added a comment 2022-07-19 21:29:02 +00:00
Joey Hess
d832a7c211
thoughts 2022-07-19 15:45:08 -04:00
daven.quinn@d0ed4e0e5e4462d9a74a5d5a8fbd1b17f85db13e
0568fc872d 2022-07-19 07:57:37 +00:00
Joey Hess
fd6e01d9b6
comment 2022-07-18 17:02:41 -04:00
Joey Hess
2cb634c373
comment 2022-07-18 16:56:31 -04:00
yarikoptic
cab61b88e0 Added a comment 2022-07-18 19:23:02 +00:00
Joey Hess
b04435ea27
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-18 14:45:23 -04:00
Joey Hess
efee53f433
comments 2022-07-18 14:45:03 -04:00
Ilya_Shlyakhter
1155bbb3db added suggestion to record ETags in URL- keys 2022-07-18 16:43:28 +00:00
yarikoptic
eee1169ad5 Added a comment 2022-07-15 19:33:50 +00:00
Joey Hess
8bc9381d8d
design work 2022-07-15 15:06:40 -04:00
Joey Hess
7c8c5ffe8e
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-15 11:10:44 -04:00
Joey Hess
f561602484
comment 2022-07-15 11:10:40 -04:00
jkniiv
c2cdf0f61f Added a comment 2022-07-14 20:32:06 +00:00
Joey Hess
94b50c61b3
comment 2022-07-14 16:09:48 -04:00
yarikoptic
f2c30bcb07 Added a comment 2022-07-14 19:42:58 +00:00
Joey Hess
2e57da226c
comments 2022-07-14 15:08:01 -04:00
Joey Hess
78da3e2783
close 2022-07-14 13:53:32 -04:00
Joey Hess
557542d621
comment 2022-07-14 13:51:59 -04:00
yarikoptic
06981c6c5a Added a comment 2022-07-14 17:00:40 +00:00
yarikoptic
3c948423a9 Added a comment 2022-07-14 16:50:15 +00:00
Joey Hess
ad467791c1
optimise journal writes to not mkdir journal directory when it already exists
Sponsored-by: Dartmouth College's DANDI project
2022-07-14 12:29:39 -04:00
Joey Hess
5e407304a2
comment with a question 2022-07-14 12:13:28 -04:00
yarikoptic
c4cca7e6c6 initial request for more efficient registerurl 2022-07-14 13:40:16 +00:00
Joey Hess
6c7550ba62
comment 2022-07-13 17:27:30 -04:00
yarikoptic
5764450a80 Added a comment 2022-07-13 20:05:34 +00:00
yarikoptic
fa126d1ac9 Added a comment 2022-07-13 19:04:40 +00:00
Joey Hess
7c7b7ac9b9
followup 2022-07-13 14:53:46 -04:00
Joey Hess
68e9b7f987
comment 2022-07-13 13:44:43 -04:00
yarikoptic
2d71b83e7f initial complain/call for a more efficient journal? 2022-07-13 16:19:55 +00:00
Joey Hess
323c78b191
comment
(and fix an old comment's formatting)
2022-07-12 16:47:49 -04:00
Joey Hess
ba13c1e2ac
depend on version of Win32 that exports c_createFile 2022-07-12 16:28:01 -04:00
jkniiv
125feb6da0 I should use the correct term 2022-07-09 11:31:11 +00:00
jkniiv
70357a9bac corr. typo with meta directive 2022-07-09 08:27:20 +00:00
jkniiv
92efe0b8e2 not to be the bringer of bad news re: Windows, yet here we are 2022-07-09 08:23:18 +00:00
yarikoptic
22453fca7c request for anonymous access to S3 2022-07-07 19:50:15 +00:00
Joey Hess
8040ecf9b8
final readonly values moves to AnnexRead
At this point I've checked all AnnexState values and these were all that
remained that could move.

Pity that Annex.repo can't move, but it gets modified sometimes..

A couple of AnnexState values are set by options and could be AnnexRead,
but happen to use Annex when being set.

Sponsored-by: Max Thoursie on Patreon
2022-06-28 16:04:58 -04:00
Joey Hess
cb9cf30c48
move several readonly values to AnnexRead
This improves performance to a small extent in several places.

Sponsored-by: Tobias Ammann on Patreon
2022-06-28 15:40:19 -04:00
Joey Hess
655235319b
comment 2022-06-28 13:04:41 -04:00
Joey Hess
53a4de4968
close 2022-06-28 12:58:00 -04:00
Joey Hess
a153480667
comments 2022-06-28 12:22:32 -04:00
Atemu
4517e9e41c Added a comment: Still useful 2022-06-25 16:36:38 +00:00
Joey Hess
e5c418b99c
convert bug to todo 2022-06-22 14:23:46 -04:00
Atemu
c6b1121088 Added a comment 2022-06-22 12:34:45 +00:00
Joey Hess
49ab467784
comment 2022-06-13 14:20:54 -04:00
Joey Hess
4f23931439
add todo based on forum post 2022-06-13 13:12:18 -04:00
Atemu
c0e648e921 2022-06-11 14:58:11 +00:00
aurelia@b44312a63326710de6cea9c43290e5debbd55607
4150433ef4 Added a comment 2022-06-06 12:38:26 +00:00
Joey Hess
1cacfd1b19
avoid setEnv in test framework when tasty is running
setEnv is not thread safe and could cause a getEnv by another thread to
segfault, or perhaps other had behavior. This is particularly a problem
when using tasty, because tasty runs the test in a thread, and a getEnv
in another thread.

The use of top-level TMVars is ugly, but ok because only 1 test actually
runs at a time per process. Because it has to chdir into the test repo.

The setEnv that remains happens before tasty is running.

Sponsored-by: Dartmouth College's Datalad project
2022-05-18 16:45:20 -04:00
Joey Hess
ebb76f0486
avoid setEnv while testing gpg
setEnv is not thread safe and could cause a getEnv by another thread to
segfault, or perhaps other had behavior.

Sponsored-by: Dartmouth College's Datalad project
2022-05-18 16:05:11 -04:00
Joey Hess
4ba7a97d8c
add comment I made earlier 2022-05-18 14:57:27 -04:00
Joey Hess
6bf09a38ed
comment and open a todo 2022-05-18 14:57:14 -04:00
Joey Hess
12119d8bfe
Merge branch 'master' of ssh://git-annex.branchable.com 2022-05-16 15:38:22 -04:00
Joey Hess
aa414d97c9
make fsck normalize object locations
The purpose of this is to fix situations where the annex object file is
stored in a directory structure other than where annex symlinks point to.

But it will also move object files from the hashdirmixed back to
hashdirlower if the repo configuration makes that the normal location.
It would have been more work to avoid that than to let it do it.

Sponsored-by: Dartmouth College's Datalad project
2022-05-16 15:38:06 -04:00
Joey Hess
5a98f2d509
avoid creating content directory when locking content
If the content directory does not exist, then it does not make sense to
lock the content file, as it also does not exist, and so it's ok for the
lock operation to fail.

This avoids potential races where the content file exists but is then
deleted/renamed, while another process sees that it exists and goes to
lock it, resulting in a dangling lock file in an otherwise empty object
directory.

Also renamed modifyContent to modifyContentDir since it is not only
necessarily used for modifying content files, but also other files in
the content directory.

Sponsored-by: Dartmouth College's Datalad project
2022-05-16 12:34:56 -04:00
yarikoptic
5079891302 Added a comment: shell helper 2022-05-13 16:51:23 +00:00
yarikoptic
e37dddbacb Added a comment 2022-05-13 15:12:29 +00:00
Joey Hess
b6c7819803
thoughts 2022-05-10 14:17:29 -04:00
Joey Hess
c5b5fd364a
thoughts 2022-05-10 14:14:41 -04:00
Joey Hess
997e96ef5e
thoughts 2022-05-10 13:25:38 -04:00
Joey Hess
3b83224e57
followup 2022-05-09 16:10:31 -04:00
Joey Hess
136ad17b94
Merge branch 'master' of ssh://git-annex.branchable.com 2022-05-09 15:54:07 -04:00
Joey Hess
e8a601aa24
incremental verification for retrieval from import remotes
Sponsored-by: Dartmouth College's Datalad project
2022-05-09 15:39:43 -04:00
yarikoptic
dfc3bf4daa Added a comment: hm... 2022-05-09 19:10:10 +00:00
Joey Hess
2f2701137d
incremental verification for retrieval from all export remotes
Only for export remotes so far, not export/import.

Sponsored-by: Dartmouth College's Datalad project
2022-05-09 13:49:33 -04:00
Joey Hess
52b768db45
datalad metadata 2022-05-09 11:32:29 -04:00
Joey Hess
74cf62a51e
comment 2022-05-09 11:00:13 -04:00
yarikoptic
0eeeea318a question/todo about migrating .git/annex/objects 2022-05-06 15:32:56 +00:00
Joey Hess
d1cce869ed
implement dataUnits finally
Added support for "megabit" and related bandwidth units in
annex.stalldetection and everywhere else that git-annex parses data units.

Note that the short form is "Mbit" not "Mb" because that differs from "MB"
only in case, and git-annex parses units case-insensitively. It would be
horrible if two different versions of git-annex parsed the same value
differently, so I don't think "Mb" can be supported.

See comment for bonus sad story from my childhood.

Sponsored-by: Nicholas Golder-Manning
2022-05-05 15:25:11 -04:00
Joey Hess
3d8af64527
close 2022-05-05 12:13:09 -04:00
Joey Hess
1c00731f9e
comment 2022-05-02 14:24:32 -04:00
kdm9
58fcedb598 2022-04-29 07:28:46 +00:00
Ilya_Shlyakhter
97a57a4c2e Added a comment: transitive transfers 2022-04-22 16:59:59 +00:00
Joey Hess
8bb86ee97e
comment 2022-04-19 14:04:14 -04:00
Joey Hess
fa89a52d36
remove moreinfo 2022-04-19 13:17:11 -04:00
Joey Hess
021fafc086
todo 2022-04-13 11:08:33 -04:00
Joey Hess
8f0c7eac09
todo 2022-04-12 23:26:17 -04:00
Ilya_Shlyakhter
6bd23e1725 Added a comment: maxextensionlength 2022-04-08 19:13:38 +00:00
Joey Hess
469801c886
how to implement this? 2022-04-05 14:52:09 -04:00
Joey Hess
77de20c925
todo triage
Tagging todos that seem to have a plan ready as confirmed.

Also closed some old ones for various reasons. Including several that
turn out to be addressed by newer features.

Also opened a new todo about git-annex-config needing a criteria to add
new configs to it.
2022-04-04 15:22:49 -04:00
Joey Hess
f51007d716
comment 2022-04-04 14:27:48 -04:00
Joey Hess
91b2285010
comment 2022-04-04 12:18:05 -04:00
Atemu
53d0f4b0f0 2022-04-01 10:30:48 +00:00
Atemu
9c6dc9db0c Added a comment 2022-03-31 10:39:28 +00:00
Joey Hess
04f13c7d3d
more thoughts
This idea seems fleshed out enough to implement now.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-03-30 12:53:42 -04:00
Joey Hess
afced1a8ba
idea 2022-03-30 12:28:25 -04:00
Joey Hess
0605cc1bfb
idea 2022-03-29 18:09:41 -04:00
Joey Hess
bc6d64ec8a
comment 2022-03-29 14:53:07 -04:00
yarikoptic
a03aee0033 Added a comment 2022-03-16 20:32:57 +00:00
Joey Hess
025c18128b
test: Added --jobs option
Default to the number of CPU cores, which seems about optimal
on my laptop. Using one more saves me 2 seconds actually.

Better packing of workers improves speed significantly.

In 2 tests runs, I saw segfaulting workers despite my attempt
to work around that issue. So detect when a worker does, and re-run it.

Removed installSignalHandlers again, because I was seeing an
error "lost signal due to full pipe", which I guess was somehow caused
by using it.

Sponsored-by: Dartmouth College's Datalad project
2022-03-16 14:42:07 -04:00
Joey Hess
8d14ce8f38
parallelize git-annex test for 25% speedup
Note the very weird workaround for what appears to be some kind of tasty
bug, which causes a segfault. This is not new to this modification,
I was seeing a segfault before at least intermittently when limiting
git-annex test -p to only run a single test group.

Also, the path from one test repo to a remote test repo used to be
"../../foo", which somehow broke when moving the test repos from .t to
.t/N. I don't actually quite understand how it used to work, but
"../foo" seems correct and works in the new situation.

Test output from the concurrent processes is not yet serialized.
Should be easy to do using concurrent-output.

More test groups will probably make the speedup larger. It would
probably be best to have a larger number of test groups and divvy them
amoung subprocesses numbered based on the number of CPU cores, perhaps
times 2 or 3.

Sponsored-by: Dartmouth College's Datalad project
2022-03-14 15:24:37 -04:00
ErrGe
7580d787cc Added a comment 2022-03-11 02:26:56 +00:00
ErrGe
4d593d4461 Added a comment 2022-03-11 02:23:20 +00:00
Joey Hess
afeb9b728e
comment 2022-03-10 16:10:46 -04:00
Joey Hess
feaf16141e
comment 2022-03-10 13:22:32 -04:00
Atemu
0e39304905 Added a comment 2022-03-09 12:07:45 +00:00
ErrGe
f706a68c43 2022-03-09 01:08:23 +00:00
Joey Hess
c7f7be0236
comment 2022-03-08 15:50:31 -04:00
Joey Hess
82f1d82286
comment 2022-03-08 15:46:29 -04:00
Joey Hess
4cab0c1b05
comment 2022-03-08 14:51:01 -04:00
Joey Hess
14add55c2b
reopen 2022-03-08 14:08:27 -04:00
Joey Hess
2c5bf952cf
comment 2022-03-08 13:47:06 -04:00
Atemu
c7e3414d8d Added a comment 2022-03-08 13:21:03 +00:00
yarikoptic
875a04e1e2 Added a comment: still slow 2022-03-08 00:28:00 +00:00
Joey Hess
1cbbd23109
comment 2022-03-07 15:25:32 -04:00
tomdhunt
0127e5f4e4 Added a comment 2022-03-07 18:27:38 +00:00
Joey Hess
da698437b6
close 2022-03-07 14:12:11 -04:00
Joey Hess
dab9078ab7
close 2022-03-07 13:23:19 -04:00
mih
fa5a001ef6 Added a comment: Thanks! 2022-03-04 16:23:16 +00:00
Joey Hess
5e385cb637
add 2022-03-02 10:44:49 -04:00
Joey Hess
2fc46e1871
git-annex test from standalone speedup
Avoid git-annex test being very slow when run from within the standalone
linux tarball or OSX app.

It may not really be necessary to add to PATH the directory where the
git-annex binary resides, but it can't hurt. Most places where the test
suite or git-annex run git-annex, they use programPath, so won't need
a modified PATH. But I'm not sure if that's always the case.

Sponsored-by: Dartmouth College's Datalad project
2022-03-01 16:08:55 -04:00
Joey Hess
ecf7c29107
update comment 2022-03-01 15:57:13 -04:00
Joey Hess
316a049e96
comment 2022-03-01 15:50:44 -04:00
yarikoptic
ca5834a18c Added a comment: question about backend 2022-02-28 22:42:34 +00:00
yarikoptic
9e6e53af71 initial report on a very slow git annex test on discovery 2022-02-28 20:50:06 +00:00
Joey Hess
525218ef86
commet 2022-02-28 15:42:33 -04:00
yarikoptic
a33b40876d Added a comment 2022-02-28 18:48:51 +00:00
Joey Hess
7a4a1322f5
update 2022-02-28 13:37:05 -04:00
Joey Hess
20875bd5e8
open related todo 2022-02-28 13:26:43 -04:00
Joey Hess
7de469edd0
comment 2022-02-25 13:32:06 -04:00
yarikoptic
7e9ebea910 Added a comment 2022-02-21 21:53:03 +00:00
Joey Hess
5a8b15f6db
comment 2022-02-21 15:46:12 -04:00
Joey Hess
ce1b3a9699
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
2022-02-21 14:46:07 -04:00
Joey Hess
d36de3edf9
comment 2022-02-21 12:49:36 -04:00
Atemu
6ca9f5e18a 2022-02-20 18:03:35 +00:00
yarikoptic
b481ec2738 Added a comment 2022-02-18 21:56:19 +00:00
yarikoptic
9d2e6a60f0 Added a comment 2022-02-18 20:18:04 +00:00
Joey Hess
faf84aa5c2
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
2022-02-18 15:06:40 -04:00
Joey Hess
c68f52c6a2
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
2022-02-18 14:55:52 -04:00
Joey Hess
07215cfeb5
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
2022-02-18 13:18:05 -04:00
Joey Hess
0edf01d7d4
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
2022-02-14 13:29:20 -04:00
Joey Hess
291dc0d1a9
comment 2022-02-14 12:42:37 -04:00
yarikoptic
c908046235 initial todo for --json for registerurl 2022-02-09 21:39:46 +00:00
Joey Hess
ad2f0446a0
comment 2022-02-08 13:24:28 -04:00
Atemu
d20550ac69 2022-02-08 10:47:21 +00:00
Joey Hess
47084b8a1d
enable filter.annex.process in v9
This has tradeoffs, but is generally a win, and users who it causes git add to
slow down unacceptably for can just disable it again.

It needed to happen in an upgrade, since there are git-annex versions
that do not support it, and using such an old version with a v8
repository with filter.annex.process set will cause bad behavior.
By enabling it in v9, it's guaranteed that any git-annex version that
can use the repository does support it. Although, this is not a perfect
protection against problems, since an old git-annex version, if it's
used with a v9 repository, will cause git add to try to run
git-annex filter-process, which will fail. But at least, the user is
unlikely to have an old git-annex in path if they are using a v9
repository, since it won't work in that repository.

Sponsored-by: Dartmouth College's Datalad project
2022-01-21 13:11:18 -04:00
Joey Hess
d427afb347
v9-locking branch still wip 2022-01-11 17:04:25 -04:00
Joey Hess
029820c832
v9-locking branch 2022-01-11 14:49:21 -04:00
Joey Hess
8ae88923b8
moreinfo 2022-01-11 12:24:40 -04:00
Joey Hess
c36895e9cb
comment 2022-01-05 13:09:18 -04:00
yarikoptic
ec9a4945e4 Added a comment 2022-01-03 20:03:38 +00:00