equal
deleted
inserted
replaced
|
1 Octopus Merge Support |
|
2 ===================== |
|
3 |
|
4 This will be moderately complicated, as we'll need to synthesize phony |
|
5 changeset entries to explode the octopus into "revisions" that only |
|
6 have two parents each. For today, we can probably just do something like |
|
7 |
|
8 aaaaaaaaaaaaaaaaaaXX{20 bytes of exploded node's hex sha} |
|
9 |
|
10 where XX is a counter (so we could have as many as 255 parents in a |
|
11 git commit - more than I think we'd ever see.) That means that we can |
|
12 install some check in this extension to disallow checking out or |
|
13 otherwise interacting with the `aaaaaaaaaaaaaaaaaa` revisions. |
|
14 |
|
15 |
|
16 Interface Creation |
|
17 ==================== |
|
18 |
|
19 We at least need an interface definition for `changelog` in core that |
|
20 this extension can satisfy, and again for `basicstore`. |
|
21 |
|
22 |
|
23 Reason About Locking |
|
24 ==================== |
|
25 |
|
26 We should spend some time thinking hard about locking, especially on |
|
27 .git/index etc. We're probably adequately locking the _git_ |
|
28 repository, but may not have enough locking correctness in places |
|
29 where hg does locking that git isn't aware of (notably the working |
|
30 copy, which I believe Git does not lock.) |
|
31 |
|
32 Clean up requirements |
|
33 ===================== |
|
34 |
|
35 Right now (for historical reasons, mainly) hgext.git uses a |
|
36 .hg/this-is-git file to detect repositories that should be treated as |
|
37 git. We should look in the .hg/requires for the "git" requirement |
|
38 instead (we already set this requirement, so it's mostly keying off |
|
39 that instead of using an empty file.) |