##// END OF EJS Templates
largefile: synchronise the dirstate within a `parentchange` context...
marmoute -
r48447:f16958be default
parent child Browse files
Show More
@@ -574,22 +574,23 b' def synclfdirstate(repo, lfdirstate, lfi'
574 def markcommitted(orig, ctx, node):
574 def markcommitted(orig, ctx, node):
575 repo = ctx.repo()
575 repo = ctx.repo()
576
576
577 orig(node)
577 with ctx._repo.dirstate.parentchange():
578 orig(node)
578
579
579 # ATTENTION: "ctx.files()" may differ from "repo[node].files()"
580 # ATTENTION: "ctx.files()" may differ from "repo[node].files()"
580 # because files coming from the 2nd parent are omitted in the latter.
581 # because files coming from the 2nd parent are omitted in the latter.
581 #
582 #
582 # The former should be used to get targets of "synclfdirstate",
583 # The former should be used to get targets of "synclfdirstate",
583 # because such files:
584 # because such files:
584 # - are marked as "a" by "patch.patch()" (e.g. via transplant), and
585 # - are marked as "a" by "patch.patch()" (e.g. via transplant), and
585 # - have to be marked as "n" after commit, but
586 # - have to be marked as "n" after commit, but
586 # - aren't listed in "repo[node].files()"
587 # - aren't listed in "repo[node].files()"
587
588
588 lfdirstate = openlfdirstate(repo.ui, repo)
589 lfdirstate = openlfdirstate(repo.ui, repo)
589 for f in ctx.files():
590 for f in ctx.files():
590 lfile = splitstandin(f)
591 lfile = splitstandin(f)
591 if lfile is not None:
592 if lfile is not None:
592 synclfdirstate(repo, lfdirstate, lfile, False)
593 synclfdirstate(repo, lfdirstate, lfile, False)
593 lfdirstate.write()
594 lfdirstate.write()
594
595
595 # As part of committing, copy all of the largefiles into the cache.
596 # As part of committing, copy all of the largefiles into the cache.
General Comments 0
You need to be logged in to leave comments. Login now