2007-02-23 19:31:00 +03:00
|
|
|
workingfilectx.date = (1000, 0)
|
2014-10-14 09:52:27 +04:00
|
|
|
<status modified=['foo'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-06-14 02:59:18 +04:00
|
|
|
diff --git a/foo b/foo
|
|
|
|
--- a/foo
|
|
|
|
+++ b/foo
|
|
|
|
@@ -1,1 +1,2 @@
|
|
|
|
foo
|
|
|
|
+bar
|
context: cache self._status correctly at workingctx.status
Before this patch, "workingctx.status" always replaces "self._status"
by the recent result, even though:
- status isn't calculated against the parent of the working directory, or
- specified "match" isn't "always" one
(status is only visible partially)
If "workingctx" object is shared between some procedures indirectly
referring "ctx._status", this incorrect caching may cause unexpected
result: for example, "ctx._status" is used via "manifest()", "files()"
and so on.
To cache "self._status" correctly at "workingctx.status", this patch
overwrites "self._status" in "workingctx._buildstatus" only when:
- status is calculated against the parent of the working directory, and
- specified "match" is "always" one
This patch can be applied (and effective) only on default branch,
because procedure around "basectx.status" is much different between
stable and default: for example, overwriting "self._status" itself is
executed not in "workingctx._buildstatus" but in
"workingctx._poststatus", on stable branch.
2014-12-31 11:55:43 +03:00
|
|
|
= checking context.status():
|
|
|
|
== checking workingctx.status:
|
|
|
|
wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
=== with "pattern match":
|
context: cache self._status correctly at workingctx.status
Before this patch, "workingctx.status" always replaces "self._status"
by the recent result, even though:
- status isn't calculated against the parent of the working directory, or
- specified "match" isn't "always" one
(status is only visible partially)
If "workingctx" object is shared between some procedures indirectly
referring "ctx._status", this incorrect caching may cause unexpected
result: for example, "ctx._status" is used via "manifest()", "files()"
and so on.
To cache "self._status" correctly at "workingctx.status", this patch
overwrites "self._status" in "workingctx._buildstatus" only when:
- status is calculated against the parent of the working directory, and
- specified "match" is "always" one
This patch can be applied (and effective) only on default branch,
because procedure around "basectx.status" is much different between
stable and default: for example, overwriting "self._status" itself is
executed not in "workingctx._buildstatus" but in
"workingctx._poststatus", on stable branch.
2014-12-31 11:55:43 +03:00
|
|
|
<status modified=['bar-m'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
<status modified=[], added=['bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
=== with "always match" and "listclean=True":
|
|
|
|
<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=['foo']>
|
|
|
|
wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
<status modified=[], added=['bar-a', 'bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']>
|
|
|
|
wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
== checking workingcommitctx.status:
|
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
=== with "always match":
|
2014-12-31 11:55:43 +03:00
|
|
|
<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
<status modified=[], added=['bar-a', 'bar-m', 'bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
=== with "always match" and "listclean=True":
|
2014-12-31 11:55:43 +03:00
|
|
|
<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=['bar-r', 'foo']>
|
2014-12-31 11:55:43 +03:00
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2014-12-31 11:55:43 +03:00
|
|
|
<status modified=[], added=['bar-a', 'bar-m', 'bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']>
|
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
=== with "pattern match":
|
|
|
|
<status modified=['bar-m'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
<status modified=[], added=['bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
=== with "pattern match" and "listclean=True":
|
|
|
|
<status modified=[], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=['bar-r', 'foo']>
|
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
|
|
|
<status modified=[], added=['bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']>
|
2014-12-31 11:55:43 +03:00
|
|
|
wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
|
2017-05-26 03:06:32 +03:00
|
|
|
== commit with manifestlog invalidated
|
|
|
|
commit 1: 2efe531a913fa648867ab8824360371679d05a65
|
|
|
|
commit 2: 2caca91f6362020334384ebe27bae67315298abf
|
|
|
|
commit 3: abd6b0f49f338be22b094ef2b7425e8048f8337b
|
2018-07-28 05:54:48 +03:00
|
|
|
=== filelog rawdata reuse ===
|
|
|
|
copying rev 0 from test1 to test3
|
|
|
|
copying rev 1 from test1 to test3
|
|
|
|
copying rev 2 from test1 to test3
|
|
|
|
copying rev 3 from test1 to test3
|