Page MenuHomePhabricator
Feed Advanced Search

Tue, May 24

aalekseyev committed rHGcc92ad0e8185: rhg: correctly handle the case where diffs are encoded relative to nullrev.
rhg: correctly handle the case where diffs are encoded relative to nullrev
Tue, May 24, 2:01 PM
aalekseyev committed rHG2dd53a33aefa: test-revlog: test a repository that contains a diff against nullrev.
test-revlog: test a repository that contains a diff against nullrev
Tue, May 24, 2:01 PM
aalekseyev committed rHG2d0e22171ef9: rhg: align the dirstate v2 writing algorithm with python.
rhg: align the dirstate v2 writing algorithm with python
Tue, May 24, 11:23 AM
aalekseyev committed rHGc29e79d11b01: test-dirstate: actually test the append code path in dirstate v2.
test-dirstate: actually test the append code path in dirstate v2
Tue, May 24, 11:23 AM
aalekseyev closed D12623: clone: use better names for temp files.
Tue, May 24, 9:43 AM
aalekseyev committed rHG4ff4e23de7df: clone: use better names for temp files.
clone: use better names for temp files
Tue, May 24, 9:43 AM

Tue, May 17

aalekseyev updated the summary of D12623: clone: use better names for temp files.
Tue, May 17, 1:29 PM
aalekseyev added a comment to D12623: clone: use better names for temp files.

I'll remove a hardlink=True comment (which is not really worthy of a phabsend), but I don't understand the purpose of the split between (1) and (2). The only reason we're removing a directory is that we're creating it and putting temp files there.
Actually, a commit message could be improved...

Tue, May 17, 11:30 AM

Tue, May 10

aalekseyev created D12623: clone: use better names for temp files.
Tue, May 10, 3:31 PM

Mon, May 9

aalekseyev committed rHG3f86ee422095: censor: make rhg fall back to python when encountering a censored node.
censor: make rhg fall back to python when encountering a censored node
Mon, May 9, 12:39 PM
aalekseyev closed D12604: censor: fix [hg update] away from a revision with censored files.
Mon, May 9, 12:16 PM
aalekseyev committed rHG77b5a190571c: censor: fix [hg update] away from a revision with censored files.
censor: fix [hg update] away from a revision with censored files
Mon, May 9, 12:16 PM
aalekseyev closed D12584: censor: demonstrate a bug.
Mon, May 9, 12:16 PM
aalekseyev committed rHG72936be2a21b: censor: demonstrate a bug.
censor: demonstrate a bug
Mon, May 9, 12:15 PM
aalekseyev closed D12607: censor: make rhg fall back to python when encountering a censored node.
Mon, May 9, 11:53 AM
aalekseyev committed rHG80dfb8fe095a: censor: make rhg fall back to python when encountering a censored node.
censor: make rhg fall back to python when encountering a censored node
Mon, May 9, 11:53 AM

Thu, May 5

aalekseyev updated the diff for D12607: censor: make rhg fall back to python when encountering a censored node.
Thu, May 5, 11:09 AM
aalekseyev created D12607: censor: make rhg fall back to python when encountering a censored node.
Thu, May 5, 10:40 AM
aalekseyev updated the diff for D12584: censor: demonstrate a bug.
Thu, May 5, 10:30 AM

Wed, May 4

aalekseyev created D12604: censor: fix [hg update] away from a revision with censored files.
Wed, May 4, 12:45 PM

Apr 22 2022

aalekseyev created D12584: censor: demonstrate a bug.
Apr 22 2022, 9:41 AM

Apr 21 2022

aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

ZFS bug and lack of tests notwithstanding, the change seems good to me.

Apr 21 2022, 1:55 PM
aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

