mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
23fe5a7780
Summary: The `reset` extension does its own obsmarker creation, rather than going through `scmutil.cleanupnodes`. This means it doesn't support new-style visibility tracking. Fix this by making it use `scmutil.cleanupnodes`. This isn't completely straightforward: * The revset it uses to work out what to prune might accidentally include public commits (e.g. when you reset to a different public branch). Make sure these are filtered. * The tests originally had strip and obsmarker based tests. The strip tests, when converted to obsmarkers and using `scmutil.cleanupnodes` stop working because they strip and revive the same commit over and over, which is an edge case that obsmarkers can't handle well. Fix this by restoring the strip tests as strip tests. A separate test handles the new-style visibility. * Reset's behaviour is still a bit wonky. If an ancestor of the source commit has other (non-bookmarked) descendants, then reset will try to prune those commits. New-style visibility will ignore this, and this is tested in the new test. Reviewed By: farnz Differential Revision: D18912817 fbshipit-source-id: cc115333407cf67d339c24fcd0807ddedce2660d |
||
---|---|---|
.. | ||
benchmarks | ||
cli | ||
docs | ||
fs | ||
integration | ||
locale | ||
py | ||
scm | ||
scripts | ||
test_support | ||
test-data | ||
third-party | ||
win | ||
.gitignore | ||
Eden.project.toml |