Page MenuHomePhabricator

indygreg (Gregory Szorc)
User

Projects

User Details

User Since
Jul 1 2017, 5:02 PM (179 w, 3 h)

Recent Activity

Yesterday

indygreg closed D9281: cext: add .pyi files for C extensions.
Fri, Dec 4, 2:53 PM
indygreg committed rHG8dca9051a859: cext: add .pyi files for C extensions.
cext: add .pyi files for C extensions
Fri, Dec 4, 2:52 PM

Wed, Nov 18

indygreg closed D9280: revlog: pass sidedata argument to flagutil.processflagswrite().
Wed, Nov 18, 6:07 PM
indygreg committed rHG11842aad3195: revlog: pass sidedata argument to flagutil.processflagswrite().
revlog: pass sidedata argument to flagutil.processflagswrite()
Wed, Nov 18, 6:06 PM
indygreg committed rHG68aedad4c11c: pure: guard against empty blocks.
pure: guard against empty blocks
Wed, Nov 18, 6:06 PM
indygreg closed D9279: pure: guard against empty blocks.
Wed, Nov 18, 6:06 PM

Wed, Nov 11

D9295: test-filecache: use sys.executable to call python is now accepted and ready to land.
Wed, Nov 11, 11:44 PM
indygreg added a comment to D9294: packaging: enable rust extensions on centos.

Are the Rust extensions considered stable? I'm honestly unsure. I'd love to ship these. But I'd like confirmation from the people maintaining them before we sign off.

Wed, Nov 11, 11:44 PM
D9293: packaging: switch centos 7 packaging to python 3 is now accepted and ready to land.
Wed, Nov 11, 11:43 PM
D9292: packaging: remove centos5 and centos6 support is now accepted and ready to land.
Wed, Nov 11, 11:42 PM
D9291: make: add a pyoxidizer target is now accepted and ready to land.
Wed, Nov 11, 11:40 PM
D9290: pyoxidizer: switch to modern config using run_command instead of run_mode is now accepted and ready to land.
Wed, Nov 11, 11:40 PM

Tue, Nov 10

D9289: pyoxidizer: default to one-file binary on non-Windows platforms is now accepted and ready to land.

I think this should work.

Tue, Nov 10, 8:47 PM
indygreg closed D9273: global: use python3 in shebangs.
Tue, Nov 10, 12:13 AM
indygreg committed rHGc102b704edb5: global: use python3 in shebangs.
global: use python3 in shebangs
Tue, Nov 10, 12:11 AM

Mon, Nov 9

indygreg added inline comments to D9283: bundle: optional multithreaded compression, ATM zstd-only.
Mon, Nov 9, 11:26 PM
D9286: tests: use python from environment in test-parseindex2.py is now accepted and ready to land.
Mon, Nov 9, 11:19 PM

Sat, Nov 7

indygreg created D9281: cext: add .pyi files for C extensions.
Sat, Nov 7, 8:23 PM
indygreg created D9280: revlog: pass sidedata argument to flagutil.processflagswrite().
Sat, Nov 7, 8:23 PM
indygreg created D9279: pure: guard against empty blocks.
Sat, Nov 7, 8:23 PM
indygreg added a comment to D9277: transaction: change list of journal entries into a dictionary.

Let's refactor the playback code to read from the journal file [handle]. That will preserve the order. There should be no meaningful performance implications here.

Sat, Nov 7, 8:06 PM
indygreg added a comment to D9278: transaction: split new files into a separate set.

Why do we have to maintain the in-memory records at all? Don't we write these to the journal and journal.backupfiles files? What's wrong with reading this file handle? We only need to perform a findoffset() when incurring a split revlog or during rollback, right? Is there a noticeable performance overhead to performing that linear scan?

Sat, Nov 7, 5:54 PM
indygreg added a comment to D9277: transaction: change list of journal entries into a dictionary.

I want a 2nd set of eyes on this.

Sat, Nov 7, 5:52 PM
D9276: transaction: rename find to findoffset and drop backup file support is now accepted and ready to land.
Sat, Nov 7, 5:40 PM
D9275: transaction: drop per-file extra data support is now accepted and ready to land.

I _think_ this is safe. But I would appreciate an extra set of eyes on the changed code in revlog.py. Essentially what's happening here is we were previously stuffing the number of revisions in the revlog in the in-memory data structure so we could recover the inline revlog if we had to roll back a .i -> .d revlog split that was incurred as part of the transaction.

