Commit graph

4282 commits

Author SHA1 Message Date
Joey Hess
75f3045b0a
comment and confirm 2023-06-26 11:12:32 -04:00
nobodyinperson
9112f0c184 2023-06-26 14:08:32 +00:00
nobodyinperson
c7309b30e9 2023-06-26 11:43:20 +00:00
jkniiv
4c84f464a4 Added a comment 2023-06-24 22:23:09 +00:00
jkniiv
77443df1b2 add a plea for saving the the old 'import /dir' interface as a renamed, reduced command 2023-06-24 22:04:35 +00:00
jkniiv
63f13d92cf add an inline comment about --fast vs. --no-content wrt. git-annex-import 2023-06-24 21:01:43 +00:00
Joey Hess
d105a6f93a
fix tag 2023-06-23 16:39:22 -04:00
Joey Hess
13b7208f65
already done 2023-06-23 16:35:49 -04:00
Joey Hess
8fc63cf156
expand and confirm 2023-06-23 16:31:54 -04:00
Joey Hess
f1714915b2
confirmed
(but I need them to tell me what errors of what special remotes need a
message-id)
2023-06-23 16:17:56 -04:00
Joey Hess
6774f0bf40
confirmed 2023-06-23 16:07:22 -04:00
Joey Hess
e42470fa60
confirmed 2023-06-23 15:53:28 -04:00
Joey Hess
5b1e8ba779
confirmed 2023-06-23 14:31:54 -04:00
Joey Hess
388804b785
thought 2023-06-23 14:30:37 -04:00
Joey Hess
941cd7cfaa
confirmed 2023-06-23 14:25:25 -04:00
Joey Hess
3b13609b93
thought this out more fully 2023-06-23 14:22:57 -04:00
Joey Hess
867a833624
todo work 2023-06-23 13:47:01 -04:00
Joey Hess
2f3a275b58
confirmed 2023-06-23 12:59:34 -04:00
Joey Hess
790e0083ed
comment 2023-06-23 12:54:55 -04:00
Joey Hess
e15ad92689
close 2023-06-23 12:41:32 -04:00
Joey Hess
5a257dba88
comment 2023-06-23 12:34:48 -04:00
Joey Hess
8d09207a2d
comment and update todo 2023-06-23 12:25:08 -04:00
Joey Hess
0da5e9730d
comment 2023-06-23 12:01:54 -04:00
Joey Hess
553962eb47
link comment to todo 2023-06-19 11:42:45 -04:00
Joey Hess
12fa697ca5
Merge branch 'master' of ssh://git-annex.branchable.com 2023-06-15 10:08:16 -04:00
Joey Hess
839fce9549
comment 2023-06-14 19:53:55 -04:00
Joey Hess
40b6155b7d
idea 2023-06-14 19:40:42 -04:00
nobodyinperson
73d400fe83 Added a comment 2023-06-12 21:12:29 +00:00
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