Thu, 22 Jun 2017 14:04:13 -0700 bundle: make combinechangegroupresults() take a bundleoperation
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jun 2017 14:04:13 -0700] rev 33037
bundle: make combinechangegroupresults() take a bundleoperation Both callers have a bundleoperation. Passing it in lets us share a bit more code.
Thu, 22 Jun 2017 13:58:20 -0700 bundle: move combineresults() from changegroup to bundle2
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jun 2017 13:58:20 -0700] rev 33036
bundle: move combineresults() from changegroup to bundle2 The results only need to be combined if they come from a bundle2. More importantly, we'll change its argument to a bundleoperation soon, and then it definitely will no longer belong in changegroup.py.
Wed, 21 Jun 2017 14:42:04 -0700 bundle: remove 'op' argument from applybundle()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 21 Jun 2017 14:42:04 -0700] rev 33035
bundle: remove 'op' argument from applybundle() No callers pass in an operation.
Sat, 24 Jun 2017 10:31:41 -0700 test-rebase-conflicts: add a test case about turning obsstore on and off
Jun Wu <quark@fb.com> [Sat, 24 Jun 2017 10:31:41 -0700] rev 33034
test-rebase-conflicts: add a test case about turning obsstore on and off Turning obsstore and allowunstable on, rebase will skip the "can't remove original changesets with unrebased descendants" check. Then rebase could be interrupted (merge conflict), and the user has a chance to turn off obsstore. If rebase continues, the current code may strip irrelevant commits (in the test case added, "C" got stripped unexpectedly). The test case reproduces issue5606. It will be fixed by the "multidest" rebase refactoring being reviewed. The test case itself is relatively separate from the rebase refactoring, therefore sent separately hoping to reduce the number of patches of the main rebase series.
Sat, 24 Jun 2017 15:50:13 -0400 merge with stable
Augie Fackler <augie@google.com> [Sat, 24 Jun 2017 15:50:13 -0400] rev 33033
merge with stable
Thu, 15 Jun 2017 00:15:52 -0700 strip: include phases in bundle (BC)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Jun 2017 00:15:52 -0700] rev 33032
strip: include phases in bundle (BC) Before this patch, unbundling a stripped changeset would make it a draft (unless the parent was secret). This meant that one would lose phase information when stripping and unbundling secret changesets. The same thing was true for public changesets. While stripping public changesets is generally rare, it's done frequently by e.g. the narrowhg extension. We also include the phases in the temporary bundle, just in case stripping were to fail after that point, so the user can still restore the repo including phase information. Before this patch, the phases were left untouched during the bundling and unbundling of the temporary bundle. Only at the end of the transaction would phasecache.filterunknown() be called to remove phase roots that were no longer valid. We now need to call that also after the first stripping, i.e. before applying the temporary bundle. Otherwise unbundling the temporary bundle will cause a read of the phase cache which has stripped changesets in the cache and that fails. Like with obsmarkers, we unconditionally include the phases in the bundle when stripping (when using bundle2, such as when generaldelta is enabled). The reason for doing that for strip but not for bundle is that strip bundles are not meant to be shared outside the repo, so we don't care as much about compatibility.
Thu, 22 Jun 2017 10:10:02 -0700 bundle: add config option to include phases
Martin von Zweigbergk <martinvonz@google.com> [Thu, 22 Jun 2017 10:10:02 -0700] rev 33031
bundle: add config option to include phases This adds an experimental.bundle-phases config option to include phase information in bundles. As with the recently added support for bundling obsmarkers, the support for bundling phases is hidden behind the config option until we decide to make a bundlespec v3 that includes phases (and obsmarkers and ...). We could perhaps use the listkeys format for this, but that's considered obsolete according to Pierre-Yves. Instead, we introduce a new "phase-heads" bundle part. The new part contains the phase heads among the set of bundled revisions. It does not include those in secret phase; any head in the bundle that is not mentioned in the phase-heads part is assumed to be secret. As a special case, an empty phase-heads part thus means that any changesets should be added in secret phase. (If we ever add a fourth phase, we'll include secret in the part and we'll add a version number.) For now, phases are only included by "hg bundle", and not by e.g. strip and rebase.
Fri, 16 Jun 2017 16:56:16 -0700 bundle2: record changegroup data in 'op.records' (API)
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Jun 2017 16:56:16 -0700] rev 33030
bundle2: record changegroup data in 'op.records' (API) When adding support for bundling and unbundling phases, it will be useful to have the list of added changesets. To do that, we return the list from changegroup.apply().
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -8 +8 +10 +30 +100 +300 +1000 +3000 +10000 tip