hgext/largefiles/lfcommands.py
changeset 22197 f72d73937853
parent 22095 cb62d77c7a01
child 22296 650b5b6e75ed
equal deleted inserted replaced
22196:23fe278bde43 22197:f72d73937853
   441     try:
   441     try:
   442         lfdirstate = lfutil.openlfdirstate(ui, repo)
   442         lfdirstate = lfutil.openlfdirstate(ui, repo)
   443         lfiles = set(lfutil.listlfiles(repo)) | set(lfdirstate)
   443         lfiles = set(lfutil.listlfiles(repo)) | set(lfdirstate)
   444 
   444 
   445         if filelist is not None:
   445         if filelist is not None:
       
   446             filelist = set(filelist)
   446             lfiles = [f for f in lfiles if f in filelist]
   447             lfiles = [f for f in lfiles if f in filelist]
   447 
   448 
   448         update = {}
   449         update = {}
   449         updated, removed = 0, 0
   450         updated, removed = 0, 0
   450         for lfile in lfiles:
   451         for lfile in lfiles:
   510 
   511 
   511             updated += update1
   512             updated += update1
   512 
   513 
   513             lfutil.synclfdirstate(repo, lfdirstate, lfile, normallookup)
   514             lfutil.synclfdirstate(repo, lfdirstate, lfile, normallookup)
   514 
   515 
       
   516         if filelist is not None:
       
   517             # If "local largefile" is chosen at file merging, it is
       
   518             # not listed in "filelist" (= dirstate syncing is
       
   519             # omitted), because the standin file is not changed before and
       
   520             # after merging.
       
   521             # But the status of such files may have to be changed by
       
   522             # merging. For example, locally modified ("M") largefile
       
   523             # has to become re-added("A"), if it is "normal" file in
       
   524             # the target revision of linear-merging.
       
   525             for lfile in lfdirstate:
       
   526                 if lfile not in filelist:
       
   527                     lfutil.synclfdirstate(repo, lfdirstate, lfile, True)
       
   528 
   515         lfdirstate.write()
   529         lfdirstate.write()
   516         if printmessage and lfiles:
   530         if printmessage and lfiles:
   517             ui.status(_('%d largefiles updated, %d removed\n') % (updated,
   531             ui.status(_('%d largefiles updated, %d removed\n') % (updated,
   518                 removed))
   532                 removed))
   519     finally:
   533     finally: