Commit graph

33124 commits

Author SHA1 Message Date
Joey Hess
f6aa097a39
avoid import writing to cidsdb initially
Speed up importing trees from special remotes somewhat by avoiding
redundant writes to sqlite database.

Before, import would write to both the git-annex branch and also to the
sqlite database. But then the next time it was run, needsUpdateFromLog
would see the branch had changed, so run updateFromLog, which would make
the same writes to the sqlite database a second time.

Now import writes only to the git-annex branch. The next time it's run,
needsUpdateFromLog sees that the branch has changed and so calls
updateFromLog, which updates the sqlite database.

Why defer the write to the sqlite database like this? It seems that it
could write to the database as it goes, and at the end call
recordAnnexBranchTree to indicate that the information in the git-annex
branch has all been written to the cidsdb. That would avoid the second
import doing extra work.

But, there could be other processes running at the same time, and one of
them may update the git-annex branch, eg merging a remote git-annex branch
into it. Any cids logs on that merged git-annex branch would not be
reflected in the cidsdb yet. If the import then called
recordAnnexBranchTree, the cidsdb would never get updated with that merged
information.

I don't think there's a good way to prevent, or to detect that situation.
So, it can't call recordAnnexBranchTree at the end. So it might as well
wait until the next run and do updateFromLog then. It could instead do
updateFromLog at the end, but it's going to check needsUpdateFromLog
at the beginning anyway.

Note that the database writes were queued, so there is already a cidmap
that is used to remember changes that the current process has made.
So, omitting database writes can't change the behavior of the current
process.

Also note that thirdpartypopulatedimport uses recordcidkeyindb, which
reflects what it already did. That code path does not use the cidmap,
but does not need to query it either. It might be possible to make that
code path also only update the git-annex branch and not the db, but I
haven't checked.

Sponsored-by: Noam Kremen on Patreon
2023-05-30 17:05:28 -04:00
jgoerzen
f47e7abd57 Added a comment 2023-05-30 20:58:21 +00:00
Joey Hess
5070087a63
repair: Fix handling of git ref names on Windows
Sponsored-by: Kevin Mueller on Patreon
2023-05-30 16:09:13 -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
Joey Hess
5da7f703b0
comment 2023-05-30 14:30:39 -04:00
jgoerzen
e1fa970010 2023-05-30 12:23:28 +00:00
jgoerzen
4547a467b1 2023-05-30 00:37:10 +00:00
jgoerzen
da99a12f21 2023-05-30 00:35:54 +00:00
Mowgli
5fe8ae8f87 Added a comment: Use locales for that porpose 2023-05-29 22:42:13 +00:00
Daniel Höxtermann
afad119273 Add borg2annex to related_software 2023-05-28 07:12:15 +02:00
Joey Hess
595adac6ea
Merge branch 'master' of ssh://git-annex.branchable.com 2023-05-27 13:09:48 -04:00
Joey Hess
f2db6da938
default to yt-dlp and fix progress parsing bugs
I noticed git-annex was using a lot of CPU when downloading from youtube,
and was not displaying progress. Turns out that yt-dlp (and I think also
youtube-dl) sometimes only knows an estimated size, not the actual size,
and displays the progress output slightly differently for that. That broke
the parser. And, the parser was feeding chunks that failed to parse back
as a remainder, which caused it to try to re-parse the entire output each
time, so it got slower and slower.

Using --progress-template like this should avoid parsing problems as well
as future proof against output changes. But it will work with only yt-dlp.

So, this seemed like the right time to deprecate youtube-dl, and default
to yt-dlp when available.

git-annex will still use youtube-dl if that's all that's available.
However, since the progress parser for youtube-dl was buggy, and I don't
want to maintain two different progress parsers (especially since
youtube-dl is no longer in debian unstable having been replaced by
yt-dlp), made git-annex no longer try to parse youtube-dl's progress.

Also, updated docs for yt-dlp being default. It did not seem worth
renaming annex.youtube-dl-options and annex.youtube-dl-command.

