debian/control
author Sushil khanchi <sushilkhanchi97@gmail.com>
Sun, 29 Dec 2019 23:59:41 +0530
changeset 5239 13152b2fe8f7
parent 4913 cac7e750422f
child 5294 29f3680823e9
permissions -rw-r--r--
evolve: refactor content-divergence resolution logic > What is the case we are looking at? This is about refactoring the part of content-div resolution logic where it decides which cset should be relocated and where. > What is a "topologicial common ancestors" vs a "greatest common ancestors"? `tca` is an ancestor which we can decide/find by looking at the at graph visually for e.g ``` c3(*) c4(*) | | c2(x) c1(x) c5 | / \ | / c0 ``` (c5 is the successor of c2 and c1) now here, `tca` of c3 and c4 is: c0 `gca` of c3 and c4 is: c5 > What is the new top-level logic/behavior that makes it better? The old code had some unnecessary edge cases just because we were using `gca`, since it can point to a revision that is not a topological ancestor. For e.g see b779b40f996e Eventually, the code around this was getting messy unnecessarily. So I looked into it and found a simple and more robust approach. And in new code, it is simple and straightforward (and easy to understand), where we handle the following 4 cases when solving content-div: 1) when both are on the same parent => (no need to do anything special, and simply proceed) 2) both are on the different parent but a) `tca` is the parent of one of them or b) there is no non-obsolete revision between `tca` and one of the divergent cset. => (relocate one to the other side and proceed) 3) both are on different parents and `tca` is not the parent of any of them and there is at least one non-obsolete cset between tca and both the divergent cset i.e (tca::div1) and (tca::div2) both the ranges have at least one non-obs revision. => (this is the case which we don't handle yet, but the solution would be to prompt the user to choose an evolve destination.) 4) both are in the parent-child relation => (both are merged and new cset will be based on the successor of `tca`) Changes in test-evolve-issue5958.t demonstrate that new code also covered case4 because in a resolution of "two divergent csets with parent-child relation" there should be one cset as a result and no orphan revs (as you can see there was an orphan before this patch).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     1
Source: mercurial-evolve
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
Section: vcs
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
Priority: optional
537
6b459431d215 pkg-debian: fix uploader fields
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 536
diff changeset
     4
Maintainer: Logilab <contact@logilab.fr>
6b459431d215 pkg-debian: fix uploader fields
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 536
diff changeset
     5
Uploaders:
6b459431d215 pkg-debian: fix uploader fields
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 536
diff changeset
     6
 Julien Cristau <julien.cristau@logilab.fr>,
6b459431d215 pkg-debian: fix uploader fields
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 536
diff changeset
     7
 Pierre-Yves David <pierre-yves.david@logilab.fr>,
536
53d3f4749ebc pkg-debian: improve control files
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 531
diff changeset
     8
Standards-Version: 3.9.3
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     9
Build-Depends:
4683
33696e2159a7 packaging: require mercurial >= 4.5
Philippe Pepiot <philippe.pepiot@logilab.fr>
parents: 3162
diff changeset
    10
 mercurial (>= 4.5),
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    11
 python,
4913
cac7e750422f debian: also build with python3
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4912
diff changeset
    12
 python3,
4912
43e9bb4de6b5 debian: update debhelper compat
Denis Laxalde <denis@laxalde.org>
parents: 4909
diff changeset
    13
 debhelper (>= 10),
4909
56a8fbdd6090 debian: use pybuild and dh_sphinxdoc
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4685
diff changeset
    14
 dh-python,
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    15
 python-sphinx (>= 1.0.8),
569
9ff2c5ad1df7 add image magic depends
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 537
diff changeset
    16
 imagemagick,
9ff2c5ad1df7 add image magic depends
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 537
diff changeset
    17
 librsvg2-bin,
1275
783aa685c5d4 Update debian packaging for 5.1.3
Julien Cristau <julien.cristau@logilab.fr>
parents: 1164
diff changeset
    18
 wget,
4909
56a8fbdd6090 debian: use pybuild and dh_sphinxdoc
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4685
diff changeset
    19
 sphinx-common,
4685
5ca2da538689 packaging: follow hg's supported python version (>= 2.7)
Anton Shestakov <av6@dwimlabs.net>
parents: 4684
diff changeset
    20
X-Python-Version: >= 2.7
4913
cac7e750422f debian: also build with python3
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4912
diff changeset
    21
X-Python3-Version: >= 3.6
1642
fb5e479080d8 project: change evolution domain to mercurial-scm
timeless@gmail.com
parents: 1617
diff changeset
    22
Homepage: https://www.mercurial-scm.org/doc/evolution/
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    23
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    24
Package: mercurial-evolve
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    25
Architecture: all
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    26
Depends:
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    27
 ${python:Depends},
4913
cac7e750422f debian: also build with python3
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4912
diff changeset
    28
 ${python3:Depends},
536
53d3f4749ebc pkg-debian: improve control files
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 531
diff changeset
    29
 ${misc:Depends},
4909
56a8fbdd6090 debian: use pybuild and dh_sphinxdoc
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4685
diff changeset
    30
 ${sphinxdoc:Depends},
4684
cfa774ca6560 packaging: require hg 4.5 also for usage, not just for building
Anton Shestakov <av6@dwimlabs.net>
parents: 4683
diff changeset
    31
 mercurial (>= 4.5),
4909
56a8fbdd6090 debian: use pybuild and dh_sphinxdoc
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 4685
diff changeset
    32
Built-Using: ${sphinxdoc:Built-Using}
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    33
Description: evolve extension for Mercurial
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    34
 This package provides the experimental "evolve" extension for the Mercurial
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    35
 DVCS.
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    36
 .
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    37
 This extension provides several commands to mutate history and deal with issues
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    38
 it may raise.
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    39
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    40