docs/makefile
author Anton Shestakov <av6@dwimlabs.net>
Fri, 07 Jun 2019 18:14:48 +0800
branchstable
changeset 4687 313565dd75e3
parent 4631 150be007f421
child 5226 38d225efcea9
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:
4631
150be007f421 docs: add SPHINXBUILD make variable
Faheem Mitha <faheem@faheem.info>
parents: 2960
diff changeset
     1
SPHINXBUILD ?= sphinx-build
233
9e153a9101c3 [doc] add a simple make file
Pierre-Yves.David@ens-lyon.org
parents:
diff changeset
     2
2824
d0e3a8e0b62c docs: move the topic tutorial in the documentation
Boris Feld <boris.feld@octobus.net>
parents: 765
diff changeset
     3
all: tutorials/tutorial.rst tutorials/topic-tutorial.rst static/logo-evolve.ico
4631
150be007f421 docs: add SPHINXBUILD make variable
Faheem Mitha <faheem@faheem.info>
parents: 2960
diff changeset
     4
	$(SPHINXBUILD) . ../html/
233
9e153a9101c3 [doc] add a simple make file
Pierre-Yves.David@ens-lyon.org
parents:
diff changeset
     5
2960
1a4f26eec0af test2rst: ignore the #if/#endif line in the output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2824
diff changeset
     6
tutorials/tutorial.rst: tutorials/tutorial.t test2rst.py
235
8469ccb9550f [doc] add `.t` to `.rst` converteur
Pierre-Yves.David@ens-lyon.org
parents: 233
diff changeset
     7
	python test2rst.py tutorials/
557
41688ca951e7 doc: add a logo
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 242
diff changeset
     8
2960
1a4f26eec0af test2rst: ignore the #if/#endif line in the output
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2824
diff changeset
     9
tutorials/topic-tutorial.rst: tutorials/topic-tutorial.t test2rst.py
2824
d0e3a8e0b62c docs: move the topic tutorial in the documentation
Boris Feld <boris.feld@octobus.net>
parents: 765
diff changeset
    10
	python test2rst.py tutorials/
d0e3a8e0b62c docs: move the topic tutorial in the documentation
Boris Feld <boris.feld@octobus.net>
parents: 765
diff changeset
    11
558
11c5f734d64e docs: fix makefile
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 557
diff changeset
    12
static/logo-evolve.ico: static/logo-evolve.svg
557
41688ca951e7 doc: add a logo
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 242
diff changeset
    13
	convert -resize 36x36 static/logo-evolve.svg static/logo-evolve.ico