yarikoptic [Fri, 19 May 2023 18:47:49 +0000 (18:47 +0000)]
Added a comment
Joey Hess [Fri, 19 May 2023 18:34:02 +0000 (14:34 -0400)]
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
Joey Hess [Fri, 19 May 2023 17:53:21 +0000 (13:53 -0400)]
comment
yarikoptic [Fri, 19 May 2023 14:36:46 +0000 (14:36 +0000)]
question about annotating availability in the snapshot
yarikoptic [Fri, 19 May 2023 13:53:46 +0000 (13:53 +0000)]
dropkey -z not working
nobodyinperson [Fri, 19 May 2023 05:54:44 +0000 (05:54 +0000)]
Added a comment: 👍 git annex assist
Joey Hess [Thu, 18 May 2023 19:02:10 +0000 (15:02 -0400)]
assist: fix bug committing just added file when -J is used
Need to wait for worker threads adding files before flushing the queue.
Joey Hess [Thu, 18 May 2023 18:56:13 +0000 (14:56 -0400)]
assist: fix bug commiting just added file
Joey Hess [Thu, 18 May 2023 18:50:05 +0000 (14:50 -0400)]
fix assist to commit
Joey Hess [Thu, 18 May 2023 18:41:20 +0000 (14:41 -0400)]
improve --cleanup desc
Joey Hess [Thu, 18 May 2023 18:37:29 +0000 (14:37 -0400)]
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
Joey Hess [Thu, 18 May 2023 16:54:15 +0000 (12:54 -0400)]
add man pages for pull and push to cabal file
Joey Hess [Thu, 18 May 2023 15:19:59 +0000 (11:19 -0400)]
add test summary with number of parts and time
Sponsored-by: Brock Spratlen on Patreon
Joey Hess [Thu, 18 May 2023 14:55:11 +0000 (10:55 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 18 May 2023 14:15:04 +0000 (10:15 -0400)]
fix inverted logic (fixes test fail)
Sponsored-by: Jack Hill on Patreon
Joey Hess [Thu, 18 May 2023 13:57:22 +0000 (09:57 -0400)]
update test suite to sync --no-content
A recently added warning and a plan to change behavior make it a good
idea to be explicit here.
nobodyinperson [Thu, 18 May 2023 08:40:37 +0000 (08:40 +0000)]
Added a comment
Joey Hess [Wed, 17 May 2023 17:41:33 +0000 (13:41 -0400)]
update
Joey Hess [Wed, 17 May 2023 17:33:47 +0000 (13:33 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 17 May 2023 17:33:42 +0000 (13:33 -0400)]
comment
Joey Hess [Wed, 17 May 2023 17:32:47 +0000 (13:32 -0400)]
improve docs
The man pages for these were not really clear that they add new files.
Joey Hess [Wed, 17 May 2023 17:23:42 +0000 (13:23 -0400)]
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
Joey Hess [Wed, 17 May 2023 16:46:22 +0000 (12:46 -0400)]
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
Joey Hess [Wed, 17 May 2023 16:38:22 +0000 (12:38 -0400)]
improve description of --debugfilter
Joey Hess [Wed, 17 May 2023 16:33:57 +0000 (12:33 -0400)]
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
nobodyinperson [Wed, 17 May 2023 10:41:18 +0000 (10:41 +0000)]
Added a comment
Joey Hess [Tue, 16 May 2023 20:37:30 +0000 (16:37 -0400)]
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
Joey Hess [Tue, 16 May 2023 20:33:02 +0000 (16:33 -0400)]
remove unused imports
Joey Hess [Tue, 16 May 2023 20:25:23 +0000 (16:25 -0400)]
sync --no-pull and --no-push affect download and upload of content
The man page is somewhat vague about this, but I do think it was a bug
that these options didn't alreay behave that way. The options are
documented to disable imports and exports, which is the same operations
just with a special remote that uses trees.
The real motivation for this is that I'm adding git-annex pull and
git-annex push, and I want these options to turn off the equivilant of
those commands. And git-annex pull will certianly download and push
upload.
Sponsored-by: Nicholas Golder-Manning on Patreon
Joey Hess [Tue, 16 May 2023 19:55:24 +0000 (15:55 -0400)]
pullOption should be pushOption in seekExportContent
sync: Fix bug that made --no-pull, rather than --no-push prevent exporting
trees to special remotes.
Sponsored-by: Joshua Antonishen on Patreon
Joey Hess [Tue, 16 May 2023 17:08:43 +0000 (13:08 -0400)]
comment
nobodyinperson [Mon, 15 May 2023 21:13:34 +0000 (21:13 +0000)]
Added a comment
Joey Hess [Mon, 15 May 2023 20:22:11 +0000 (16:22 -0400)]
remove spam
Joey Hess [Mon, 15 May 2023 20:19:53 +0000 (16:19 -0400)]
comment
Joey Hess [Mon, 15 May 2023 20:00:30 +0000 (16:00 -0400)]
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
Joey Hess [Mon, 15 May 2023 19:35:29 +0000 (15:35 -0400)]
add git config debugging
(and process cwd debugging)
Sponsored-by: Dartmouth College's Datalad project
nobodyinperson [Mon, 15 May 2023 07:31:41 +0000 (07:31 +0000)]
Added a comment: Git Alias for a 'full sync'
aurtzy [Sun, 14 May 2023 02:52:38 +0000 (02:52 +0000)]
Added a comment
yarikoptic [Fri, 12 May 2023 19:06:50 +0000 (19:06 +0000)]
original issue -- need more logging
yarikoptic [Fri, 12 May 2023 13:22:19 +0000 (13:22 +0000)]
Added a comment
yarikoptic [Fri, 12 May 2023 13:22:01 +0000 (13:22 +0000)]
Added a comment
Joey Hess [Thu, 11 May 2023 17:57:59 +0000 (13:57 -0400)]
finished this
Joey Hess [Thu, 11 May 2023 17:52:22 +0000 (13:52 -0400)]
clean up uninit output
Don't think including the location of .git/annex/objects in the json is
really useful.
Joey Hess [Thu, 11 May 2023 17:50:20 +0000 (13:50 -0400)]
uninit: remove unncessary ExistSuccess
That was added in 2011 to prevent writing to the git-annex branch on
shutdown. But, the use of saveState causes pending git-annex branch
writes to be completed before the branch is deleted. So, an unusual exit
is not needed.
Joey Hess [Thu, 11 May 2023 17:36:59 +0000 (13:36 -0400)]
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
Joey Hess [Thu, 11 May 2023 17:26:55 +0000 (13:26 -0400)]
fix typo
Joey Hess [Thu, 11 May 2023 17:25:46 +0000 (13:25 -0400)]
uninit: Avoid buffering the names of all annexed files in memory
Oops, using the same list twice does prevent streaming in constant memory.
Sponsored-by: unqueued on Patreon
Joey Hess [Thu, 11 May 2023 17:24:34 +0000 (13:24 -0400)]
remove unused import
Joey Hess [Thu, 11 May 2023 17:20:35 +0000 (13:20 -0400)]
uninit: remove undocumented suport for specifying files to act on
I think this was just copied from another command without paying
attention to what it did, because there does not seem to be any valid
reason to want to only unannex some files when running uninit.
Joey Hess [Wed, 10 May 2023 18:19:32 +0000 (14:19 -0400)]
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
Joey Hess [Wed, 10 May 2023 18:09:27 +0000 (14:09 -0400)]
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
Joey Hess [Wed, 10 May 2023 18:01:46 +0000 (14:01 -0400)]
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
Joey Hess [Wed, 10 May 2023 17:30:43 +0000 (13:30 -0400)]
support aeson for Map
Make unused --json use it, which is better than the doubly nested lists
it was using.
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Wed, 10 May 2023 16:41:43 +0000 (12:41 -0400)]
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
Joey Hess [Wed, 10 May 2023 16:32:00 +0000 (12:32 -0400)]
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
Added a comment
Joey Hess [Tue, 9 May 2023 20:59:44 +0000 (16:59 -0400)]
include url in json output
The input field is consistently the url of the feed, which makes sense
as that is the user input, but to differentiate multiple urls downloaded
from a feed when using --json-progress -J, need the url that is being
downloaded too.
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Tue, 9 May 2023 20:43:16 +0000 (16:43 -0400)]
importfeed: Support --json and --json-error-messages and --json-progress
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Tue, 9 May 2023 20:22:09 +0000 (16:22 -0400)]
importfeed: Move error to where --json-error-messages can capture it
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Tue, 9 May 2023 19:49:05 +0000 (15:49 -0400)]
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
Joey Hess [Mon, 8 May 2023 20:25:40 +0000 (16:25 -0400)]
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
Joey Hess [Mon, 8 May 2023 20:03:34 +0000 (16:03 -0400)]
factor out maybeAddJSONField
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Mon, 8 May 2023 19:43:37 +0000 (15:43 -0400)]
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
Joey Hess [Mon, 8 May 2023 19:06:19 +0000 (15:06 -0400)]
reinit: Support --json and --json-error-messages
Basically same concerns as init..
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Mon, 8 May 2023 18:58:08 +0000 (14:58 -0400)]
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
Joey Hess [Mon, 8 May 2023 18:39:12 +0000 (14:39 -0400)]
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
Joey Hess [Mon, 8 May 2023 18:35:44 +0000 (14:35 -0400)]
remove spam
Joey Hess [Mon, 8 May 2023 17:43:51 +0000 (13:43 -0400)]
remove spam
Added a comment: The Best solution for missing files
removed
Added a comment: A nice solution
Added a comment: The best option of s3 mac client
Added a comment: The best option of s3 mac client
jstritch [Mon, 8 May 2023 13:52:43 +0000 (13:52 +0000)]
Joey Hess [Sun, 7 May 2023 16:54:29 +0000 (12:54 -0400)]
Joey Hess [Sun, 7 May 2023 16:54:19 +0000 (12:54 -0400)]
update
Joey Hess [Fri, 5 May 2023 19:36:51 +0000 (15:36 -0400)]
oops
Joey Hess [Fri, 5 May 2023 19:29:49 +0000 (15:29 -0400)]
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
Joey Hess [Fri, 5 May 2023 18:01:40 +0000 (14:01 -0400)]
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
Joey Hess [Fri, 5 May 2023 17:36:57 +0000 (13:36 -0400)]
comment
nobodyinperson [Fri, 5 May 2023 14:19:42 +0000 (14:19 +0000)]
Added a comment: out of date git-annex
jt [Fri, 5 May 2023 14:04:06 +0000 (14:04 +0000)]
Added a comment: Invalid argument `whereused'
Joey Hess [Thu, 4 May 2023 20:48:51 +0000 (16:48 -0400)]
update
Joey Hess [Thu, 4 May 2023 20:34:35 +0000 (16:34 -0400)]
migrate, undo: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Thu, 4 May 2023 20:03:54 +0000 (16:03 -0400)]
rekey, setpresentkey: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Thu, 4 May 2023 18:34:37 +0000 (14:34 -0400)]
update
Joey Hess [Thu, 4 May 2023 18:28:21 +0000 (14:28 -0400)]
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
Joey Hess [Thu, 4 May 2023 16:36:31 +0000 (12:36 -0400)]
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
Joey Hess [Thu, 4 May 2023 15:53:38 +0000 (11:53 -0400)]
remote tailing 's' from log --raw-data
log: When --raw-date is used, display only seconds from the epoch, as
documented, omitting a trailing "s" that was included in the output
before.
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Thu, 4 May 2023 15:28:27 +0000 (11:28 -0400)]
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
yarikoptic [Thu, 4 May 2023 00:10:09 +0000 (00:10 +0000)]
moved log and rmurl to the top as the one we use AFAIK
Joey Hess [Wed, 3 May 2023 19:56:20 +0000 (15:56 -0400)]
unannex: Support --json and --json-error-messages
Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
Joey Hess [Wed, 3 May 2023 19:25:17 +0000 (15:25 -0400)]
comment
yarikoptic [Wed, 3 May 2023 19:08:03 +0000 (19:08 +0000)]
plea for --json for unannex and other commands
nobodyinperson [Wed, 3 May 2023 14:23:05 +0000 (14:23 +0000)]
Added a comment: adding all files or only in current directory?
dud225@35a1ee469f82f3a7eb1f2dce4ad453f5e47bdfd3 [Wed, 3 May 2023 07:49:19 +0000 (07:49 +0000)]
Added a comment: Groups comprised of archive drives of various size
Joey Hess [Tue, 2 May 2023 17:27:04 +0000 (13:27 -0400)]
forwarded git bug
Joey Hess [Mon, 1 May 2023 21:10:31 +0000 (17:10 -0400)]
comment
Joey Hess [Mon, 1 May 2023 21:08:44 +0000 (17:08 -0400)]
comment
Joey Hess [Mon, 1 May 2023 21:05:51 +0000 (17:05 -0400)]
beat my head against this bug for a couple hours