##// END OF EJS Templates
largefiles: optimize update speed by only updating changed largefiles...
Na'Tosha Bard -
r16120:47ee41fc default
parent child Browse files
Show More
@@ -457,3 +457,11 b' def getcurrentheads(repo):'
457 newheads = repo.branchheads(branch)
457 newheads = repo.branchheads(branch)
458 heads = heads + newheads
458 heads = heads + newheads
459 return heads
459 return heads
460
461 def getstandinsstate(repo):
462 standins = []
463 matcher = getstandinmatcher(repo)
464 for standin in dirstate_walk(repo.dirstate, matcher):
465 lfile = splitstandin(standin)
466 standins.append((lfile, readstandin(repo, lfile)))
467 return standins
@@ -602,8 +602,20 b' def override_revert(orig, ui, repo, *pat'
602 wlock.release()
602 wlock.release()
603
603
604 def hg_update(orig, repo, node):
604 def hg_update(orig, repo, node):
605 # In order to not waste a lot of extra time during the update largefiles
606 # step, we keep track of the state of the standins before and after we
607 # call the original update function, and only update the standins that
608 # have changed in the hg.update() call
609 oldstandins = lfutil.getstandinsstate(repo)
605 result = orig(repo, node)
610 result = orig(repo, node)
606 lfcommands.updatelfiles(repo.ui, repo)
611 newstandins = lfutil.getstandinsstate(repo)
612 tobeupdated = set(oldstandins).symmetric_difference(set(newstandins))
613 filelist = []
614 for f in tobeupdated:
615 if f[0] not in filelist:
616 filelist.append(f[0])
617
618 lfcommands.updatelfiles(repo.ui, repo, filelist=filelist, printmessage=True)
607 return result
619 return result
608
620
609 def hg_clean(orig, repo, node, show_stats=True):
621 def hg_clean(orig, repo, node, show_stats=True):
General Comments 0
You need to be logged in to leave comments. Login now