Commit graph

33706 commits

Author SHA1 Message Date
Joey Hess
0bd8b17b59
log migration trees to git-annex branch
This will allow distributed migration: Start a migration in one clone of
a repo, and then update other clones.

commitMigration is a bit of a bear.. There is some inversion of control
that needs some TMVars. Also streamLogFile's finalizer does not handle
recording the trees, so an interrupt at just the wrong time can cause
migration.log to be emptied but the git-annex branch not updated.

Sponsored-by: Graham Spencer on Patreon
2023-12-06 15:40:03 -04:00
Joey Hess
1f811c340d
kinda a bug 2023-12-05 16:43:14 -04:00
Joey Hess
b4cd985a3e
remove xmpp from special remotes list
It's documentation for something that was removed, so avoid it getting
copied into eg, nice talks about git-annex. ;-)
2023-12-05 16:30:47 -04:00
Joey Hess
10964f91bc
further thoughts 2023-12-05 15:00:22 -04:00
Joey Hess
ede36eeb86
Merge branch 'master' of ssh://git-annex.branchable.com 2023-12-05 13:38:01 -04:00
Joey Hess
68ea9d5a25
comment 2023-12-05 13:37:34 -04:00
nobodyinperson
2efef85bd0 Add link to English re-recording of Yann's git-annex workshop kickoff talk @Tübix2023 2023-12-05 17:18:50 +00:00
Joey Hess
63f940f591
Revert "update"
This reverts commit 6f4e3cc881.
2023-12-05 12:39:33 -04:00
Joey Hess
6f4e3cc881
update 2023-12-05 12:39:17 -04:00
Joey Hess
a6eb7d7339
prevent relatedTemplate from truncating a filename to end in "."
Avoid a problem with temp file names ending in "." on certian filesystems
that have problems with such filenames.

relatedTemplate is quite an ugly hack really; since it doesn't know the max
filename length of the filesystem it can only assume that the filename is
max allowed length. When given the input "lh.aparc.DKTatlas.annot", it
wants to reserve 20 characters for tempfile so it truncates to "lh.". That
ending period is apparently a problem on some filesystem (FAT eats it, but
does not throw EINVAL; ntfs does not seem bothered by it, I don't know what
FUSE filesystem the bug reporter was really using).

Sponsored-by: Brett Eisenberg on Patreon
2023-12-05 12:38:14 -04:00
Joey Hess
9aa53212a9
Merge branch 'master' of ssh://git-annex.branchable.com 2023-12-05 12:10:46 -04:00
cjmarkie
545f3873ca No change. Just subscribing to comments. 2023-12-05 16:04:46 +00:00
cjmarkie
f6f4ba3c6c 2023-12-05 14:54:11 +00:00
https://esgf-node.llnl.gov/esgf-idp/openid/mvhulten
9a9d99efeb 2023-12-05 14:10:07 +00:00
https://esgf-node.llnl.gov/esgf-idp/openid/mvhulten
5d22ccc584 rename forum/name_resolution_of___33__dne__33___fails.mdwn to forum/name_resolution_of_dne.mdwn 2023-12-05 14:08:52 +00:00
https://esgf-node.llnl.gov/esgf-idp/openid/mvhulten
8c55d65987 rename forum/dne.mdwn to forum/name_resolution_of___33__dne__33___fails.mdwn 2023-12-05 14:07:57 +00:00
https://esgf-node.llnl.gov/esgf-idp/openid/mvhulten
8ee111cd8e 2023-12-05 14:05:08 +00:00
brendan.ward@a2e11ad27f6b2fa2c556aea6811496e0d95dd0da
b34d9b1405 Added a comment 2023-12-05 03:24:29 +00:00
kolam
3e6dba097e 2023-12-04 19:32:28 +00:00
Joey Hess
ecebb00a23
Merge branch 'master' of ssh://git-annex.branchable.com 2023-12-04 13:52:59 -04:00
Joey Hess
383c9833a3
comment 2023-12-04 13:52:51 -04:00
nobodyinperson
9906e8fd4c Added a comment: How about a --offline flag? 2023-12-04 17:52:44 +00:00
Joey Hess
0485dd3161
sync: Fix locking problems during merge when annex.pidlock is set
Presumably git merge sometimes needs to verifiy if a worktree file is
modified, and so will then run git-annex filter-process which would try to
take the pid lock. And for whatever reason, git-annex sync already had the
pidlock held. I have not replicated that, but it does make enough sense to
deploy the workaround.

