comparison hgext/phabricator.py @ 44608:7b9aaec17126

phabricator: eliminate a couple of duplicate filectx lookups Differential Revision: https://phab.mercurial-scm.org/D8305
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 18 Feb 2020 09:57:26 -0500
parents 2d63a8910db6
children 53d75fdeaaaa
comparison
equal deleted inserted replaced
44607:a7b7a67b79c1 44608:7b9aaec17126
817 """add removed files to the phabdiff. Shouldn't include moves""" 817 """add removed files to the phabdiff. Shouldn't include moves"""
818 for fname in removed: 818 for fname in removed:
819 pchange = phabchange( 819 pchange = phabchange(
820 currentPath=fname, oldPath=fname, type=DiffChangeType.DELETE 820 currentPath=fname, oldPath=fname, type=DiffChangeType.DELETE
821 ) 821 )
822 pchange.addoldmode(gitmode[ctx.p1()[fname].flags()])
823 oldfctx = ctx.p1()[fname] 822 oldfctx = ctx.p1()[fname]
823 pchange.addoldmode(gitmode[oldfctx.flags()])
824 if not (oldfctx.isbinary() or notutf8(oldfctx)): 824 if not (oldfctx.isbinary() or notutf8(oldfctx)):
825 maketext(pchange, ctx, fname) 825 maketext(pchange, ctx, fname)
826 826
827 pdiff.addchange(pchange) 827 pdiff.addchange(pchange)
828 828
829 829
830 def addmodified(pdiff, ctx, modified): 830 def addmodified(pdiff, ctx, modified):
831 """add modified files to the phabdiff""" 831 """add modified files to the phabdiff"""
832 for fname in modified: 832 for fname in modified:
833 fctx = ctx[fname] 833 fctx = ctx[fname]
834 oldfctx = fctx.p1() 834 oldfctx = ctx.p1()[fname]
835 pchange = phabchange(currentPath=fname, oldPath=fname) 835 pchange = phabchange(currentPath=fname, oldPath=fname)
836 filemode = gitmode[ctx[fname].flags()] 836 filemode = gitmode[fctx.flags()]
837 originalmode = gitmode[ctx.p1()[fname].flags()] 837 originalmode = gitmode[oldfctx.flags()]
838 if filemode != originalmode: 838 if filemode != originalmode:
839 pchange.addoldmode(originalmode) 839 pchange.addoldmode(originalmode)
840 pchange.addnewmode(filemode) 840 pchange.addnewmode(filemode)
841 841
842 if ( 842 if (
844 or notutf8(fctx) 844 or notutf8(fctx)
845 or oldfctx.isbinary() 845 or oldfctx.isbinary()
846 or notutf8(oldfctx) 846 or notutf8(oldfctx)
847 ): 847 ):
848 makebinary(pchange, fctx) 848 makebinary(pchange, fctx)
849 addoldbinary(pchange, fctx.p1(), fctx) 849 addoldbinary(pchange, oldfctx, fctx)
850 else: 850 else:
851 maketext(pchange, ctx, fname) 851 maketext(pchange, ctx, fname)
852 852
853 pdiff.addchange(pchange) 853 pdiff.addchange(pchange)
854 854
862 for fname in added: 862 for fname in added:
863 fctx = ctx[fname] 863 fctx = ctx[fname]
864 oldfctx = None 864 oldfctx = None
865 pchange = phabchange(currentPath=fname) 865 pchange = phabchange(currentPath=fname)
866 866
867 filemode = gitmode[ctx[fname].flags()] 867 filemode = gitmode[fctx.flags()]
868 renamed = fctx.renamed() 868 renamed = fctx.renamed()
869 869
870 if renamed: 870 if renamed:
871 originalfname = renamed[0] 871 originalfname = renamed[0]
872 oldfctx = ctx.p1()[originalfname] 872 oldfctx = ctx.p1()[originalfname]