Sat, Nov 7, 5:38 PM
indygreg added a comment to D9237: transaction: only keep file names in-memory for journal [WIP].

I was just attempting to read the transactions code as part of D9274.

Sat, Nov 7, 2:54 PM
indygreg created D9274: internals: start to document how .hg/ works.
Sat, Nov 7, 2:43 PM

Fri, Nov 6

indygreg created D9273: global: use python3 in shebangs.
Fri, Nov 6, 5:30 PM

Nov 5 2020

indygreg committed rHGc2837640aeb0: makefile: use Python 3 by default (BC).
makefile: use Python 3 by default (BC)
Nov 5 2020, 11:21 AM
indygreg closed D7258: makefile: use Python 3 by default (BC).
Nov 5 2020, 11:21 AM
indygreg retitled D7258: makefile: use Python 3 by default (BC) from makefile: use Python 3 by default outside of Windows (BC) to makefile: use Python 3 by default (BC).
Nov 5 2020, 11:13 AM

Nov 2 2020

indygreg added a comment to D9155: revlog: don't cache parsed tuples in the C module.

I was skeptical when I saw this patch because complexity in C code in the Mercurial codebase tends to exist for good reasons since we tend to treat C code as toxic and a CVE waiting to happen. Anyway, I traced this cache to https://www.mercurial-scm.org/repo/hg-committed/log/a6fde9d789d9/mercurial/cext/revlog.c?patch=&linerange=349:358 / https://www.mercurial-scm.org/repo/hg-committed/rev/2cdd7e63211b.

Nov 2 2020, 2:15 AM
indygreg added a comment to D9139: copies: add a HASCOPIESINFO flag to highlight rev with useful data.

@marmoute: both REVISION_FLAG_SIDEDATA and REVISION_FLAG_HASCOPIESINFO need documented in mercurial/helptext/internals/revlogs.txt. Could you please send a patch to ensure the technical specs stay in sync with reality?

Nov 2 2020, 12:59 AM

Oct 22 2020

indygreg committed rHGd1ce0ffdd3ce: automation: upload Python 3.9 Windows wheels.
automation: upload Python 3.9 Windows wheels
Oct 22 2020, 6:31 AM
indygreg committed rHGd270b9b797a7: contrib: split Windows requirements into multiple files.
contrib: split Windows requirements into multiple files
Oct 22 2020, 6:31 AM

Oct 21 2020

indygreg closed D9228: pyoxidizer: update to PyOxidizer 0.9.
Oct 21 2020, 11:31 PM
indygreg committed rHGf95b16796688: pyoxidizer: update to PyOxidizer 0.9.
pyoxidizer: update to PyOxidizer 0.9
Oct 21 2020, 11:31 PM
indygreg updated subscribers of D9228: pyoxidizer: update to PyOxidizer 0.9.

@pulkit @durin42 @martinvonz: this should get queued to stable to support the 5.6 release. I'll be grafting it locally to produce the Python 3 Windows installers.

Oct 21 2020, 11:18 PM

Oct 19 2020

indygreg created D9228: pyoxidizer: update to PyOxidizer 0.9.
Oct 19 2020, 1:48 AM

Oct 10 2020

indygreg closed D9188: automation: upgrade packages in Linux environment.
Oct 10 2020, 2:19 AM
indygreg closed D9187: packaging: upgrade packages in Windows environment.
Oct 10 2020, 2:18 AM
indygreg closed D9189: automation: support running against Python 3.9.
Oct 10 2020, 2:18 AM
indygreg committed rHG64a9423450ef: automation: support running against Python 3.9.
automation: support running against Python 3.9
Oct 10 2020, 2:18 AM
indygreg committed rHG9934920af5f7: automation: upgrade packages in Linux environment.
automation: upgrade packages in Linux environment
Oct 10 2020, 2:18 AM
indygreg closed D9186: contrib: install Python 3.9.0.
Oct 10 2020, 2:18 AM
indygreg committed rHGeceebe3f9baf: packaging: upgrade packages in Windows environment.
packaging: upgrade packages in Windows environment
Oct 10 2020, 2:18 AM
indygreg committed rHG7a907388a4a5: contrib: install Python 3.9.0.
contrib: install Python 3.9.0
Oct 10 2020, 2:18 AM
indygreg closed D9185: contrib: stop installing Python 3.5 and 3.6 in Windows environment.
Oct 10 2020, 2:18 AM
indygreg committed rHGef8eccefe0c3: contrib: stop installing Python 3.5 and 3.6 in Windows environment.
contrib: stop installing Python 3.5 and 3.6 in Windows environment
Oct 10 2020, 2:18 AM

