sapling/hgext
FUJIWARA Katsunori f5a07da3f0 largefiles: invoke "normallookup" on "lfdirstate" for merged files
Before this patch, largefiles gotten from "other" revision (with
conflict) at "hg merge" become "clean" unexpectedly in steps below:

    1. "repo.status()" is invoked (for status check before merging)
      1-1 "dirstate" entry for standinfile SF is "normal"-ed
      1-2 "lfdirstate" entry of largefile LF (for SF) is "normal"-ed

    2. "merge.update()" is invoked
      2-1 SF is updated in the working directory
          (ASSUMPTION: user choice "other" at conflict)
      2-2 "dirstate" entry for SF is "merge"-ed

    3. "lfcommands.updatelfiles()" is invoked (by "overrides.hgmerge()")
      3-1 largefile LF (for SF) is updated in the working directory
      3-2 "dirstate" returns "m" for SF (by 2-2)
      3-3 "lfdirstate" entry for LF is left as it is
      3-4 "lfdirstate" is written into ".hg/largefiles/dirstate", and
          timestamp of LF is stored into "lfdirstate" file (by 1-2)
          (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 3-1), because "lfilesrepo.status()" always treats
"normal"-ed files (by 1-2 and 3-4) as "clean".

When state of standinfile in "dirstate" is "m", largefile should be
"normallookup"-ed.

This patch invokes "normallookup" on "lfdirstate" for merged files.

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 3-4)
2014-07-23 00:10:24 +09:00
..
convert merge with stable 2014-07-14 18:53:03 -05:00
highlight check-code: check for spaces around = for named parameters 2013-10-03 14:50:47 +02:00
largefiles largefiles: invoke "normallookup" on "lfdirstate" for merged files 2014-07-23 00:10:24 +09:00
zeroconf zeroconf: use port from server instead of picking port from config (issue3746) 2012-12-30 19:19:52 +01:00
__init__.py Re-add hgext/__init__.py 2005-09-29 12:49:01 -07:00
acl.py check-code: check for spaces around = for named parameters 2013-10-03 14:50:47 +02:00
blackbox.py blackbox: fix blackbox causing exceptions in tests 2013-05-22 17:38:24 -07:00
bugzilla.py bugzilla: correct config documentation error 2014-07-03 10:56:03 +01:00
children.py children: define inferrepo in command decorator 2014-05-04 22:25:28 -07:00
churn.py churn: define inferrepo in command decorator 2014-05-04 22:24:38 -07:00
color.py color: add parenthesis to help readability 2014-05-30 11:28:48 -07:00
eol.py i18n: fix "% inside _()" problems 2014-04-01 02:46:03 +09:00
extdiff.py extdiff: define inferrepo in command decorator 2014-05-04 22:29:27 -07:00
factotum.py factotum: initialize global variables to suppress pyflakes warning 2014-05-02 18:24:10 +09:00
fetch.py fetch: use "getcommiteditor()" instead of explicit editor choice 2014-05-11 00:49:35 +09:00
gpg.py gpg: accept '--edit' like other commands creating new changeset 2014-06-01 00:08:32 +09:00
graphlog.py graphlog: define inferrepo in command decorator 2014-05-04 22:28:46 -07:00
hgcia.py changeset_templater: remove use_template method 2014-03-08 16:14:08 -06:00
hgk.py hgk: define inferrepo in command decorator 2014-05-04 22:33:22 -07:00
histedit.py histedit: use 'util.ellipsis' to trim description of each changesets 2014-07-06 02:56:41 +09:00
keyword.py keyword: suppress keyword expansion while 'hg fetch' for internal merge 2014-06-05 16:47:14 +09:00
mq.py mq: define inferrepo in command decorator 2014-05-04 22:30:47 -07:00
notify.py changeset_templater: remove use_template method 2014-03-08 16:14:08 -06:00
pager.py pager: add attend-<command> option 2014-05-09 13:32:56 -05:00
patchbomb.py patchbomb: reorder header insertions to clarify code 2014-06-07 11:32:37 -04:00
progress.py progress: use 'encoding.colwidth' to get column width of items correctly 2014-07-06 02:56:41 +09:00
purge.py purge: add options for deleting only files or only directories 2013-11-07 17:24:14 -08:00
rebase.py merge with stable 2014-07-02 00:01:13 -05:00
record.py record: update comment to match code 2014-06-26 11:10:28 -04:00
relink.py relink: declare command using decorator 2014-05-04 21:52:25 -07:00
schemes.py scheme: don't crash on invalid URLs 2013-04-11 14:41:22 +02:00
share.py share: define norepo in command decorator 2014-05-04 22:03:11 -07:00
shelve.py shelve: accept '--edit' like other commands creating new changeset 2014-06-20 16:15:38 +09:00
strip.py strip: drop -b/--backup option (BC) 2014-07-11 18:04:51 -05:00
transplant.py transplant: use "getcommiteditor()" instead of explicit editor choice 2014-05-11 00:49:35 +09:00
win32mbcs.py win32mbcs: wrap util.split() 2013-07-04 23:05:59 +09:00
win32text.py extensions: mark win32text deprecated 2014-03-01 19:51:22 -06:00