##// END OF EJS Templates
localrepo: use changelog.hasnode instead of self.__contains__...
localrepo: use changelog.hasnode instead of self.__contains__ Before this patch, releasing the store lock implies the actions below, when the transaction is aborted: 1. "commithook()" scheduled in "localrepository.commit()" is invoked 2. "changectx.__init__()" is invoked via "self.__contains__()" 3. specified ID is examined against "repo.dirstate.p1()" 4. validation function is invoked in "dirstate.p1()" In subsequent patches, "dirstate.invalidate()" invocations for discarding changes are replaced with "dirstateguard", but discarding changes by "dirstateguard" is executed after releasing the store lock: resources are acquired in "wlock => dirstateguard => store lock" order, and are released in reverse order. This may cause that "dirstate.p1()" still refers to the changeset to be rolled-back at (4) above: pushing multiple patches by "hg qpush" is a typical case. When releasing the store lock, such changesets are: - not contained in "repo.changelog", if it is reloaded from ".hg/00changelog.i", as that file was already truncated by "transaction.abort()" - still contained in it, otherwise (this "dirty read" problem is discussed in "Transaction Plan" http://mercurial.selenic.com/wiki/TransactionPlan) Validation function shows "unknown working parent" warning in the former case, but reloading "repo.changelog" depends on the timestamp of ".hg/00changelog.i". This causes occasional test failures. In the case of scheduled "commithook()", it just wants to examine whether "node ID" of committed changeset is still valid or not. Other examinations implied in "changectx.__init__()" are meaningless. To avoid showing the "unknown working parent" warning irregularly, this patch uses "changelog.hasnode()" instead of "node in self" to examine existence of committed changeset.

File last commit:

r23930:97393540 stable
r24992:7df090c9 default
Show More
Readme.html
37 lines | 1.8 KiB | text/html | HtmlLexer
Vadim Gelfer
make stuff for macos x binary package....
r1686 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Bryan O'Sullivan
Update binary installer files.
r4723 <!-- This is the second screen displayed during the install. -->
Vadim Gelfer
make stuff for macos x binary package....
r1686 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
Mads Kiilerich
osx: update "Read Me" "Important Information" text in the package installer...
r23930 <title>Read Me - Important Information</title>
Vadim Gelfer
make stuff for macos x binary package....
r1686 <style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #000fed}
span.s1 {text-decoration: underline}
span.s2 {font: 12.0px Courier}
</style>
</head>
<body>
<p class="p1"><b>Before you install</b></p>
<p class="p2"><br></p>
Mads Kiilerich
osx: update "Read Me" "Important Information" text in the package installer...
r23930 <p class="p3">This is an OS X version of Mercurial that depends on the default Python installation.</p>
Vadim Gelfer
make stuff for macos x binary package....
r1686 <p class="p2"><br></p>
<p class="p1"><b>After you install</b></p>
<p class="p2"><br></p>
Mads Kiilerich
osx: update "Read Me" "Important Information" text in the package installer...
r23930 <p class="p3">This package installs the <span class="s2">hg</span> executable as <span class="s2">/usr/local/bin/hg</span>. See <span class="s2">hg debuginstall</span> for more info on file locations.</p>
Vadim Gelfer
make stuff for macos x binary package....
r1686 <p class="p2"><br></p>
Bryan O'Sullivan
Update binary installer files.
r4723 <p class="p1"><b>Documentation</b></p>
<p class="p2"><br></p>
Dirkjan Ochtman
change wiki/bts URLs to point to new hostname
r8936 <p class="p3">Visit the <a href="http://mercurial.selenic.com/">Mercurial web site and wiki</a></p>
Bryan O'Sullivan
Update binary installer files.
r4723 <p class="p2"><br></p>
<p class="p3">There's also a free book, <a href="http://hgbook.red-bean.com/">Distributed revision control with Mercurial</a></p>
<p class="p2"><br></p>
Vadim Gelfer
make stuff for macos x binary package....
r1686 <p class="p1"><b>Reporting problems</b></p>
<p class="p2"><br></p>
<p class="p3">If you run into any problems, please file a bug online:</p>
Mads Kiilerich
osx: update "Read Me" "Important Information" text in the package installer...
r23930 <p class="p3"><a href="http://bz.selenic.com/">http://bz.selenic.com/</a></p>
Vadim Gelfer
make stuff for macos x binary package....
r1686 </body>
</html>