Mercurial > hg
view contrib/plan9/README @ 20827:ca5dd216cb62
localrepo: omit ".hgsubstate" also from "added" files
Before this patch, "localrepository.commit()" omits ".hgsubstate" from
"modified" (changes[0]) and "removed" (changes[2]) file list before
checking subrepositories, but leaves one in "added" (changes[1]) as it
is.
Then, "localrepository.commit()" adds ".hgsubstate" into "modified" or
"removed" list forcibly, according to subrepository statuses.
If "added" contains ".hgsubstate", the committed context will contain
two ".hgsubstate" in its "files": one from "added" (not omitted one),
and another from "modified" or "removed" (newly added one).
How many times ".hgsubstate" appears in "files" changes node hash,
even though revision content is same, because node hash calculation
uses the specified "files" directly (without duplication check or so).
This means that node hash of committed revision changes according to
existence of ".hgsubstate" in "added" at "localrepository.commit()".
".hgsubstate" is treated as "added", not only in accidental cases, but
also in the case of "qpush" for the patch adding ".hgsubstate".
This patch omits ".hgsubstate" also from "added" files before checking
subrepositories. This patch also omits ".hgsubstate" exclusion in
"qnew"/"qrefresh" introduced by changeset d666da075b91, because this
patch makes them meaningless.
"hg parents --template '{files}\n'" newly added to "test-mq-subrepo.t"
enhances checking unexpected multiple appearances of ".hgsubstate" in
"files" of created/refreshed MQ revisions.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 22 Mar 2014 23:39:51 +0900 |
parents | f5dd179bfa4a |
children | 4b0fc75f9403 |
line wrap: on
line source
Mercurial for Plan 9 from Bell Labs =================================== This directory contains support for Mercurial on Plan 9 from Bell Labs platforms. It is assumed that the version of Python running on these systems supports the ANSI/POSIX Environment (APE). At the time of this writing, the bichued/python port is the most commonly installed version of Python on these platforms. If a native port of Python is ever made, some minor modification will need to be made to support some of the more esoteric requirements of the platform rather than those currently made (cf. posix.py). By default, installations will have the factotum extension enabled; this extension permits factotum(4) to act as an authentication agent for HTTP repositories. Additionally, an extdiff command named 9diff is enabled which generates diff(1) compatible output suitable for use with the plumber(4). Commit messages are plumbed using E if no editor is defined; users must update the plumbed file to continue, otherwise the hg process must be interrupted. Some work remains with regard to documentation. Section 5 manual page references for hgignore and hgrc need to be re-numbered to section 6 (file formats) and a new man page writer should be written to support the Plan 9 man macro set. Until these issues can be resolved, manual pages are elided from the installation. Basic install: % mk install # do a system-wide install % hg debuginstall # sanity-check setup % hg # see help A proto(2) file is included in this directory as an example of how a binary distribution could be packaged, ostensibly with contrib(1). See http://mercurial.selenic.com/ for detailed installation instructions, platform-specific notes, and Mercurial user information.