Note that yt-dlp does not seem to document the fields available in the
progress template. I found them by reading the source and looking at
the templates it uses internally. Also note that the use of "i" (rather
than "s") in progressTemplate makes it display floats rounded to integers;
particularly the estimated total size can be a float. That also does not
seem to be documented but I assume is a python thing?

Sponsored-by: Joshua Antonishen on Patreon
2023-05-27 13:04:53 -04:00
matthew.cieslak@100d765b497d71318a302445df55bbab4b78f4d5
8dfc5dc16e 2023-05-25 13:44:52 +00:00
Joey Hess
f1cdb79ca4
assist: honor gitignore
Sponsored-by: Graham Spencer on Patreon
2023-05-24 14:04:09 -04:00
nobodyinperson
0b9b85f009 2023-05-24 14:59:40 +00:00
yarikoptic
250194b7d1 Added a comment 2023-05-23 16:12:42 +00:00
Joey Hess
c64436518f
comment 2023-05-23 12:00:01 -04:00
Joey Hess
03437364b9
document -m 2023-05-23 11:46:54 -04:00
Joey Hess
b46126cd87
comment 2023-05-23 11:45:17 -04:00
Mowgli
b7788c718b 2023-05-23 13:10:45 +00:00
nobodyinperson
87e6c56a21 2023-05-22 11:22:42 +00:00
nobodyinperson
2510bdb799 Added a comment 2023-05-20 06:03:30 +00:00
yarikoptic
2616f7f0d3 Added a comment 2023-05-19 19:22:04 +00:00
yarikoptic
1fdef31769 Added a comment 2023-05-19 19:06:01 +00:00
Joey Hess
0f89d221bd
version: Avoid error message when entire output is not read
Sponsored-by: Dartmouth College's Datalad project
2023-05-19 15:00:57 -04:00
Joey Hess
39f33a9988
Merge branch 'master' of ssh://git-annex.branchable.com 2023-05-19 14:54:09 -04:00
Joey Hess
5029fba7f4
comment 2023-05-19 14:53:18 -04:00
yarikoptic
b76a44511b Added a comment 2023-05-19 18:49:48 +00:00
yarikoptic
b22d49b7f1 Added a comment 2023-05-19 18:49:29 +00:00
yarikoptic
b8a03643e5 Added a comment 2023-05-19 18:47:49 +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
Joey Hess
c4ad9b1446
Fix bug in -z handling of trailing NUL in input
The obvious way to fix this would be to adapt lines to split on null.

However, it's actually nontrivial to rewrite lines. In particular it has a
weird implementation to avoid a space leak. See:
https://gitlab.haskell.org/ghc/ghc/-/issues/4334

Also, while that is a small amount of code, it's covered by a rather
complex copyright and I'd have to include that copyright in git-annex.

So, I opted to filter out the trailing empty string instead.

Sponsored-by: Dartmouth College's Datalad project
2023-05-19 14:34:02 -04:00
Joey Hess
0184421a4d
comment 2023-05-19 13:53:21 -04:00
yarikoptic
ea7a904c0d question about annotating availability in the snapshot 2023-05-19 14:36:46 +00:00
yarikoptic
d73467ebf7 dropkey -z not working 2023-05-19 13:53:46 +00: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
c52d7338a2
improve docs
The man pages for these were not really clear that they add new files.
2023-05-17 13:32:47 -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
Joey Hess
af6b73a7e6
push: Support --cleanup
This option is not specific to sync, so it seemed it should be in either
pull or push as well as sync. Since it does modify the remote, it seems
better to have it in push; the modification of the local repo pulls in
the direction of pull, but not hard enough.

Maybe it would be better to have it in both?

Sponsored-by: Luke Shumaker on Patreon
2023-05-17 12:51:49 -04:00
Joey Hess
40731ff9fd
sync: Added -g as a short option for --no-content
I anticipate that if sync is transitioned to syncing content by default,
people will want a short option. And in repositories where
annex.synccontent = true, they already would. And pull and push sync
content by default, so a short option is useful with them too.

Mnemonic: -g makes only git data be synced
Also, -a makes only annex data be synced.

