git-annex.git
2 years agomention reversion
Joey Hess [Tue, 2 Apr 2024 21:33:20 +0000 (17:33 -0400)]
mention reversion

2 years agoRevert "multiple -m"
Joey Hess [Tue, 2 Apr 2024 21:29:07 +0000 (17:29 -0400)]
Revert "multiple -m"

This reverts commit cee12f6a2fd7f90eb2aa72cd638b6bcdf45e4f92.

This commit broke git-annex init run in a repo that was cloned from a
repo with an adjusted branch checked out.

The problem is that findAdjustingCommit was not able to identify the
commit that created the adjusted branch. It seems that there is an extra
"\n" at the end of the commit message that it does not expect.

Since backwards compatability needs to be maintained, cannot just make
findAdjustingCommit accept it with the "\n". Will have to instead
have one commitTree variant that uses the old method, and use it for
adjusted branch committing.

2 years agoAdded a comment
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001 [Wed, 27 Mar 2024 22:11:47 +0000 (22:11 +0000)]
Added a comment

2 years agofixes
Joey Hess [Wed, 27 Mar 2024 20:00:18 +0000 (16:00 -0400)]
fixes

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 27 Mar 2024 19:58:45 +0000 (15:58 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agomultiple -m
Joey Hess [Wed, 27 Mar 2024 19:58:27 +0000 (15:58 -0400)]
multiple -m

sync, assist, import: Allow -m option to be specified multiple times, to
provide additional paragraphs for the commit message.

The option parser didn't allow multiple -m before, so there is no risk of
behavior change breaking something that was for some reason using multiple
-m already.

Pass through to git commands, so that the method used to assemble the
paragrahs is whatever git does. Which might conceivably change in the
future.

Note that git commit-tree has supported -m since git 1.7.7. commitTree
was probably not using it since it predates that version. Since the
configure script prevents building git-annex with git older than 2.1,
there is no risk that it's not supported now.

Sponsored-by: Nicholas Golder-Manning on Patreon
2 years agofix typo
Joey Hess [Wed, 27 Mar 2024 16:45:40 +0000 (12:45 -0400)]
fix typo

2 years agoAdded a comment
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001 [Wed, 27 Mar 2024 13:26:34 +0000 (13:26 +0000)]
Added a comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 26 Mar 2024 22:19:29 +0000 (18:19 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agotodo
Joey Hess [Tue, 26 Mar 2024 22:19:23 +0000 (18:19 -0400)]
todo

2 years agoAdded a comment
yarikoptic [Tue, 26 Mar 2024 19:13:15 +0000 (19:13 +0000)]
Added a comment

2 years agofix build warning
Joey Hess [Tue, 26 Mar 2024 18:13:59 +0000 (14:13 -0400)]
fix build warning

A recent change made plumbing the backend through fsck unncessary.

Left fsck checking backend and skipping operating on key when it could
not find one. Not checking the backend would be a behavior change.
For example the command git-annex fsck --key FOO--bar does nothing
since FOO is not a known backend. If this were removed it would
instead go on and fsck it and warn that no copies exist of the key.
That behavior change seems like it would be fine, but I also have no
reason to make it.

2 years agoavoid build warning on windows
Joey Hess [Tue, 26 Mar 2024 18:07:41 +0000 (14:07 -0400)]
avoid build warning on windows

2 years agowindows build fix
Joey Hess [Tue, 26 Mar 2024 17:51:51 +0000 (13:51 -0400)]
windows build fix

2 years agocomment
Joey Hess [Tue, 26 Mar 2024 17:48:57 +0000 (13:48 -0400)]
comment

2 years agoupdate for new rclone gitannex command
Joey Hess [Tue, 26 Mar 2024 17:48:43 +0000 (13:48 -0400)]
update for new rclone gitannex command

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 26 Mar 2024 17:17:09 +0000 (13:17 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoavoid build warning on windows
Joey Hess [Tue, 26 Mar 2024 17:16:33 +0000 (13:16 -0400)]
avoid build warning on windows

Since append was only exported by Annex.Common on unix, excluding it
from import caused a build warning on windows.

2 years agofix build on windows
Joey Hess [Tue, 26 Mar 2024 17:12:58 +0000 (13:12 -0400)]
fix build on windows

deletestale renamed from cleanstale

2 years agofix build warnings on windows
Joey Hess [Tue, 26 Mar 2024 17:11:53 +0000 (13:11 -0400)]
fix build warnings on windows

2 years agoWindows: Fix escaping output to terminal when using old versions of MinTTY
Joey Hess [Tue, 26 Mar 2024 17:09:21 +0000 (13:09 -0400)]
Windows: Fix escaping output to terminal when using old versions of MinTTY

2 years agoclean up windows build warnings about unused imports
Joey Hess [Tue, 26 Mar 2024 17:06:52 +0000 (13:06 -0400)]
clean up windows build warnings about unused imports

2 years agoAdded a comment
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001 [Tue, 26 Mar 2024 14:07:19 +0000 (14:07 +0000)]
Added a comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 25 Mar 2024 18:53:02 +0000 (14:53 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agolink to commit
Joey Hess [Mon, 25 Mar 2024 18:51:36 +0000 (14:51 -0400)]
link to commit

2 years agofix transfer lock file for Download to not include uuid
Joey Hess [Mon, 25 Mar 2024 18:47:38 +0000 (14:47 -0400)]
fix transfer lock file for Download to not include uuid

While redundant concurrent transfers were already prevented in most
cases, it failed to prevent the case where two different repositories were
sending the same content to the same repository. By removing the uuid
from the transfer lock file for Download transfers, one repository
sending content will block the other one from also sending the same
content.

In order to interoperate with old git-annex, the old lock file is still
locked, as well as locking the new one. That added a lot of extra code
and work, and the plan is to eventually stop locking the old lock file,
at some point in time when an old git-annex process is unlikely to be
running at the same time.

Note that in the case of 2 repositories both doing eg
`git-annex copy foo --to origin`
the output is not that great:

copy b (to origin...)
  transfer already in progress, or unable to take transfer lock
git-annex: transfer already in progress, or unable to take transfer lock
97%   966.81 MiB      534 GiB/s 0sp2pstdio: 1 failed

  Lost connection (fd:14: hPutBuf: resource vanished (Broken pipe))

  Transfer failed

Perhaps that output could be cleaned up? Anyway, it's a lot better than letting
the redundant transfer happen and then failing with an obscure error about
a temp file, which is what it did before. And it seems users don't often
try to do this, since nobody ever reported this bug to me before.
(The "97%" there is actually how far along the *other* transfer is.)

Sponsored-by: Joshua Antonishen on Patreon
2 years agofix windows transfer lock check
Joey Hess [Mon, 25 Mar 2024 18:11:25 +0000 (14:11 -0400)]
fix windows transfer lock check

If the lock file was not able to be exclusivlely locked, don't indicate
locking failed. I'm pretty sure this was a typo. It goes all the way
back to 891c85cd88c5a90daf7d18160eeddd1483e8c649 where locking was first
introduced on windows, and there's no indication of why it would make
sense to return True here.

Sponsored-by: Leon Schuermann on Patreon
2 years agoAdd news of git-annex merch from hellotux.com
nobodyinperson [Mon, 25 Mar 2024 06:27:48 +0000 (06:27 +0000)]
Add news of git-annex merch from hellotux.com

2 years agoAdd link to hellotux.com git-annex shirts
nobodyinperson [Mon, 25 Mar 2024 06:18:36 +0000 (06:18 +0000)]
Add link to hellotux.com git-annex shirts

2 years agobug
Joey Hess [Sun, 24 Mar 2024 19:05:49 +0000 (15:05 -0400)]
bug

2 years agocomment
Joey Hess [Fri, 22 Mar 2024 15:07:00 +0000 (11:07 -0400)]
comment

2 years agocomment
Joey Hess [Fri, 22 Mar 2024 15:00:51 +0000 (11:00 -0400)]
comment

2 years agofix name of option
Joey Hess [Fri, 22 Mar 2024 14:54:14 +0000 (10:54 -0400)]
fix name of option

2 years ago(no commit message)
poelzi [Wed, 20 Mar 2024 21:22:36 +0000 (21:22 +0000)]

2 years agopolicy on AI generated content
Joey Hess [Mon, 18 Mar 2024 20:57:54 +0000 (16:57 -0400)]
policy on AI generated content

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 15 Mar 2024 20:15:23 +0000 (16:15 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agofix reversion in unexport when unable to rename
Joey Hess [Fri, 15 Mar 2024 20:14:44 +0000 (16:14 -0400)]
fix reversion in unexport when unable to rename

Bug introduced in commit 7cef5e8f35d211f09eee0af5f8ea0bf689a1d012

2 years agoupdate
Joey Hess [Fri, 15 Mar 2024 14:13:12 +0000 (10:13 -0400)]
update

2 years agoAdded a comment: Need for git-annex-remote-rclone
oadams [Thu, 14 Mar 2024 01:03:46 +0000 (01:03 +0000)]
Added a comment: Need for git-annex-remote-rclone

2 years agoupdate
Joey Hess [Wed, 13 Mar 2024 15:21:05 +0000 (11:21 -0400)]
update

2 years agoupdate
Joey Hess [Wed, 13 Mar 2024 15:19:04 +0000 (11:19 -0400)]
update

2 years agolink
Joey Hess [Wed, 13 Mar 2024 15:06:59 +0000 (11:06 -0400)]
link

2 years agofix spelling
Joey Hess [Wed, 13 Mar 2024 15:05:41 +0000 (11:05 -0400)]
fix spelling

2 years agotodo
Joey Hess [Wed, 13 Mar 2024 15:04:06 +0000 (11:04 -0400)]
todo

2 years agoupdate
Joey Hess [Wed, 13 Mar 2024 14:32:03 +0000 (10:32 -0400)]
update

2 years agoupdate
Joey Hess [Wed, 13 Mar 2024 14:29:48 +0000 (10:29 -0400)]
update

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 13 Mar 2024 14:19:17 +0000 (10:19 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agotodo
Joey Hess [Wed, 13 Mar 2024 14:19:10 +0000 (10:19 -0400)]
todo

2 years agothoughts
Joey Hess [Tue, 12 Mar 2024 20:41:25 +0000 (16:41 -0400)]
thoughts

2 years ago(no commit message)
plattfot@2283a4f9dca7a5a94ba91f0c65c1fb52bb25e811 [Tue, 12 Mar 2024 19:01:46 +0000 (19:01 +0000)]

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 11 Mar 2024 14:00:48 +0000 (10:00 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agocomment
Joey Hess [Mon, 11 Mar 2024 14:00:45 +0000 (10:00 -0400)]
comment

2 years agofix build warning
Joey Hess [Sat, 9 Mar 2024 17:50:30 +0000 (13:50 -0400)]
fix build warning

A recent change made plumbing the backend through fsck unncessary.

Left fsck checking backend and skipping operating on key when it could
not find one, although I'm not sure if that's necessary to support eg,
keys with unknown backend.

2 years agoexport tree: avoid confusing output about renaming files
Joey Hess [Sat, 9 Mar 2024 17:37:51 +0000 (13:37 -0400)]
export tree: avoid confusing output about renaming files

When a file in the export is renamed, and the remote's renameExport
returned Nothing, renaming to the temp file would first say it was
renaming, and appear to succeed, but actually what it did was delete the
file. Then renaming from the temp file would not do anything, since the
temp file is not present on the remote. This appeared as if a file got
renamed to a temp file and left there.

Note that exporttree=yes importree=yes remotes have their usual
renameExport replaced with one that returns Nothing. (For reasons
explained in Remote.Helper.ExportImport.) So this happened
even with remotes that support renameExport.

Fix by letting renameExport = Nothing when it's not supported at all.
This avoids displaying the rename.

Sponsored-by: Graham Spencer on Patreon
2 years agofix comment
Joey Hess [Fri, 8 Mar 2024 18:59:54 +0000 (14:59 -0400)]
fix comment

2 years agoupdate
Joey Hess [Fri, 8 Mar 2024 18:32:29 +0000 (14:32 -0400)]
update

2 years agofix comment
Joey Hess [Fri, 8 Mar 2024 18:23:17 +0000 (14:23 -0400)]
fix comment

2 years agoupdate
Joey Hess [Fri, 8 Mar 2024 17:43:31 +0000 (13:43 -0400)]
update

2 years agofix indent for readability
Joey Hess [Fri, 8 Mar 2024 17:38:46 +0000 (13:38 -0400)]
fix indent for readability

2 years agoattribution armoring
Joey Hess [Thu, 7 Mar 2024 23:19:45 +0000 (19:19 -0400)]
attribution armoring

2 years agoAdded a comment: TLS v1.2 EMS (Extended Master/Main Secret)
ewen [Thu, 7 Mar 2024 03:01:20 +0000 (03:01 +0000)]
Added a comment: TLS v1.2 EMS (Extended Master/Main Secret)

2 years ago(no commit message)
ewen [Thu, 7 Mar 2024 02:33:52 +0000 (02:33 +0000)]

2 years agoAdded a comment
bbigras [Wed, 6 Mar 2024 17:03:51 +0000 (17:03 +0000)]
Added a comment

2 years agoAdded a comment: Still experimental?
imlew [Wed, 6 Mar 2024 12:26:56 +0000 (12:26 +0000)]
Added a comment: Still experimental?

2 years agoadd reregisterurl command
Joey Hess [Tue, 5 Mar 2024 19:04:35 +0000 (15:04 -0400)]
add reregisterurl command

What this can currently be used for is only to change an url from being
used by a special remote to being used by the web remote.

This could have been a --move-from option to registerurl. But, that would
have complicated its option and --batch processing, and also would have
complicated unregisterurl, which is implemented on top of
Command.Registerurl. So, a separate command was actually less complicated
to implement.

The generic description of the command is because I want to make this
command a catch-all for other url updating kind of things, if there are
ever any more. Also because it was hard to come up with a good name for the
specific action. I considered `git-annex moveurl`, but that seems to
indicate data is perhaps actually being moved, and seems to sit at the same
level as addurl and rmurl, and this command is at the plumbing
level of registerurl and unregisterurl.

Sponsored-by: Dartmouth College's DANDI project
2 years agosmall problem
Joey Hess [Tue, 5 Mar 2024 17:45:31 +0000 (13:45 -0400)]
small problem

2 years agocomment
Joey Hess [Tue, 5 Mar 2024 17:29:42 +0000 (13:29 -0400)]
comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 5 Mar 2024 17:17:37 +0000 (13:17 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoadd todo for tracking free space in repos via git-annex branch
Joey Hess [Tue, 5 Mar 2024 17:16:42 +0000 (13:16 -0400)]
add todo for tracking free space in repos via git-annex branch

For balanced preferred content perhaps, or just for git-annex info
display.

Sponsored-by: unqueued on Patreon
2 years agoupdate
Joey Hess [Tue, 5 Mar 2024 17:16:06 +0000 (13:16 -0400)]
update

2 years agoAdded a comment
TTTTAAAx [Tue, 5 Mar 2024 05:21:59 +0000 (05:21 +0000)]
Added a comment

2 years agoresponse
Joey Hess [Mon, 4 Mar 2024 21:17:53 +0000 (17:17 -0400)]
response

2 years agocomment
Joey Hess [Mon, 4 Mar 2024 21:16:53 +0000 (17:16 -0400)]
comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 4 Mar 2024 21:07:26 +0000 (17:07 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agothoughts
Joey Hess [Mon, 4 Mar 2024 21:04:59 +0000 (17:04 -0400)]
thoughts

2 years ago(no commit message)
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001 [Mon, 4 Mar 2024 17:36:22 +0000 (17:36 +0000)]

2 years ago(no commit message)
bbigras [Mon, 4 Mar 2024 17:03:29 +0000 (17:03 +0000)]

2 years agoAdded a comment
Atemu [Sat, 2 Mar 2024 08:32:40 +0000 (08:32 +0000)]
Added a comment

2 years agoclarification
Joey Hess [Fri, 1 Mar 2024 21:03:40 +0000 (17:03 -0400)]
clarification

2 years agoimplement VURL to URL migration
Joey Hess [Fri, 1 Mar 2024 21:01:27 +0000 (17:01 -0400)]
implement VURL to URL migration

Just for completeness, someone might want to downgrade I guess?

2 years agoadd potential list
Joey Hess [Fri, 1 Mar 2024 20:54:43 +0000 (16:54 -0400)]
add potential list

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 1 Mar 2024 20:53:13 +0000 (16:53 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoimplement URL to VURL migration
Joey Hess [Fri, 1 Mar 2024 20:42:02 +0000 (16:42 -0400)]
implement URL to VURL migration

This needs the content to be present in order to hash it. But it's not
possible for a module used by Backend.URL to call inAnnex because that
would entail a dependency loop. So instead, rely on the fact that
Command.Migrate calls inAnnex before performing a migration.

But, Command.ExamineKey calls fastMigrate and the key may or may not
exist, and it's not wanting to actually perform a migration in any case.
To handle that, had to add an additional value to fastMigrate to
indicate whether the content is inAnnex.

Factored generateEquivilantKey out of Remote.Web.

Note that migrateFromURLToVURL hardcodes use of the SHA256E backend.
It would have been difficult not to, given all the dependency loop
issues. But --backend and annex.backend are used to tell git-annex
migrate to use VURL in any case, so there's no config knob that
the user could expect to configure that.

Sponsored-by: Brock Spratlen on Patreon
2 years agofix typo in example
Joey Hess [Fri, 1 Mar 2024 19:44:46 +0000 (15:44 -0400)]
fix typo in example

2 years agotodo
Joey Hess [Fri, 1 Mar 2024 19:14:45 +0000 (15:14 -0400)]
todo

2 years agocomment
Joey Hess [Fri, 1 Mar 2024 19:07:03 +0000 (15:07 -0400)]
comment

2 years agohandle multiple VURL checksums in one pass
Joey Hess [Fri, 1 Mar 2024 18:41:10 +0000 (14:41 -0400)]
handle multiple VURL checksums in one pass

git-annex fsck and some other commands that verify the content of a key
were using the non-incremental verification interface. But for VURL
urls, that interface is innefficient because when there are multiple
equivilant keys, it has to separately read and checksum for each key in
turn until one matches. It's more efficient for those to use the
incremental interface, since the file can be read a single time.

There's no real downside to using the incremental interface when available.

Note that more speedup could be had for VURL, if it was able to
calculate the checksum a single time and then compare with the
equivilant keys checksums. When the equivilant keys use the same type of
checksum.

Sponsored-by: k0ld on Patreon
2 years agonub the equivilant key list
Joey Hess [Fri, 1 Mar 2024 18:39:01 +0000 (14:39 -0400)]
nub the equivilant key list

If somehow the same key gets listed in the log twice, avoid doing double
checksumming.

2 years agofix comment typo
Joey Hess [Fri, 1 Mar 2024 18:12:21 +0000 (14:12 -0400)]
fix comment typo

2 years agoupdate
Joey Hess [Fri, 1 Mar 2024 17:47:24 +0000 (13:47 -0400)]
update

2 years agoavoid double checksum when downloading VURL from web for 1st time
Joey Hess [Fri, 1 Mar 2024 17:44:40 +0000 (13:44 -0400)]
avoid double checksum when downloading VURL from web for 1st time

Sponsored-by: Jack Hill on Patreon
2 years agoincremental verification for VURL
Joey Hess [Fri, 1 Mar 2024 17:31:43 +0000 (13:31 -0400)]
incremental verification for VURL

Sponsored-by: Brett Eisenberg on Patreon
2 years agohas potential in DANDI project
yarikoptic [Thu, 29 Feb 2024 23:31:05 +0000 (23:31 +0000)]
has potential in DANDI project

2 years agoadd future todo
Joey Hess [Thu, 29 Feb 2024 21:52:58 +0000 (17:52 -0400)]
add future todo

2 years agoverifyKeyContent for VURL
Joey Hess [Thu, 29 Feb 2024 21:41:35 +0000 (17:41 -0400)]
verifyKeyContent for VURL

VURL is now fully working, though needs more testing.

Still need to implement verifyKeyContentIncrementally but it works
without it.

Sponsored-by: Luke T. Shumaker on Patreon
2 years agoimplement isCryptographicallySecureKey for VURL
Joey Hess [Thu, 29 Feb 2024 21:21:29 +0000 (17:21 -0400)]
implement isCryptographicallySecureKey for VURL

Considerable difficulty to work around an import cycle. Had to move the
list of backends (except for VURL) to Backend.Variety to VURL could use
it.

Sponsored-by: Kevin Mueller on Patreon
2 years agolift isCryptographicallySecure to Annex
Joey Hess [Thu, 29 Feb 2024 20:14:13 +0000 (16:14 -0400)]
lift isCryptographicallySecure to Annex

Needed for VURL backend.

Sponsored-by: Nicholas Golder-Manning on Patreon
2 years agoadd equivilant key log for VURL keys
Joey Hess [Thu, 29 Feb 2024 19:41:57 +0000 (15:41 -0400)]
add equivilant key log for VURL keys

When downloading a VURL from the web, make sure that the equivilant key
log is populated.

Unfortunately, this does not hash the content while it's being
downloaded from the web. There is not an interface in Backend currently
for incrementally hash generation, only for incremental verification of an
existing hash. So this might add a noticiable delay, and it has to show
a "(checksum...") message. This could stand to be improved.

But, that separate hashing step only has to happen on the first download
of new content from the web. Once the hash is known, the VURL key can have
its hash verified incrementally while downloading except when the
content in the web has changed. (Doesn't happen yet because
verifyKeyContentIncrementally is not implemented yet for VURL keys.)

Note that the equivilant key log file is formatted as a presence log.
This adds a tiny bit of overhead (eg "1 ") per line over just listing the
urls. The reason I chose to use that format is it seems possible that
there will need to be a way to remove an equivilant key at some point in
the future. I don't know why that would be necessary, but it seemed wise
to allow for the possibility.

Downloads of VURL keys from other special remotes that claim urls,
like bittorrent for example, does not popilate the equivilant key log.
So for now, no checksum verification will be done for those.

Sponsored-by: Nicholas Golder-Manning on Patreon
2 years agosupport VURL backend
Joey Hess [Thu, 29 Feb 2024 17:26:06 +0000 (13:26 -0400)]
support VURL backend

Not yet implemented is recording hashes on download from web and
verifying hashes.

addurl --verifiable option added with -V short option because I
expect a lot of people will want to use this.

It seems likely that --verifiable will become the default eventually,
and possibly rather soon. While old git-annex versions don't support
VURL, that doesn't prevent using them with keys that use VURL. Of
course, they won't verify the content on transfer, and fsck will warn
that it doesn't know about VURL. So there's not much problem with
starting to use VURL even when interoperating with old versions.

Sponsored-by: Joshua Antonishen on Patreon
2 years agocomment
Joey Hess [Tue, 27 Feb 2024 17:36:07 +0000 (13:36 -0400)]
comment