hgext/narrow/TODO.rst
author Boris Feld <boris.feld@octobus.net>
Fri, 07 Sep 2018 11:17:30 -0400
changeset 39494 e72130f58f5d
parent 36104 9b5df6e19a4f
child 39544 10a8472f6662
permissions -rw-r--r--
snapshot: consider all snapshots in the parents' chains There are no reasons to only consider full snapshot as a possible base for an intermediate snapshot. Now that the basic principles have been set, we can start adding more levels of snapshots. We now consider all snapshots in the parent's chains (full or intermediate). This creates a chain of intermediate snapshots, each smaller than the previous one. # Effect On The Test Repository In the test repository, we can see a decrease in the revlog size and slightly shorter delta chain. However, that approach creates snapshots more frequently, increasing the risk of ending into problematic cases in very branchy repositories (not triggered by the test repository). The next changesets will remove that risk by adding logic that increases deltas reuse.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
36104
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
Integration with the share extension needs improvement. Right now
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
we've seen some odd bugs, and the way we modify the contents of the
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
.hg/shared file is unfortunate. See wrappostshare() and unsharenarrowspec().
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
Resolve commentary on narrowrepo.wraprepo.narrowrepository.status
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
about the filtering of status being done at an awkward layer. This
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
came up the import to hgext, but nobody's got concrete improvement
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
ideas as of then.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
Fold most (or preferably all) of narrowrevlog.py into core.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
Address commentary in narrowrevlog.excludedmanifestrevlog.add -
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
specifically we should improve the collaboration with core so that
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
add() never gets called on an excluded directory and we can improve
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
the stand-in to raise a ProgrammingError.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    16
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
Figure out how to correctly produce narrowmanifestrevlog and
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
narrowfilelog instances instead of monkeypatching regular revlogs at
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
runtime to our subclass. Even better, merge the narrowing logic
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
directly into core.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
Reason more completely about rename-filtering logic in
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
narrowfilelog. There could be some surprises lurking there.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
Formally document the narrowspec format. Unify with sparse, if at all
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    26
possible. For bonus points, unify with the server-specified narrowspec
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    27
format.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    28
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    29
narrowrepo.setnarrowpats() or narrowspec.save() need to make sure
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    30
they're holding the wlock.
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    31
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    32
Implement a simple version of the expandnarrow wireproto command for
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    33
core. Having configurable shorthands for narrowspecs has been useful
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    34
at Google (and sparse has a similar feature from Facebook), so it
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
probably makes sense to implement the feature in core. (Google's
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    36
handler is entirely custom to Google, with a custom format related to
9b5df6e19a4f narrow: add a TODO document
Augie Fackler <augie@google.com>
parents:
diff changeset
    37
bazel's build language, so it's not in the narrowhg distribution.)