hgext/largefiles/lfutil.py
changeset 50050 22cd517bc6b0
parent 50027 0b4a6912292e
child 50116 9b49809eb612
equal deleted inserted replaced
50049:088ee6adfb09 50050:22cd517bc6b0
   599 
   599 
   600 
   600 
   601 def markcommitted(orig, ctx, node):
   601 def markcommitted(orig, ctx, node):
   602     repo = ctx.repo()
   602     repo = ctx.repo()
   603 
   603 
   604     lfdirstate = openlfdirstate(repo.ui, repo)
   604     with repo.dirstate.changing_parents(repo):
   605     with lfdirstate.changing_parents(repo):
       
   606         orig(node)
   605         orig(node)
   607 
   606 
   608         # ATTENTION: "ctx.files()" may differ from "repo[node].files()"
   607         # ATTENTION: "ctx.files()" may differ from "repo[node].files()"
   609         # because files coming from the 2nd parent are omitted in the latter.
   608         # because files coming from the 2nd parent are omitted in the latter.
   610         #
   609         #
   612         # because such files:
   611         # because such files:
   613         # - are marked as "a" by "patch.patch()" (e.g. via transplant), and
   612         # - are marked as "a" by "patch.patch()" (e.g. via transplant), and
   614         # - have to be marked as "n" after commit, but
   613         # - have to be marked as "n" after commit, but
   615         # - aren't listed in "repo[node].files()"
   614         # - aren't listed in "repo[node].files()"
   616 
   615 
       
   616         lfdirstate = openlfdirstate(repo.ui, repo)
   617         for f in ctx.files():
   617         for f in ctx.files():
   618             lfile = splitstandin(f)
   618             lfile = splitstandin(f)
   619             if lfile is not None:
   619             if lfile is not None:
   620                 synclfdirstate(repo, lfdirstate, lfile, False)
   620                 synclfdirstate(repo, lfdirstate, lfile, False)
   621     lfdirstate.write(repo.currenttransaction())
       
   622 
   621 
   623     # As part of committing, copy all of the largefiles into the cache.
   622     # As part of committing, copy all of the largefiles into the cache.
   624     #
   623     #
   625     # Using "node" instead of "ctx" implies additional "repo[node]"
   624     # Using "node" instead of "ctx" implies additional "repo[node]"
   626     # lookup while copyalltostore(), but can omit redundant check for
   625     # lookup while copyalltostore(), but can omit redundant check for