Would have preferred -c, which would complement -C, but it
was already taken to set git configs.

Sponsored-by: Noam Kremen on Patreon
2023-05-17 12:34:26 -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
ca76d1beb1
remove spam 2023-05-15 16:22:11 -04:00
Joey Hess
7d6a161e35
comment 2023-05-15 16:19:53 -04:00
Joey Hess
96c372ac85
document how to include= a path with a space in it
POSIX character classes allowed in globs was a surprise, but just
happened to fall out of the implementation in a way that seems
to behave correctly.

mdwn2man has to be tweaked to render the example properly.
The line I modified is the one that strips ikiwiki wikilinks out of the
man page.

Sponsored-by: Graham Spencer on Patreon
2023-05-15 16:02:06 -04:00
Joey Hess
0da0e2efcc
add git config debugging
(and process cwd debugging)

Sponsored-by: Dartmouth College's Datalad project
2023-05-15 15:35:29 -04:00
nobodyinperson
ee23c540ea Added a comment: Git Alias for a 'full sync' 2023-05-15 07:31:41 +00:00
aurtzy
4581f11243 Added a comment 2023-05-14 02:52:38 +00:00
yarikoptic
7cffb65de6 original issue -- need more logging 2023-05-12 19:06:50 +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
jochen.keil@38b1f86ab65128dab3e62e726403ceee4f5141bf
daaf7e10be Added a comment 2023-05-10 12:57:54 +00: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
dd90c7abda
remove spam 2023-05-08 14:35:44 -04:00
Joey Hess
4ccf6e4f1c
remove spam 2023-05-08 13:43:51 -04:00
dumsdat31w@f50d4cfc680f8d60eff3fe8e76ece7e1fb65e690
ccba75ec7b Added a comment: The Best solution for missing files 2023-05-08 14:41:46 +00:00
dumsdat31w@f50d4cfc680f8d60eff3fe8e76ece7e1fb65e690
8b6dd8c03c removed 2023-05-08 14:40:49 +00:00
dumsdat31w@f50d4cfc680f8d60eff3fe8e76ece7e1fb65e690
980a8f7c97 Added a comment: A nice solution 2023-05-08 14:40:09 +00:00
dumsdat31w@f50d4cfc680f8d60eff3fe8e76ece7e1fb65e690
1deff91e04 Added a comment: The best option of s3 mac client 2023-05-08 14:37:33 +00:00
dumsdat31w@f50d4cfc680f8d60eff3fe8e76ece7e1fb65e690
a1018a7b17 Added a comment: The best option of s3 mac client 2023-05-08 14:37:09 +00:00
jstritch
005c474a05 2023-05-08 13:52:43 +00:00
Joey Hess
e1a0409870
Revert "update"
This reverts commit 940f9ee9ce.
2023-05-07 12:54:29 -04:00
Joey Hess
940f9ee9ce
update 2023-05-07 12:54:19 -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
972fd05688
comment 2023-05-05 13:36:57 -04:00
nobodyinperson
4a3d859922 Added a comment: out of date git-annex 2023-05-05 14:19:42 +00:00
jt
19b7c136a3 Added a comment: Invalid argument `whereused' 2023-05-05 14:04:06 +00: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
Joey Hess
c235488e2d
rmurl: Support --json and --json-error-messages
The json does not include an url field, but it does have an input field that is
"file url" when using --batch and ["file", "url"] when using the command line.
I chose not to change that because it would complicate batchInput.
An url field could be added if it turns out to be useful.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-05-04 11:28:27 -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
Joey Hess
7fc48fb348
comment 2023-05-03 15:25:17 -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
dud225@35a1ee469f82f3a7eb1f2dce4ad453f5e47bdfd3
327bd6bad0 Added a comment: Groups comprised of archive drives of various size 2023-05-03 07:49:19 +00:00
Joey Hess
b90c2156a6
forwarded git bug 2023-05-02 13:27:04 -04:00
Joey Hess
72fb1262a3
comment 2023-05-01 17:10:31 -04:00
Joey Hess
460992d2a1
comment 2023-05-01 17:08:44 -04:00
Joey Hess
703014d989
beat my head against this bug for a couple hours 2023-05-01 17:05:51 -04:00
Joey Hess
d98a7f0afc
comment 2023-05-01 13:09:47 -04:00
Joey Hess
57c1b4f5e5
initremote: Avoid creating a remote that is not encrypted when gpg is broken
checksize was applied lazily, so the exception didn't happen until the
remote was set up.

Sponsored-by: k0ld on Patreon
2023-05-01 13:00:05 -04:00
Joey Hess
23719bc91b
comment 2023-05-01 12:30:25 -04:00
tom@b87e4336a0d0785eb7d5853e390835a18797402f
59f0ea3aeb Added a comment 2023-05-01 16:10:00 +00:00
Joey Hess
0bf983d3ab
fixed related issue 2023-05-01 12:07:20 -04:00
Joey Hess
66fe3b0908
comment 2023-05-01 11:57:49 -04:00
tom@b87e4336a0d0785eb7d5853e390835a18797402f
7cb870e008 Added a comment: output 2023-05-01 12:58:46 +00:00
nobodyinperson
def1eee573 Added a comment 2023-05-01 12:26:10 +00:00
tom@b87e4336a0d0785eb7d5853e390835a18797402f
c8176f899b 2023-05-01 12:05:34 +00:00
nobodyinperson
52c0fc97e3 Added a comment: git-annex relaying syncs across remotes 2023-05-01 08:50:10 +00:00
tom@b87e4336a0d0785eb7d5853e390835a18797402f
0ef32b50fe Added a comment: What is the underlying reason for needing a two-way SSH connection 2023-05-01 08:34:46 +00:00
nobodyinperson
7301308be6 Added a comment 2023-04-29 14:46:46 +00:00
tom@b87e4336a0d0785eb7d5853e390835a18797402f
1b9324ab65 2023-04-29 14:34:27 +00:00
nobodyinperson
a24a4cfbcd 2023-04-28 07:56:18 +00:00
Joey Hess
aff37fc208
avoid annexFileMode special case
This makes annexFileMode be just an application of setAnnexPerm',
which avoids having 2 functions that do different versions of the same
thing.

Fixes some buggy behavior for some combinations of core.sharedRepository
and umask.

Sponsored-by: Jack Hill on Patreon
2023-04-27 15:58:37 -04: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
4d6c918eff
avoid quoting spaces in git-annex find output to terminal
That's too much quoting, the user expects the filename to be copy and
pasteable. It would be ok to slash-escape space ('\ ')
which is what gnu find does, but it doesn't seem necessary either.

${escaped_file} has always quoted spaces though, so keep on doing it
there.

Sponsored-by: Nicholas Golder-Manning on Patreon
2023-04-26 00:18:30 -04:00
Joey Hess
4358545a3e
note 2023-04-25 19:36:23 -04: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
Joey Hess
a474c9c63b
upcase JSON 2023-04-25 14:35:18 -04: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
cd05cfc035
comment 2023-04-25 13:19:28 -04:00
Joey Hess
26953ad3a6
comment 2023-04-25 13:18:01 -04:00
Joey Hess
00b29d17ad
update docs to account for exporttree 2023-04-25 12:15:14 -04:00
dud225@35a1ee469f82f3a7eb1f2dce4ad453f5e47bdfd3
722bb79dbf Added a comment: File visibility 2023-04-25 05:09:49 +00:00
BillyIII
38825e089d removed 2023-04-24 23:22:08 +00:00
BillyIII
c62ca36bf5 Added a comment 2023-04-24 23:18:48 +00:00
yarikoptic
5bc8052d9c Added a comment 2023-04-24 21:25:09 +00:00
Joey Hess
a127949e65
comment 2023-04-24 16:05:35 -04:00
yarikoptic
57ad9d8da4 Added a comment 2023-04-24 19:23:22 +00:00
Joey Hess
b002199366
comment 2023-04-24 11:53:14 -04:00