Mercurial > hg
view contrib/wix/guids.wxi @ 21932:21a2f31f054d stable
largefiles: use "normallookup", if "mtime" of standin is unset
Before this patch, largefiles gotten from "other" revision (without
conflict) at "hg merge" become "clean" unexpectedly in steps below:
1. "merge.update()" is invoked
1-1 standinfile SF is updated in the working directory
1-2 "dirstate" entry for SF is "normallookup"-ed
2. "lfcommands.updatelfiles()" is invoked (by "overrides.hgmerge()")
2-1 largefile LF (for SF) is updated in the working directory
2-2 "dirstate" returns "n" for SF (by 1-2)
2-3 "lfdirstate" entry for LF is "normal"-ed
2-4 "lfdirstate" is written into ".hg/largefiles/dirstate", and
timestamp of LF is stored into "lfdirstate" file
(ASSUMPTION: timestamp of LF differs from one of "lfdirstate" file)
Then, "hs status" treats LF as "clean", even though LF is updated by
"other" revision (by 2-1), because "lfilesrepo.status()" always treats
"normal"-ed files (by 2-3 and 2-4) as "clean".
When timestamp is not set (= negative value) for standinfile in
"dirstate", largefile should be "normallookup"-ed regardless of
rebasing or not, because "n" state in "dirstate" doesn't ensure
"clean"-ness of a standinfile at that time.
This patch uses "normallookup" instead of "normal", if "mtime" of
standin is unset
This is a temporary way to fix with less changes. For fundamental
resolution of this kind of problems in the future, "lfdirstate" should
be updated with "dirstate" simultaneously while "merge.update"
execution: maybe by hooking "recordupdates"
It is also why this patch (temporarily) uses internal field "_map" of
"dirstate" directly.
This patch uses "[debug] dirstate.delaywrite" feature in the test, to
ensure that timestamp of the largefile gotten from "other" revision is
stored into ".hg/largefiles/dirstate". (for ASSUMPTION at 2-4)
This patch newly adds "test-largefiles-update.t", to avoid increasing
cost to run other tests for largefiles by subsequent patches
(especially, "[debug] dirstate.delaywrite" causes so).
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 22 Jul 2014 23:59:34 +0900 |
parents | 4dd91c466a81 |
children | 5716d10e89e7 |
line wrap: on
line source
<Include> <!-- These are component GUIDs used for Mercurial installers. YOU MUST CHANGE ALL GUIDs below when copying this file and replace 'Mercurial' in this notice with the name of your project. Component GUIDs have global namespace! --> <!-- contrib.wxs --> <?define contrib.guid = {F17D27B7-4A6B-4cd2-AE72-FED3CFAA585E} ?> <?define contrib.vim.guid = {BB04903A-652D-4C4F-9590-2BD07A2304F2} ?> <!-- dist.wxs --> <?define dist.guid = {C3B634A4-1B05-4A40-94A9-38EE853CF693} ?> <!-- doc.wxs --> <?define doc.hg.1.html.guid = {AAAA3FDA-EDC5-4220-B59D-D342722358A2} ?> <?define doc.hgignore.5.html.guid = {AA9118C4-F3A0-4429-A5F4-5A1906B2D67F} ?> <?define doc.hgrc.5.html = {E0CEA1EB-FA01-408c-844B-EE5965165BAE} ?> <?define doc.style.css = {172F8262-98E0-4711-BD39-4DAE0D77EF05} ?> <!-- help.wxs --> <?define helpFolder.guid = {9FA957DB-6DFE-44f2-AD03-293B2791CF17} ?> <!-- i18n.wxs --> <?define i18nFolder.guid = {1BF8026D-CF7C-4174-AEE6-D6B7BF119248} ?> <!-- templates.wxs --> <?define templates.root.guid = {437FD55C-7756-4EA0-87E5-FDBE75DC8595} ?> <?define templates.atom.guid = {D30E14A5-8AF0-4268-8B00-00BEE9E09E39} ?> <?define templates.coal.guid = {B63CCAAB-4EAF-43b4-901E-4BD13F5B78FC} ?> <?define templates.gitweb.guid = {827334AF-1EFD-421B-962C-5660A068F612} ?> <?define templates.monoblue.guid = {8060A1E4-BD4C-453E-92CB-9536DC44A9E3} ?> <?define templates.paper.guid = {61AB1DE9-645F-46ED-8AF8-0CF02267FFBB} ?> <?define templates.raw.guid = {834DF8D7-9784-43A6-851D-A96CE1B3575B} ?> <?define templates.rss.guid = {9338FA09-E128-4B1C-B723-1142DBD09E14} ?> <?define templates.spartan.guid = {80222625-FA8F-44b1-86CE-1781EF375D09} ?> <?define templates.static.guid = {6B3D7C24-98DA-4B67-9F18-35F77357B0B4} ?> <!-- mercurial.wxs --> <?define ProductUpgradeCode = {A1CC6134-E945-4399-BE36-EB0017FDF7CF} ?> <?define ComponentMainExecutableGUID = {D102B8FA-059B-4ACC-9FA3-8C78C3B58EEF} ?> <?define ReadMe.guid = {56A8E372-991D-4DCA-B91D-93D775974CF5} ?> <?define COPYING.guid = {B7801DBA-1C49-4BF4-91AD-33C65F5C7895} ?> <?define mercurial.rc.guid = {1D5FAEEE-7E6E-43B1-9F7F-802714316B15} ?> <?define mergetools.rc.guid = {E8A1DC29-FF40-4B5F-BD12-80B9F7BF0CCD} ?> <?define paths.rc.guid = {F9ADF21D-5F0B-4934-8CD9-14BE63664721} ?> <?define cacert.pem.guid = {EC1B2630-FE21-46E6-915B-A6545AF703D4} ?> <?define ProgramMenuDir.guid = {D5A63320-1238-489B-B68B-CF053E9577CA} ?> </Include>