Like I said back in commit 7bdb0cdc0d,

   Arguably, it would be better to have a way to make any process git-annex
   runs have the env var set. But then it would need to take the pid lock
   when running any and all processes, and that would be a problem when
   git-annex runs two processes concurrently. So, I'm left doing it ad-hoc
   in places where git-annex really does run a child process, directly
   or indirectly via a particular git command.

Sponsored-by: KDM on Patreon
2023-12-04 13:40:28 -04:00
Joey Hess
37ff9b6401
comment 2023-12-04 13:03:16 -04:00
Joey Hess
3549984cac
comment 2023-12-04 12:49:25 -04:00
kdm9
39fed07289 Added a comment 2023-12-04 10:09:16 +00:00
brendan.ward@a2e11ad27f6b2fa2c556aea6811496e0d95dd0da
49374fd9c6 2023-12-04 06:43:03 +00:00
brendan.ward@a2e11ad27f6b2fa2c556aea6811496e0d95dd0da
4e7f4441bc 2023-12-04 06:41:28 +00:00
Atemu
a0540498b4 Added a comment 2023-12-03 21:11:19 +00:00
branch
9eee11d7a8 Added a comment 2023-12-03 11:57:56 +00:00
kdm9
92f37d0d49 new pidlock bug 2023-12-03 10:16:43 +00:00
kolam@976e5fa601b60de70b53dad291714218fd749169
98a0623ab6 rename forum/Can__39__t_access_file_from_secondary_client.mdwn to forum/client_repositories_setup_problem.mdwn 2023-12-02 19:06:00 +00:00
kolam@976e5fa601b60de70b53dad291714218fd749169
a055cb76ca 2023-12-02 18:16:00 +00:00
Joey Hess
edf31a2ebc
update 2023-12-01 15:01:45 -04:00
Joey Hess
5c4ce1353e
comment 2023-12-01 14:42:55 -04:00
Joey Hess
ce9f909ee9
Merge branch 'master' of ssh://git-annex.branchable.com 2023-12-01 13:50:01 -04:00
Joey Hess
1d020df896
git-annex branch size when storing migration information
Sponsored-by: Jack Hill on Patreon
2023-12-01 13:09:52 -04:00
nobodyinperson
381e316e29 Added a comment: Another possibility to make --fast faster? 2023-12-01 11:50:25 +00:00
Atemu
398da4f6ab Added a comment 2023-12-01 10:21:10 +00:00
unqueued
1f7b2ce2c0 Added a comment 2023-12-01 02:09:07 +00:00
Joey Hess
d37219e3e5
comment 2023-11-30 17:07:17 -04:00
Joey Hess
3e8618fed3
comment 2023-11-30 16:49:48 -04:00
Joey Hess
093110d997
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-30 16:36:50 -04:00
Joey Hess
1e31bf8122
copy/move --from-anywhere --to remote
Implementation was simple because it's equivilant to
--from=foo --to remote for each other remote, followed by
--to remote when there's a local copy.

