Mercurial > hg
view hgext/git/TODO.md @ 45111:7528699c6ccb
rust-status: refactor status into a struct
The code for `dirstate/status` has grown too large for comfort, this is the
first of three patches that try to improve maintainability.
In this patch, refactoring dirstate's status into a struct allows for slimming
down function signatures drastically, keeping the mental (and maintenance)
burden lower, since pretty much all of them shared a few common arguments.
This had the pleasant side-effect of simplifying lifetimes a little. This has
no observable impact on performance.
The next patch will add/improve documentation and refactor some types. I tried
to keep new code down to a minimum in this patch because it's already pretty
big.
Differential Revision: https://phab.mercurial-scm.org/D8661
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 24 Jun 2020 16:12:45 +0200 |
parents | c5653cf2811d |
children |
line wrap: on
line source
Octopus Merge Support ===================== This will be moderately complicated, as we'll need to synthesize phony changeset entries to explode the octopus into "revisions" that only have two parents each. For today, we can probably just do something like aaaaaaaaaaaaaaaaaaXX{20 bytes of exploded node's hex sha} where XX is a counter (so we could have as many as 255 parents in a git commit - more than I think we'd ever see.) That means that we can install some check in this extension to disallow checking out or otherwise interacting with the `aaaaaaaaaaaaaaaaaa` revisions. Interface Creation ==================== We at least need an interface definition for `changelog` in core that this extension can satisfy, and again for `basicstore`. Reason About Locking ==================== We should spend some time thinking hard about locking, especially on .git/index etc. We're probably adequately locking the _git_ repository, but may not have enough locking correctness in places where hg does locking that git isn't aware of (notably the working copy, which I believe Git does not lock.)