Oct 9 2020

indygreg created D9188: automation: upgrade packages in Linux environment.
Oct 9 2020, 12:47 PM
indygreg created D9189: automation: support running against Python 3.9.
Oct 9 2020, 12:47 PM
indygreg created D9187: packaging: upgrade packages in Windows environment.
Oct 9 2020, 12:47 PM
indygreg created D9186: contrib: install Python 3.9.0.
Oct 9 2020, 12:47 PM
indygreg created D9185: contrib: stop installing Python 3.5 and 3.6 in Windows environment.
Oct 9 2020, 12:47 PM
indygreg closed D9148: pyoxidizer: produce working Python 3 Windows installers (issue6366).
Oct 9 2020, 6:17 AM
indygreg committed rHG57b5452a55d5: pyoxidizer: produce working Python 3 Windows installers (issue6366).
pyoxidizer: produce working Python 3 Windows installers (issue6366)
Oct 9 2020, 6:17 AM

Oct 6 2020

indygreg closed D9147: packaging: normalize - to _ in WiX Id values.
Oct 6 2020, 5:04 AM
indygreg closed D9145: contrib: install latest versions of Python.
Oct 6 2020, 5:04 AM
indygreg committed rHG439ce34d81e6: packaging: normalize - to _ in WiX Id values.
packaging: normalize - to _ in WiX Id values
Oct 6 2020, 5:04 AM
indygreg closed D9146: contrib: install Rust 1.46.0.
Oct 6 2020, 5:04 AM
indygreg committed rHG56281b75264a: contrib: install latest versions of Python.
contrib: install latest versions of Python
Oct 6 2020, 5:03 AM
indygreg committed rHG6a36e2d2011f: contrib: install Rust 1.46.0.
contrib: install Rust 1.46.0
Oct 6 2020, 5:03 AM

Oct 5 2020

indygreg created D9148: pyoxidizer: produce working Python 3 Windows installers (issue6366).
Oct 5 2020, 1:39 AM
indygreg created D9147: packaging: normalize - to _ in WiX Id values.
Oct 5 2020, 1:39 AM
indygreg created D9146: contrib: install Rust 1.46.0.
Oct 5 2020, 1:39 AM
indygreg created D9145: contrib: install latest versions of Python.
Oct 5 2020, 1:39 AM

Sep 22 2020

D9062: git: also convert timezone to int (issue6359) is now accepted and ready to land.
Sep 22 2020, 10:21 PM
indygreg added a comment to D9059: procutil: assign stdio objects if they are None.

This patch breaks my brain because our mucking about with sys.std* is wonky. We are doing really hacky things in both procutil.py and dispatch.py, including reassigning sys.std* in dispatch.py before this patch. I'd strongly prefer to have that logic consolidated.

Sep 22 2020, 10:21 PM
D9058: chg: fallback to original hg if stdio fds are missing is now accepted and ready to land.

This looks like a legit bug fix. And when I see patches like this, I wonder what circumstances led to its discovery :p

Sep 22 2020, 10:10 PM
D9053: locking: remove support for inheriting locks in subprocess is now accepted and ready to land.

Wow - I had no clue this functionality existed! This functionality feels brittle and I'll gladly approve changes to simplify the locking code.

Sep 22 2020, 10:07 PM
indygreg accepted D9041: mergedriver: delete it.
Sep 22 2020, 10:05 PM
D8959: hg-core: define a `DebugData` `Operation` is now accepted and ready to land.
Sep 22 2020, 10:02 PM
indygreg added a comment to D8958: hg-core: Add a limited read only `revlog` implementation.

I didn't review the tests. But this seems like a decent first implementation of a revlog reader. The Python code for revlog reading is substantially more complex. Although a lot of that complexity has to do with extracting maximum performance out of Python. I am very curious how many of those optimizations we'll need in Rust to obtain a similar level of performance! Decompression often dominates revlog read times and I suspect Rust will enable us to leverage multithreading more easily, eventually allowing us to easily surpass Python's speed.

Sep 22 2020, 9:58 PM
D9046: tests: add test showing broken extension loading in case of share-safe is now accepted and ready to land.
Sep 22 2020, 9:25 PM
D9045: tests: update test-share-safe to work with non-zstd versions now requires changes to proceed.
Sep 22 2020, 9:24 PM
D8990: rust-cpython: switch logging facade from `simple_logger` to `env_logger` is now accepted and ready to land.
Sep 22 2020, 9:23 PM