(Or, in the edge case of --from-anywhere --to=here,
it's the same as --to=here.)

Note that, when the local repo does not have a copy,
fromToPerform gets it from a remote, sends it to the destination,
and drops the local copy. Another call to that for a second remote
will notice that the dest now has a copy, and simply drop from the
second remote, avoiding a second transfer.

Also note that, when numcopies doesn't allow dropping it from
everywhere, it will drop it from the cheapest remotes first
(maybe not ideal) up to more expensive remotes, and finally from the local
repo. So the local repo will generally end up holding a copy. Maybe not
ideal in all cases either, but it seems no worse to do that than to end up
with a copy undropped from a remote.

And I'm not entirely happy with the output, eg:

	copy bigfile (from r3...) ok
	copy bigfile ok

That makes sense if you think of the second line as being
the same as what is output by `git-annex copy bigfile --to bar`,
but it's less clear in this context. Maybe add "(from here...)"?
Also the --json output doesn't have a machine-readable field for
the "from" uuid, and maybe it should?

Sponsored-by: Dartmouth College's DANDI project
2023-11-30 16:34:30 -04:00
Joey Hess
1654572bc1
fix --from overriding annex-ignore
Make git-annex get/copy/move --from foo override configuration of
remote.foo.annex-ignore, as documented.

This already worked for remotes supporting hasKeyCheap. For others though,
git-annex copy --from foo would silently not do anything, while
git-annex copy --to foo would use the annex-ignored remote.

Also improved the annex-ignore docs, to reflect that `git-annex get`
without --from will skip using annex-ignored remotes, for example.

Sponsored-by: Dartmouth College's DANDI project
2023-11-30 15:12:07 -04:00
nobodyinperson
1bb1a66255 Added a comment 2023-11-30 06:51:54 +00:00
unqueued
f89def74e4 2023-11-30 05:06:06 +00:00
unqueued
c108fe91bb 2023-11-30 04:52:51 +00:00
Joey Hess
7310ec897e
add news item for git-annex 10.20231129 2023-11-29 16:01:10 -04:00
Joey Hess
bb9ba8dd94
comment 2023-11-29 13:42:12 -04:00
Joey Hess
e66a082b4e
close as fixed 2023-11-29 13:32:19 -04:00
Joey Hess
9ce39d1d2a
response 2023-11-29 13:26:24 -04:00
Joey Hess
af5ee7e951
comment 2023-11-29 12:45:32 -04:00
sng@353ca358075d9aa328f60a5439a3cee10f8301fe
0dce6e5608 Added a comment: corrupted bare repo 2023-11-29 15:34:30 +00:00
Joey Hess
241a344128
comment 2023-11-28 12:23:35 -04:00
Joey Hess
a237f98a70
dial back addition, but keep it
It's a semi-common point of confusion that numcopies is not something
these commands go out and copy files around specifically to satisfy,
without further configuration in preferred content. So this is a good
addition, but it also seemed too long and too specific to the user's
particular situation.
2023-11-28 12:03:55 -04:00
Joey Hess
668db84e51
fix some language 2023-11-28 12:03:49 -04:00
Joey Hess
f3f864fc6d
findkeys: Support --largerthan and --smallerthan
Sponsored-by: Brett Eisenberg on Patreon
2023-11-28 11:51:43 -04:00
Joey Hess
ab59b618c2
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-28 11:26:02 -04:00
lell
6707534edb 2023-11-28 10:41:33 +00:00
lell
7d2300e74e 2023-11-28 10:41:15 +00:00
lell
110fa43ea3 2023-11-28 10:41:02 +00:00
lell
33119339aa 2023-11-28 10:39:30 +00:00
lell
bc6a16813d 2023-11-28 10:37:35 +00:00
lell
4d9751f95f 2023-11-28 10:35:34 +00:00
Joey Hess
c18c353a76
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-26 13:00:35 -04:00
Yann Büchau
0e4fc0f399
Add note to 'satisfy' manpage about it not satisfying numcopies and how to set it up to pass files between remotes that are not present locally.
I got bitten several times in the past by the fact that local preferred
content expressions are not violated (even temporarily) in order to
satisfy numcopies or other remotes' preferred content expressions.
Mostly in the form of the local repo not allowing arbitrary files in
(e.g. because it's set to only want `present` files). This note I add
here explains how to get out of this situation with
`approxlackingcopies=1`.

It might be too specific for this manpage, but I didn't find a better
place to put it.
2023-11-24 12:08:09 +01:00
branch
8525019a06 2023-11-22 22:02:40 +00:00
Joey Hess
c9b766b914
comment 2023-11-21 16:45:03 -04:00
nobodyinperson
574196b887 Added a comment 2023-11-21 20:20:14 +00:00
Joey Hess
c3dd670609
comment 2023-11-21 16:16:27 -04:00
Joey Hess
e08f170b0e
followup and wontfix this 2023-11-21 16:11:10 -04:00
Joey Hess
96c269e087
comment 2023-11-21 16:02:21 -04:00
Joey Hess
a16ad2096b
close 2023-11-21 15:59:18 -04:00
Joey Hess
7ff40bc5be
move a comment that is a bug report 2023-11-21 15:57:10 -04:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
30bc55e55e Added a comment 2023-11-21 09:25:33 +00:00
NewUser
fc10ac3be2 Added a comment 2023-11-20 13:17:03 +00:00
nobodyinperson
3de99793d3 Added a comment: forgot to add the new ignored link + shortcoming of 'ln' command 2023-11-20 10:25:52 +00:00
NewUser
3a4883cabb Added a comment: Is annex.tune.objecthashlower=true recommended for interop with windows? 2023-11-20 04:24:35 +00:00
NewUser
544767a5a4 Added a comment: git annex uninit fails when I symlink your symlink 2023-11-20 04:22:02 +00:00
NewUser
f8f1670005 2023-11-20 02:09:42 +00:00
NewUser
289266618a Added a comment: Thanks Yann! 2023-11-19 18:20:03 +00:00
nobodyinperson
37e5866cd1 Added a comment 2023-11-19 16:27:35 +00:00
nobodyinperson
f4bde53022 Make it more clear that git annex webapp will add files and sync via the assistant. 2023-11-19 16:26:44 +00:00
nobodyinperson
3cd54476b5 Added a comment 2023-11-19 16:16:15 +00:00
NewUser
d5664ac5e2 Added a comment: launching git annex webapp starts adding to the annex which is surprising 2023-11-18 20:08:18 +00:00
NewUser
c727550f68 Added a comment: launching git annex webapp starts adding to the annex which is surprising 2023-11-18 20:03:06 +00:00
yarikoptic
dbf1f5d6d6 Added a comment 2023-11-18 01:35:35 +00:00
Joey Hess
6e3bcbf4dd
Make git-annex copy --from --to --fast actually fast
Eg when the destination is logged as containing a file, skip
actively checking that it does contain it.

Note that --fast does not prevent other verifications of content
location that are done in a copy --from --to. Perhaps it could, but this
change will already avoid the real unnecessary work of operating on
files that are already in the remote.

And avoiding other verifications
might cause it to fail if the location log thinks that --to does not
contain the content but does. Such complications with `git-annex copy
--to remote --fast` led to commit d006586cd0
which added a note that gets displayed when that fails, mentioning it
might be due to --fast being enabled.

copy --from --to is already complicated enough without needing to worry
about such edge cases, so continuing to doing some verification of
content location after the initial --fast filtering seems ok.

Sponsored-by: Dartmouth College's DANDI project
2023-11-17 17:37:58 -04:00
Joey Hess
9f6609d2b1
fixed 2023-11-17 16:46:43 -04:00
Joey Hess
7a8393ce7d
Fix bug in git-annex copy --from --to
Caused it to skip files that were locally present.

Sponsored-by: Dartmouth College's DANDI project
2023-11-17 16:30:20 -04:00
Joey Hess
f2f6dbe46b
comment 2023-11-17 16:17:44 -04:00
nobodyinperson
c2620ac4ca 2023-11-17 11:47:53 +00:00
imlew
0120334a51 Added a comment: thank you 2023-11-17 11:43:39 +00:00
nobodyinperson
929db5c5cf Added a comment 2023-11-17 09:49:02 +00:00
imlew
55a7fce119 Added a comment 2023-11-17 09:41:19 +00:00
nobodyinperson
adfe5a4a4c Added a comment 2023-11-17 08:45:56 +00:00
imlew
144500f19d Added a comment: one more question 2023-11-17 08:23:32 +00:00
imlew
2dedf68e53 Added a comment: not about backends after all 2023-11-17 08:09:23 +00:00
yarikoptic
27e705ea72 remove content of now independent issue https://git-annex.branchable.com/bugs/copy_--from_--to_does_not_copy_if_present_locally/ 2023-11-17 02:23:17 +00:00
yarikoptic
0bde6e8cf4 initial dedicated issue on copy --from --to not copying if present locally 2023-11-17 02:07:35 +00:00
yarikoptic
7205876d23 initial report on --fast of being no effect for copy --from --to 2023-11-16 17:54:49 +00:00
nobodyinperson
0018e5769e Added a comment 2023-11-16 16:34:13 +00:00
nobodyinperson
0a43bcb71b Added a comment 2023-11-16 15:55:49 +00:00
nobodyinperson
9b78834f88 Added a comment 2023-11-16 15:54:08 +00:00
imlew
5454ebe53b Added a comment: I guess this question is about backends 2023-11-16 12:51:59 +00:00
Ilya_Shlyakhter
a15446b458 added bug report for git init on a worktree checked out for a submodule. 2023-11-15 18:45:52 +00:00
imlew
15dc5fae10 2023-11-15 16:36:13 +00:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
aeb4976d07 Added a comment 2023-11-14 22:43:22 +00:00
jcjgraf
d22e8c465e Added a comment 2023-11-14 21:25:24 +00:00
Joey Hess
bca22426d8
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-14 15:02:06 -04:00
Joey Hess
7d67229884
git-annex log --gnuplot
The gnuplot output is pretty good, but could still be improved with:

* more colors (repeating colors is confusing with a lot of repos)
* better positioning of the legend, making the plot wider and moving it
  from over top of the graph

Sponsored-by: Kevin Mueller on Patreon
2023-11-14 14:56:58 -04:00
Joey Hess
0fdc1a54db
git-annex log --received modifier option
Only counting received and not dropped makes this show the bandwidth of
data coming into the repository, although only in a sense. Since
git-annex branch updates only happen at the end of a command, and we
don't know when a command started, it's only an approximation of the
actual bandwidth. (A previous git-annex branch update made have
happened in a different repository.)

It would be possible to also add a --dropped option, but I don't know
how useful that would be?

Sponsored-by: Nicholas Golder-Manning on Patreon
2023-11-14 14:04:46 -04:00
Joey Hess
21e66ce209
rename --when to --interval
More accurately describes its behavior.
2023-11-14 11:45:16 -04:00
grond66@79ca29ba964cd0d8e2f352871d54452e4a9dad88
a79d819b5b 2023-11-14 04:32:15 +00:00
Joey Hess
1ddec09f7c
close 2023-11-13 17:45:37 -04:00
Joey Hess
d826dde59a
update 2023-11-13 13:09:39 -04:00
Joey Hess
dc02236c85
git-annex log --sizes
CSV format so it can be fed into a program to graph it.

Note that dead repositories are not yet handled so their sizes show as
nonzero after they are marked dead.

Sponsored-By: k0ld on Patreon
2023-11-13 13:07:22 -04:00
Lukey
7df85809c8 Added a comment 2023-11-11 16:13:28 +00:00
Joey Hess
574514545c
git-annex log --sizesof
This can take a lot of memory. I decided to violate the usual rule in
git-annex that it operate in constant memory no matter how many annexed
objects. In this case, it would be hard to be fast without using a big
map of the location logs. The main difficulty here is that there can be
many git-annex branches and it needs to display a consistent view at a
point in time, which means merging information from multiple git-annex
branches.

I have not checked if there are any laziness leaks in this code. It
takes 1 gb to run in my big repo, which is around what I estimated
before writing it.

2 options that are documented are not yet implemented.

Small bug: With eg --when=1h, it will display at 12:00 then 1:10 if the
next change after 12:59 is then. Then it waits until after 2:10 to
display the next change. It ought to wait until after 2:00.

Sponsored-by: Brock Spratlen on Patreon
2023-11-10 17:26:10 -04:00
Joey Hess
ae401fae14
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-08 14:14:41 -04:00
Joey Hess
6a8672d756
todo 2023-11-08 14:14:35 -04:00
Joey Hess
11cc9f1933
info: Added calculation of combined annex size of all repositories
Factored out overLocationLogs from CmdLine.Seek, which can calculate this
pretty fast even in a large repo. In my big repo, the time to run git-annex
info went up from 1.33s to 8.5s.

Note that the "backend usage" stats are for annexed files in the working
tree only, not all annexed files. This new data source would let that be
changed, but that would be a confusing behavior change. And I cannot
retitle it either, out of fear something uses the current title (eg parsing
the json).

Also note that, while time says "402108maxresident" in my big repo now,
up from "54092maxresident", top shows the RES constant at 64mb, and it
was 48mb before. So I don't think there is a memory leak. I tried using
deepseq to force full evaluation of addKeyCopies and memory use didn't
change, which also says no memory leak. And indeed, not even calling
addKeyCopies resulted in the same memory use. Probably the increased memory
usage is buffering the stream of data from git in overLocationLogs.

Sponsored-by: Brett Eisenberg on Patreon
2023-11-08 13:35:11 -04:00
jcjgraf
215c96be95 2023-11-07 20:42:11 +00:00
mih
4d242b88eb Added a comment: What about temporary annex.private declaration? 2023-11-07 15:49:47 +00:00
oadams
9ef6257c2f Added a comment 2023-11-07 08:30:21 +00:00
oadams
f8340fc921 2023-11-07 08:26:44 +00:00
Joey Hess
323e4f5a2f
expand description 2023-11-06 11:11:50 -04:00
aurelien@f0d0a0c7da69eff6badf0464898f0a859f69114d
eb846403c9 2023-11-06 01:48:43 +00:00
unqueued
184ebb8802 Added a comment 2023-11-05 21:32:17 +00:00
nobodyinperson
b0b54b678b report 2023-11-05 13:58:25 +00:00
Joey Hess
4e35067325
windows hook scripts newlines without CR
Windows: When git-annex init is installing hook scripts, it will
avoid ending lines with CR for portability.

Existing hook scripts that do have CR line endings will not be changed.
While it would be possible to have git-annex init upgrade them, users would
need to know to use that command to do that, and it would add complexity
that does not seem warranted for the portability benefit alone.

Sponsored-by: Luke T. Shumaker on Patreon
2023-11-02 13:37:04 -04:00
Joey Hess
c41ca6c832
convert StorableCipher to ByteString
This allows getting rid of the ugly and error prone handling of
"bag of bytes" String in Remote.Helper.Encryptable.
Avoiding breakage like that dealt with by commit
9862d64bf9

And allows converting Utility.Gpg to use ByteString for IO, which is
a welcome change.

Tested the new git-annex interoperability with old, using all 3
encryption= types.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-11-01 14:39:49 -04:00
Joey Hess
9862d64bf9
bring back "bag of bytes" handling for ciphers
Fixes test suite failure with LANG=C caused by commit
3742263c99

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-11-01 13:09:42 -04:00
Joey Hess
c927a38dc5
reproduced 2023-11-01 12:19:50 -04:00
Joey Hess
b4c052a4bf
Merge branch 'master' of ssh://git-annex.branchable.com 2023-11-01 12:03:55 -04:00
Joey Hess
3d85489603
update 2023-11-01 08:43:32 -04:00
Joey Hess
caf1652796
update 2023-11-01 08:42:15 -04:00
Joey Hess
1ec3c3e541
update 2023-10-31 14:06:46 -04:00
yarikoptic
99ec795c6a initial bug report 2023-10-30 22:03:20 +00:00
jkniiv
14c38e8a25 Added a comment 2023-10-30 21:32:07 +00:00
Joey Hess
f8d35d9480
lookupkey: Sped up --batch
When the file is relative, it does not need to be passed
through git lsfiles to normalize it.

Sponsored-by: Kevin Mueller on Patreon
2023-10-30 14:59:09 -04:00
Joey Hess
8a540138b6
Merge branch 'master' of ssh://git-annex.branchable.com 2023-10-30 14:45:58 -04:00
Joey Hess
f905bd1508
comment 2023-10-30 14:45:52 -04:00
mih
2299ee2519 Report on a possibly unknown slowness of lookupkey 2023-10-30 07:45:05 +00:00
Joey Hess
bef1d68d13
Merge branch 'master' of ssh://git-annex.branchable.com 2023-10-27 17:47:50 -04:00
Joey Hess
a09d2954c5
remove wrongly nested comment
This happened to prevent checkout on windows, due to filename too long.
2023-10-27 17:47:23 -04:00
jkniiv
d0b381bd42 Added a comment 2023-10-27 18:45:03 +00:00
Joey Hess
73c02e4fe3
comment 2023-10-26 15:22:22 -04:00
nobodyinperson
af6ecc9be5 Added a comment 2023-10-26 17:46:28 +00:00