debian/control
author Anton Shestakov <av6@dwimlabs.net>
Fri, 07 Jun 2019 18:14:48 +0800
branchstable
changeset 4687 313565dd75e3
parent 4685 5ca2da538689
child 4909 56a8fbdd6090
permissions -rw-r--r--
pick: remove transaction on the whole command (issue6037) At its core, pick is a pretty straightforward and well-behaving command, it uses functions already in core hg, it checks that wdir is clean and that changeset to pick is not public, it checks if there happen to be merge conflicts and can be --continue'd later, etc. It is very similar to graft in core (it also uses mergemod.graft function), but it obsoletes the original changeset. However, graft does not experience this incorrect behavior from issue 6037. What happens in the test case for this issue when we pick a revision that touches both "a" and "b": mergemod.graft() takes the original changeset and tries to apply it to the wdir, which results in "b" being marked as newly added and ready to be committed, "a" updated with the new content and being marked as modified, but "a" also has conflicts. Pick correctly notices this and saves its state before asking for user intervention. So far so good. However, when the command raises InterventionRequired to print a user-facing message and exit while being wrapped in repo.transaction() context manager, the latter partially undoes what mergemod.graft() did: it unmarks "b" as added. And when user continues pick, "b" is therefore not tracked and is not included in the resulting commit. The transaction is not useful here, because it doesn't touch wdir (it's still dirty), it doesn't remove pickstate (and other commands will refuse to work until pick --abort or --continue), it just makes "b" untracked. The solution is to use repo.transaction() only to wrap code that writes data to hg store in the final stages of the command after all checks have passed and is not expected to fail on trivial cases like merge conflicts. For example, committing the picked changeset. But since pick uses repo.commit() for that, and because that function already uses a transaction, wrapping it in another transaction doesn't make sense.
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,
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    12
 debhelper (>= 8),
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    13
 python-sphinx (>= 1.0.8),
569
9ff2c5ad1df7 add image magic depends
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 537
diff changeset
    14
 imagemagick,
9ff2c5ad1df7 add image magic depends
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 537
diff changeset
    15
 librsvg2-bin,
1275
783aa685c5d4 Update debian packaging for 5.1.3
Julien Cristau <julien.cristau@logilab.fr>
parents: 1164
diff changeset
    16
 wget,
4685
5ca2da538689 packaging: follow hg's supported python version (>= 2.7)
Anton Shestakov <av6@dwimlabs.net>
parents: 4684
diff changeset
    17
X-Python-Version: >= 2.7
1642
fb5e479080d8 project: change evolution domain to mercurial-scm
timeless@gmail.com
parents: 1617
diff changeset
    18
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
    19
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    20
Package: mercurial-evolve
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    21
Architecture: all
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    22
Depends:
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    23
 ${python:Depends},
536
53d3f4749ebc pkg-debian: improve control files
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 531
diff changeset
    24
 ${misc:Depends},
4684
cfa774ca6560 packaging: require hg 4.5 also for usage, not just for building
Anton Shestakov <av6@dwimlabs.net>
parents: 4683
diff changeset
    25
 mercurial (>= 4.5),
531
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    26
Description: evolve extension for Mercurial
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    27
 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
    28
 DVCS.
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    29
 .
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    30
 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
    31
 it may raise.
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    32
b18b00036355 pkg/debian: Debian packaging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    33