Relevant issue: https://github.com/prometheus/prometheus/issues/484.
Presumably hg has reasonable expectations here, the bug is in ZFS. However this does mean that we in Jane Street will experience issues since we don't seem to have a patched ZFS.
This also means that this code path is untested, yes? (Since I'm not seeing any errors) Do you know how to reproduce the append behavior so we have a test that breaks on buggy ZFS?

Apr 21 2022, 11:40 AM
aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

Wow, this is actually different on different filesystems: the behavior I described happens on ZFS, while a presumably-desirable behavior (different offset every time) happens on EXT4 and XFS. This is crazy!

Apr 21 2022, 11:31 AM
aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

Yep, same in rust:

Apr 21 2022, 11:22 AM
aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

Ok, I get it. You're saying size 0 is special because a write of size 0 does not update the current file pointer.
I did not know exactly how append mode interacted with lseek, so I did an experiment.
The following C program always prints "hi2" for me, even if redirected to a file in append mode.
I think this means that even though write in append mode always appends to the end of the file, it doesn't actually advance the file pointer to that position, so the returned value is effectively the amount you wrote, not the total size of the file.
(I did not try the same in rust)

Apr 21 2022, 11:11 AM
aalekseyev added a comment to D12580: rust-dirstate-v2: save proper data size if no new data on append.

I don't understand the justification: if it's not correct to store the file length when we're appending empty data, why is it correct to store it when data is not empty? Can't the garbage still be there?

Apr 21 2022, 9:54 AM

Apr 20 2022

aalekseyev added a comment to D12542: narrow: support debugupgraderepo.

FYI both this and D12543 had to be amended because they failed to pass the formatting tests

Apr 20 2022, 6:02 AM

Apr 19 2022

aalekseyev committed rHG9caf23927d04: branchmap: add a test that shows bad interaction with strip.
branchmap: add a test that shows bad interaction with strip
Apr 19 2022, 10:48 AM
aalekseyev committed rHG137a93125902: rhg: refactor to pass argv down, instead of caling args_os().
rhg: refactor to pass argv down, instead of caling args_os()
Apr 19 2022, 10:48 AM
aalekseyev committed rHGa31e9840178e: narrow: support debugupgraderepo.
narrow: support debugupgraderepo
Apr 19 2022, 10:48 AM
aalekseyev closed D12549: branchmap: add a test that shows bad interaction with strip.
Apr 19 2022, 5:19 AM
aalekseyev closed D12543: rhg: refactor to pass argv down, instead of caling args_os().
Apr 19 2022, 5:19 AM
aalekseyev committed rHGf37c451bc0aa: branchmap: add a test that shows bad interaction with strip.
branchmap: add a test that shows bad interaction with strip
Apr 19 2022, 5:19 AM
aalekseyev committed rHG86c49b0000c4: rhg: refactor to pass argv down, instead of caling args_os().
rhg: refactor to pass argv down, instead of caling args_os()
Apr 19 2022, 5:19 AM
aalekseyev closed D12542: narrow: support debugupgraderepo.
Apr 19 2022, 5:19 AM
aalekseyev committed rHGcb21c9c1a480: narrow: support debugupgraderepo.
narrow: support debugupgraderepo
Apr 19 2022, 5:19 AM

Apr 14 2022

aalekseyev added inline comments to D12549: branchmap: add a test that shows bad interaction with strip.
Apr 14 2022, 5:48 AM
aalekseyev added a comment to D12549: branchmap: add a test that shows bad interaction with strip.

Thanks for adding this test. Do you have a fix coming?

Apr 14 2022, 5:48 AM
aalekseyev updated the diff for D12549: branchmap: add a test that shows bad interaction with strip.
Apr 14 2022, 5:44 AM

Apr 13 2022

aalekseyev updated the diff for D12549: branchmap: add a test that shows bad interaction with strip.
Apr 13 2022, 9:42 AM
aalekseyev created D12549: branchmap: add a test that shows bad interaction with strip.
Apr 13 2022, 9:40 AM
aalekseyev added inline comments to D12542: narrow: support debugupgraderepo.
Apr 13 2022, 6:02 AM
aalekseyev updated the diff for D12542: narrow: support debugupgraderepo.
Apr 13 2022, 6:00 AM
aalekseyev added inline comments to D12543: rhg: refactor to pass argv down, instead of caling args_os().
Apr 13 2022, 5:44 AM
aalekseyev updated the diff for D12543: rhg: refactor to pass argv down, instead of caling args_os().
Apr 13 2022, 5:41 AM

Apr 12 2022

aalekseyev created D12543: rhg: refactor to pass argv down, instead of caling args_os().
Apr 12 2022, 3:02 PM
aalekseyev created D12542: narrow: support debugupgraderepo.
Apr 12 2022, 2:49 PM

Mar 2 2022

aalekseyev closed D12213: rhg: simplify the handling of share-safe config mismatch.
Mar 2 2022, 4:48 AM
aalekseyev committed rHG1d5fd9def5ac: rhg: simplify the handling of share-safe config mismatch.
rhg: simplify the handling of share-safe config mismatch
Mar 2 2022, 4:48 AM

Feb 22 2022

aalekseyev added a comment to D12213: rhg: simplify the handling of share-safe config mismatch.

That's cool. Thanks.

Feb 22 2022, 5:56 AM

Feb 21 2022

aalekseyev added a comment to D12213: rhg: simplify the handling of share-safe config mismatch.

There is no benefit to fast-pathing the mismatch case, so it's better to keep the code simple.
In particular the code being removed is hard-coding the fact that the default value is abort, which is something we want to change in the hg deployment we use.
Removing this fast-path make configitems.py the only place where the default value is specified.

Feb 21 2022, 3:47 PM
aalekseyev created D12213: rhg: simplify the handling of share-safe config mismatch.
Feb 21 2022, 2:55 PM

Feb 18 2022

aalekseyev closed D12202: status: fix hg status race against file deletion.
Feb 18 2022, 5:55 AM
aalekseyev committed rHGdcec16e799dd: status: fix hg status race against file deletion.
status: fix hg status race against file deletion
Feb 18 2022, 5:55 AM

Feb 17 2022

aalekseyev added a comment to D12202: status: fix hg status race against file deletion.

The condition to skip just the ENOENT errors is equivalent to the one in osutil.c (line 393). Unfortunately, I believe the pure code is still buggy: there's still the same bug at mercurial/pure/osutil.py line 62.

Feb 17 2022, 4:00 PM
aalekseyev added a comment to D12202: status: fix hg status race against file deletion.

This is a bug that leads to hg status wrongly saying that the whole directory is deleted even though only some of the files in it was deleted (potentially one of the ignored files, in which case the status could even be clean).
I tested it using the following command:

Feb 17 2022, 3:58 PM
aalekseyev created D12202: status: fix hg status race against file deletion.
Feb 17 2022, 3:51 PM

Jan 20 2022

aalekseyev closed D12009: revlog: fix a bug where transaction can be aborted partially.
Jan 20 2022, 10:10 AM
aalekseyev closed D12008: revlog: demonstrate a bug where transaction can be aborted partially.
Jan 20 2022, 10:09 AM
aalekseyev committed rHGccd9cb73125c: revlog: fix a bug where transaction can be aborted partially.
revlog: fix a bug where transaction can be aborted partially
Jan 20 2022, 10:09 AM
aalekseyev committed rHGf38ae2d7390e: revlog: demonstrate a bug where transaction can be aborted partially.
revlog: demonstrate a bug where transaction can be aborted partially
Jan 20 2022, 10:09 AM
aalekseyev added a comment to D12008: revlog: demonstrate a bug where transaction can be aborted partially.

This demonstrates a bug that results in a repo corruption any time a transaction is aborted that adds multiple revs of the same revlog while growing it beyond 128KiB.
I would have thought this affects most hg users, since none of the pre-conditions for this bug is very unique.
Probably this went unnoticed for such a long time simply because transactions are rarely aborted.

Jan 20 2022, 9:14 AM
aalekseyev created D12009: revlog: fix a bug where transaction can be aborted partially.
Jan 20 2022, 9:10 AM
aalekseyev created D12008: revlog: demonstrate a bug where transaction can be aborted partially.
Jan 20 2022, 9:10 AM

Dec 17 2021

aalekseyev closed D11817: sparse: lock the store when updating requirements config.
Dec 17 2021, 8:11 AM
aalekseyev committed rHGb74ee41addee: sparse: lock the store when updating requirements config.
sparse: lock the store when updating requirements config
Dec 17 2021, 8:11 AM
aalekseyev closed D11766: sparse: demonstrate a bug when used with safe-share.
Dec 17 2021, 8:11 AM
aalekseyev committed rHG50330d481640: sparse: demonstrate a bug when used with safe-share.
sparse: demonstrate a bug when used with safe-share
Dec 17 2021, 8:10 AM

Dec 13 2021

aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

Thanks for your review!

Dec 13 2021, 11:23 AM
aalekseyev closed D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 13 2021, 8:51 AM
aalekseyev closed D11881: rhg: centralize index header parsing.
Dec 13 2021, 8:51 AM
aalekseyev committed rHG96ea4db4741b: rhg: fix a crash on non-generaldelta revlogs.
rhg: fix a crash on non-generaldelta revlogs
Dec 13 2021, 8:51 AM
aalekseyev committed rHG1fb3615dfce2: rhg: centralize index header parsing.
rhg: centralize index header parsing
Dec 13 2021, 8:51 AM
aalekseyev closed D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
Dec 13 2021, 8:51 AM
aalekseyev committed rHGe33d7c39db47: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Dec 13 2021, 8:51 AM
aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

The point is to make the output smaller.
Seems ok to output the whole file, too (pushed). (it was 50 lines, not 20, when I introduced it)

Dec 13 2021, 8:45 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 13 2021, 8:42 AM

Dec 10 2021

aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 2:09 PM
aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

The shell strikes again. :-\
I removed the problematic test, so it should be good now.

Dec 10 2021, 11:06 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 10:38 AM
aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

I don't know about revlog-v1 (it seems there are tests in the tree that are revlog-v1-specific and don't gate against it), but (the lack of) zstd compression is also changing the result, so clearly needs to be guarded against, since it's breaking the --pure build.
I pushed that change. If you have ideas how to make the test less fragile, those would be appreciated. One possibility is to remove the test of corrupted repo altogether, if you think that's better.

