hgext/git/TODO.md
changeset 44477 ad718271a9eb
child 44621 c5653cf2811d
--- /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.)