diff -r a08bbdf839ae -r ad718271a9eb hgext/git/TODO.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext/git/TODO.md Tue Feb 11 00:44:59 2020 -0500 @@ -0,0 +1,39 @@ +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.) + +Clean up requirements +===================== + +Right now (for historical reasons, mainly) hgext.git uses a +.hg/this-is-git file to detect repositories that should be treated as +git. We should look in the .hg/requires for the "git" requirement +instead (we already set this requirement, so it's mostly keying off +that instead of using an empty file.)