1794 # largefiles is not a good candidate for in-memory merge (large |
1794 # largefiles is not a good candidate for in-memory merge (large |
1795 # files, custom dirstate, matcher usage). |
1795 # files, custom dirstate, matcher usage). |
1796 raise error.ProgrammingError( |
1796 raise error.ProgrammingError( |
1797 b'largefiles is not compatible with in-memory merge' |
1797 b'largefiles is not compatible with in-memory merge' |
1798 ) |
1798 ) |
1799 result = orig(repo, node, branchmerge, force, *args, **kwargs) |
1799 with lfdirstate.parentchange(): |
1800 |
1800 result = orig(repo, node, branchmerge, force, *args, **kwargs) |
1801 newstandins = lfutil.getstandinsstate(repo) |
1801 |
1802 filelist = lfutil.getlfilestoupdate(oldstandins, newstandins) |
1802 newstandins = lfutil.getstandinsstate(repo) |
1803 |
1803 filelist = lfutil.getlfilestoupdate(oldstandins, newstandins) |
1804 # to avoid leaving all largefiles as dirty and thus rehash them, mark |
1804 |
1805 # all the ones that didn't change as clean |
1805 # to avoid leaving all largefiles as dirty and thus rehash them, mark |
1806 for lfile in oldclean.difference(filelist): |
1806 # all the ones that didn't change as clean |
1807 lfdirstate.normal(lfile) |
1807 for lfile in oldclean.difference(filelist): |
1808 lfdirstate.write() |
1808 lfdirstate.normal(lfile) |
1809 |
1809 lfdirstate.write() |
1810 if branchmerge or force or partial: |
1810 |
1811 filelist.extend(s.deleted + s.removed) |
1811 if branchmerge or force or partial: |
1812 |
1812 filelist.extend(s.deleted + s.removed) |
1813 lfcommands.updatelfiles( |
1813 |
1814 repo.ui, repo, filelist=filelist, normallookup=partial |
1814 lfcommands.updatelfiles( |
1815 ) |
1815 repo.ui, repo, filelist=filelist, normallookup=partial |
|
1816 ) |
1816 |
1817 |
1817 return result |
1818 return result |
1818 |
1819 |
1819 |
1820 |
1820 @eh.wrapfunction(scmutil, b'marktouched') |
1821 @eh.wrapfunction(scmutil, b'marktouched') |