Dec 10 2021, 9:06 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 8:59 AM
aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

...
The last test is a bit fragile, we should gate it for revlog-v1 only.

Dec 10 2021, 8:39 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 6:55 AM
aalekseyev added a comment to D11882: rhg: fix a crash on non-generaldelta revlogs.

While working on comments I discovered that the rust implementation was different from the C/Python implementation in how it deals with a wrong value of delta chain base.
I made sure that rust code behaves the same as hg there (which is: ignore the corruption) and added a test that checks that.

Dec 10 2021, 6:52 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 6:50 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 10 2021, 6:11 AM
aalekseyev updated the diff for D11881: rhg: centralize index header parsing.
Dec 10 2021, 6:11 AM

Dec 8 2021

aalekseyev added a comment to D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.

The last update was to fix the issue with --pure: the output of debugdeltachain was different there.

Dec 8 2021, 12:29 PM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 8 2021, 12:28 PM
aalekseyev updated the diff for D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
Dec 8 2021, 12:27 PM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 8 2021, 7:36 AM
aalekseyev added inline comments to D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
Dec 8 2021, 7:36 AM
aalekseyev updated the diff for D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
Dec 8 2021, 7:36 AM
aalekseyev added inline comments to D11880: rhg: demonstrate that rhg breaks on non-generaldelta revlogs.
Dec 8 2021, 7:06 AM
aalekseyev added inline comments to D11881: rhg: centralize index header parsing.
Dec 8 2021, 6:41 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 8 2021, 6:40 AM
aalekseyev updated the diff for D11881: rhg: centralize index header parsing.
Dec 8 2021, 6:40 AM
aalekseyev updated the diff for D11882: rhg: fix a crash on non-generaldelta revlogs.
Dec 8 2021, 6:25 AM