Sep 17 2020

D9040: merge: use in-memory mergestate when using in-memory context is now accepted and ready to land.
Sep 17 2020, 10:24 PM
D9039: mergestate: extract a base class to be shared by future memmergestate is now accepted and ready to land.
Sep 17 2020, 10:22 PM
D9038: mergestate: extract overridable methods for making/restoring file backups is now accepted and ready to land.
Sep 17 2020, 10:21 PM
D9037: mergestate: initialize all properties in __init__() is now accepted and ready to land.

This is so much cleaner.

Sep 17 2020, 10:20 PM
D9036: mergestate: remove unnecessary clearing of `localctx` and `otherctx` is now accepted and ready to land.

Use of delattr is a bit wonky in the first place, as optional instance attributes feel like an anti-pattern to me. This is probably fine.

Sep 17 2020, 10:19 PM
D9035: mergestate: move most of of reset() into start() is now accepted and ready to land.
Sep 17 2020, 10:18 PM
D9034: mergestate: make clean() only be about creating a clean mergestate is now accepted and ready to land.
Sep 17 2020, 10:17 PM
D9033: mergestate: split up reset() for its two use cases is now accepted and ready to land.
Sep 17 2020, 10:16 PM
D9032: mergestate: simplify reset(), knowing that `other` and `node` go together is now accepted and ready to land.
Sep 17 2020, 10:15 PM
D9031: mergestate: make some callers not pass pointless node argument is now accepted and ready to land.
Sep 17 2020, 10:14 PM
D9030: py3: don't risk passing a None value to error.ManifestLookupError() is now accepted and ready to land.
Sep 17 2020, 10:12 PM
D8983: merge: move initial handling of mergeactions near to later one is now accepted and ready to land.
Sep 17 2020, 10:10 PM
D8968: phabricator: Pass through diffoptions now requires changes to proceed.
Sep 17 2020, 10:09 PM
indygreg added a comment to D8673: config: add a .hg/hgrc-not-shared which won't be shared in share-safe mode.

Before approving this, I'd like to have a quick conversation about the file name and documentation.

Sep 17 2020, 10:03 PM
D8660: upgrade: support running upgrade if repository has share-safe requirement is now accepted and ready to land.
Sep 17 2020, 9:51 PM
D8659: config: add `--shared` flag to edit config file of shared source is now accepted and ready to land.

I may tweak the language of the user-facing messages in flight to make them slightly more readable.

Sep 17 2020, 9:38 PM
D8656: localrepo: load the share source .hg/hgrc also in share-safe mode (API) is now accepted and ready to land.

This seems like useful functionality. However, I expect someone to complain about both the reading the extra config file and prepending its content on unshare. I'm tempted to say we should preemptively make this behavior configurable. Although I hate complexity. So let's wait until someone complains.

Sep 17 2020, 9:37 PM
indygreg accepted D8633: share: introduce config option to store requires in .hg/store.
Sep 17 2020, 9:13 PM
D8952: remotefilelog: acquire lock before writing requirements on clone is now accepted and ready to land.
Sep 17 2020, 9:08 PM

Sep 15 2020

indygreg added a comment to D9001: tags: take lock instead of wlock before writing hgtagsfnodes1 cache.

This change may break compatibility with older clients. As written, if an old client and modern client write the tags cache file, they will obtain different locks and race to write the tags cache. If we want backwards compatibility, we need to take the store lock in addition to the working directory lock.

Sep 15 2020, 8:47 PM

Aug 25 2020

indygreg added a comment to D8633: share: introduce config option to store requires in .hg/store.

I was going to push this but there's a test failure:

Aug 25 2020, 9:48 PM
indygreg accepted D8914: helptext: document exp-sharesafe in internals/requirements.txt.
Aug 25 2020, 9:34 PM
indygreg added a comment to D8633: share: introduce config option to store requires in .hg/store.

I'm approving this as an experimental quality feature. I think the technical direction is sound and the splitting of requirements corrects some long-standing soundness issues and will lead to a better end-user experience for shared repositories.

Aug 25 2020, 9:33 PM
D8913: scmutil: introduce filterrequirements() to split reqs into wc and store ones is now accepted and ready to land.
Aug 25 2020, 9:12 PM