Commit graph

4405 commits

Author SHA1 Message Date
yarikoptic
70e766c95b Added a comment 2023-08-31 16:48:34 +00:00
yarikoptic
07abfc3075 Added a comment 2023-08-31 13:57:21 +00:00
yarikoptic
c6f6b993bc reporting on increased number of looksup 2023-08-31 13:54:20 +00:00
Joey Hess
1e580a30be
comment (and a new example) 2023-08-22 15:10:04 -04:00
Joey Hess
47f92409f2
Merge branch 'master' of ssh://git-annex.branchable.com 2023-08-22 15:01:43 -04:00
Joey Hess
cf8b30c914
oldkeys: New command that lists the keys used by old versions of a file
The tricky thing about this turned out to be handling renames and reverts.
For that, it has to make two passes over the git log, and to avoid
buffering a possibly huge amount of logs in memory (ie the whole git log of
an entire repository!), runs git log twice.

(It might be possible to speed this up by asking git log to show a diff,
and so avoid needing to use catKey.)

Sponsored-By: Brock Spratlen on Patreon
2023-08-22 14:51:06 -04:00
nobodyinperson
1afa7dcf44 Added a comment 2023-08-22 17:57:45 +00:00
nobodyinperson
42683457d0 Added a comment: Oh yes please 🤩 2023-08-22 16:48:58 +00:00
Joey Hess
6115bced71
comment, todo 2023-08-22 12:38:00 -04:00
Joey Hess
d4ca85fd23
comment 2023-08-22 12:10:46 -04:00
Joey Hess
379d58b499
diffdriver: Added --get option
Removed the dontCheck repoExists, because running it in a repo that has not
been initialized yet would update location log with nouuid. And I guess
it's ok for it to only support running in git-annex repos.
2023-08-22 11:58:53 -04:00
Joey Hess
5126f6d002
comment 2023-08-16 13:16:49 -04:00
anarcat
4c7e2b167e 2023-08-16 14:40:17 +00:00
Joey Hess
d467c70ef7
change sync content transition plan and fine tune warning
Only display warning when git-annex sync (without --content or
--no-content) is used with repositories that have preferred content
configured.

Sponsored-by: Leon Schuermann on Patreon
2023-08-14 13:51:35 -04:00
nobodyinperson
1613f7caae Added a comment 2023-08-10 01:08:16 +00:00
anarcat
5d7eec4402 2023-08-10 00:37:15 +00:00
anarcat
6561f0049f 2023-08-10 00:36:56 +00:00
Joey Hess
a86521a396
Merge branch 'master' of ssh://git-annex.branchable.com 2023-08-09 12:43:56 -04:00
Joey Hess
3efad7f5f4
info: Added --dead-repositories option
I considered a more wide-ranging config option to make other commands
also show dead repositories. But it would be difficult to implement that
because Remote.keyLocations is used to get locations, filtering out dead
repos, and commands like get then try to use those locations. So a config
setting would make dead repos sometimes be acted on by commands.

Sponsored-by: unqueued on Patreon
2023-08-09 12:43:48 -04:00
nobodyinperson
09b894cc8f Added a comment 2023-08-09 05:31:26 +00:00
Joey Hess
27a9915a67
closing dup 2023-08-08 13:45:37 -04:00
Joey Hess
0c2e885796
fix link 2023-08-08 13:11:00 -04:00
Joey Hess
1e754dd10c
link 2023-08-08 13:08:56 -04:00
Joey Hess
fa92383993
onlyingroup
* Support "onlyingroup=" in preferred content expressions.
* Support --onlyingroup= matching option.

Sponsored-by: Jack Hill on Patreon
2023-07-31 14:43:58 -04:00
Joey Hess
a17ece1428
foo 2023-07-31 14:03:18 -04:00
Joey Hess
a5606f1c43
comment 2023-07-31 14:01:33 -04:00
Joey Hess
d2a87d4a1b
comment 2023-07-31 13:50:12 -04:00
Joey Hess
846384fc3a
--explain for numcopies checks
And closed the todo as completed.

Sponsored-by: Dartmouth College's DANDI project
2023-07-31 12:53:17 -04:00
nobodyinperson
2fb9a24b48 Added a comment: onlyingroup also useful for offline backup drives 2023-07-31 04:40:43 +00:00
nobodyinperson
33dac74dfa Suggest that git annex diffdriver fetches content to diff 2023-07-29 17:07:22 +00:00
aragilar
732532ba49 Added a comment 2023-07-28 02:47:42 +00:00
nobodyinperson
daa4dd8951 Added a comment: --explain is very helpful 👍 2023-07-27 15:22:47 +00:00
Joey Hess
588cda3833
Merge branch 'master' of ssh://git-annex.branchable.com 2023-07-26 15:44:47 -04:00
Joey Hess
499d014123
improve match explanations
Using == and != proved too hard to read, so went with [TRUE] and [FALSE]
after the term. I would kind of liked to have used emojis for a green
check and red X, but probably that is too fancy to be a good idea.

Make --explain output be inside [ ] with whitespace around them, to
avoid it ending with eg "[FALSE]]" and to make it easier to visually
find the start of it.

