##// END OF EJS Templates
tryimportone: use dirstateguard instead of beginparentchange/endparentchange...
tryimportone: use dirstateguard instead of beginparentchange/endparentchange To fix the issue that the recent (in memory) dirstate isn't visible to external process (e.g. "precommit" hook), a subsequent patch makes "localrepository.commit()" invoke "dirstate.write()" in it. This change will make "beginparentchange()" and "endparentchange()" on dirstate in "cmdutil.tryimportone()" meaningless, because: - "dirstate.write()" writes changed data into ".hg/dirstate", but - aborting between "beginparentchange()" and "endparentchange()" doesn't cause any restoring ".hg/dirstate" it just discards changes in memory. This patch uses "dirstateguard" instead of "beginparentchange()" and "endparentchange()" in "cmdutil.tryimportone()" to restore ".hg/dirstate" during a failure even if "dirstate.write()" is executed before a failure. This patch uses "lockmod.release(dsguard)" instead of "dsguard.release()", because processing may be aborted before assignment to "dsguard" , and the "if dsguard" examination for safety is redundant.

File last commit:

r21486:16352b34 default
r24995:0579b0c2 default
Show More
changelogentry.tmpl
43 lines | 1.4 KiB | application/x-cheetah | CheetahLexer
<entry>
<title>{inbranch%"{if(name, '[{name|escape}] ')}"}{branches%"{if(name, '[{name|escape}] ')}"}{desc|strip|firstline|strip|escape|nonempty}</title>
<id>{urlbase}{url|urlescape}#changeset-{node}</id>
<link href="{urlbase}{url|urlescape}rev/{node|short}"/>
<author>
<name>{author|person|escape}</name>
<email>{author|email|obfuscate}</email>
</author>
<updated>{date|rfc3339date}</updated>
<published>{date|rfc3339date}</published>
<content type="xhtml">
<table xmlns="http://www.w3.org/1999/xhtml">
<tr>
<th style="text-align:left;">changeset</th>
<td>{node|short}</td>
</tr>
<tr>
<th style="text-align:left;">branch</th>
<td>{inbranch%"{name|escape}"}{branches%"{name|escape}"}</td>
</tr>
<tr>
<th style="text-align:left;">bookmark</th>
<td>{bookmarks%"{name|escape}"}</td>
</tr>
<tr>
<th style="text-align:left;">tag</th>
<td>{tags%"{name|escape}"}</td>
</tr>
<tr>
<th style="text-align:left;">user</th>
<td>{author|obfuscate}</td>
</tr>
<tr>
<th style="text-align:left;vertical-align:top;">description</th>
<td>{desc|strip|escape|websub|addbreaks|nonempty}</td>
</tr>
<tr>
<th style="text-align:left;vertical-align:top;">files</th>
<td>{files}</td>
</tr>
</table>
</content>
</entry>