Sponsored-by: Dartmouth College's DANDI project
2023-07-26 15:37:03 -04:00
nobodyinperson
e20c7ceb35 Added a comment: Workaround for listing dead remotes 2023-07-26 17:40:56 +00:00
aragilar
20a449db12 2023-07-26 12:56:21 +00:00
Joey Hess
7333104fd9
tag option_to_explain dandi
See comment, this is a continuation of the other todo that was tagged
dandi and which I didn't fully address at the time.
2023-07-25 11:08:33 -04:00
Joey Hess
7f38355860
dropunused: Support --jobs
Sponsored-by: Kevin Mueller on Patreon
2023-07-21 14:03:34 -04:00
nobodyinperson
d07cc31792 Suggest onlyingroup preferred content expression 2023-07-15 11:19:27 +00:00
nobodyinperson
0f105aaad4 Added a comment: git annex drop --unused --jobs=cpus works 2023-07-15 05:53:43 +00:00
agot
626f0f5123 2023-07-14 22:31:05 +00:00
Joey Hess
0df94132d9
add a warning and a related todo
arising from a conversation at FOSSY
2023-07-13 19:58:12 -04:00
nobodyinperson
f23993261b Added a comment: Clarification 2023-07-12 11:29:41 +00:00
ewen
e7f59c4ca4 Added a comment: Breaking change to "sync" 2023-07-12 10:21:04 +00:00
nobodyinperson
538d602c88 2023-07-11 20:39:34 +00:00
jstritch
c611b0a24b Added a comment 2023-07-11 18:56:40 +00:00
nobodyinperson
02fab1ca2a Added a comment 2023-07-06 05:52:50 +00:00
nobodyinperson
7bcb827cd3 Added a comment 2023-07-06 05:44:57 +00:00
Joey Hess
18faf9fb5b
comment 2023-07-05 17:39:26 -04:00
Joey Hess
522d032016
comment 2023-07-05 17:20:47 -04:00
Joey Hess
fc1fcc7491
Merge branch 'master' of ssh://git-annex.branchable.com 2023-07-05 16:55:10 -04:00
Joey Hess
af27da1eba
comment 2023-07-05 16:54:52 -04:00
nobodyinperson
9d305081c4 Added a comment 2023-07-05 20:46:13 +00:00
Joey Hess
3d810726af
diffdriver --text support options for diff
Sponsored-by: KDM on Patreon
2023-07-05 15:43:29 -04:00
Joey Hess
5aad0cea83
Merge branch 'master' of ssh://git-annex.branchable.com 2023-07-05 11:54:43 -04:00
nobodyinperson
d250a51ec3 2023-07-03 13:45:36 +00:00
nobodyinperson
381e7b9bce 2023-07-03 11:08:36 +00:00
nobodyinperson
aa46805061 Added a comment: Thanks for git annex satisfy, numcopies question 2023-06-30 05:37:06 +00:00
Joey Hess
18923cd0f1
idea 2023-06-29 17:00:32 -04:00
Joey Hess
06f7345558
update 2023-06-29 15:40:37 -04:00
Joey Hess
e1fc9e204e
added git-annex satisfy
This ended up having an interface like sync, rather than like get/copy/drop.
That let it be implemented in terms of sync, which took a lot less code.
Also, it lets it handle many of the edge cases that sync does, such as
getting files that are not visible in a --hide-missing branch, and sending
files to exporttree remotes.

As well as being easier to implement, `git-annex satisfy myremote` makes
sense as it satisfies the preferred content settings of the remote.
`git-annex satisfy somefile` does not form a sentence that makes sense. So
while -C can be a little bit annoying, it still makes sense to have this
syntax.

Note that, while I initially thought this would also satisfy numcopies, it
does not. Arguably it ought to. But, sync does not send files in order to
satisfy numcopies, it only sends files to satisfy preferred content. And
it's important that this transfer the same files as sync does, because
it will probably be used in a workflow where the user sometimes syncs and
sometimes satisfies, and does not expect satisfy to do things that sync
would not do.

(Also opened a new bug that also affects sync et all, not only this command.)

Sponsored-by: Nicholas Golder-Manning on Patreon
2023-06-29 15:34:53 -04:00
Joey Hess
946e52cbfd
idea 2023-06-29 13:59:00 -04:00
Joey Hess
4bf1690355
comments 2023-06-29 13:57:27 -04:00
Joey Hess
53ab91da2a
confirm 2023-06-29 13:44:52 -04:00
Joey Hess
42b381e4b2
tag todos potentially useful for datalad 2023-06-29 13:30:26 -04:00
nobodyinperson
0ccf436795 Added a comment: How about git annex transfer? 2023-06-29 05:25:50 +00:00
nobodyinperson
265afbd599 Added a comment 2023-06-29 05:20:56 +00:00
jkniiv
ac11b3ac0e for some reason I couldn't add a page comment so had to resort to an inline comment 2023-06-28 22:26:04 +00:00
nobodyinperson
720602b351 Added a comment: Awesome, thanks! 2023-06-28 21:09:51 +00:00
Joey Hess
d5c6197791
diffdriver: Added --text option for easy diffing of the contents of annexed text files
This was already possible, but it was rather hard to come up with the
complex shell command needed.

Note that the diff output starts with "diff a/... b/...".
I left off the "--git" because it's not a git format diff.
2023-06-28 15:27:16 -04:00
Joey Hess
0b84c850fa
response 2023-06-28 13:26:06 -04:00
Joey Hess
da429a609c
todo 2023-06-28 13:23:37 -04:00
Joey Hess
55fef4fb81
confirmed 2023-06-26 11:51:48 -04:00
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