comparison mercurial/subrepo.py @ 41630:3d094bfaf885

subrepo: adjust subrepo prefix before calling subrepo.diff() (API) Differential Revision: https://phab.mercurial-scm.org/D5886
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 07 Feb 2019 09:52:36 -0800
parents 5ee3c49fc9cd
children 3d9d5e612e67
comparison
equal deleted inserted replaced
41629:5ee3c49fc9cd 41630:3d094bfaf885
9 9
10 import copy 10 import copy
11 import errno 11 import errno
12 import hashlib 12 import hashlib
13 import os 13 import os
14 import posixpath
15 import re 14 import re
16 import stat 15 import stat
17 import subprocess 16 import subprocess
18 import sys 17 import sys
19 import tarfile 18 import tarfile
554 node1 = node.bin(self._state[1]) 553 node1 = node.bin(self._state[1])
555 # We currently expect node2 to come from substate and be 554 # We currently expect node2 to come from substate and be
556 # in hex format 555 # in hex format
557 if node2 is not None: 556 if node2 is not None:
558 node2 = node.bin(node2) 557 node2 = node.bin(node2)
559 logcmdutil.diffordiffstat(ui, self._repo, diffopts, 558 logcmdutil.diffordiffstat(ui, self._repo, diffopts, node1, node2,
560 node1, node2, match, 559 match, prefix=prefix, listsubrepos=True,
561 prefix=posixpath.join(prefix, self._path), 560 **opts)
562 listsubrepos=True, **opts)
563 except error.RepoLookupError as inst: 561 except error.RepoLookupError as inst:
564 self.ui.warn(_('warning: error "%s" in subrepository "%s"\n') 562 self.ui.warn(_('warning: error "%s" in subrepository "%s"\n')
565 % (inst, subrelpath(self))) 563 % (inst, subrelpath(self)))
566 564
567 @annotatesubrepoerror 565 @annotatesubrepoerror
1777 cmd.append('--stat') 1775 cmd.append('--stat')
1778 else: 1776 else:
1779 # for Git, this also implies '-p' 1777 # for Git, this also implies '-p'
1780 cmd.append('-U%d' % diffopts.context) 1778 cmd.append('-U%d' % diffopts.context)
1781 1779
1782 gitprefix = self.wvfs.reljoin(prefix, self._path)
1783
1784 if diffopts.noprefix: 1780 if diffopts.noprefix:
1785 cmd.extend(['--src-prefix=%s/' % gitprefix, 1781 cmd.extend(['--src-prefix=%s/' % prefix,
1786 '--dst-prefix=%s/' % gitprefix]) 1782 '--dst-prefix=%s/' % prefix])
1787 else: 1783 else:
1788 cmd.extend(['--src-prefix=a/%s/' % gitprefix, 1784 cmd.extend(['--src-prefix=a/%s/' % prefix,
1789 '--dst-prefix=b/%s/' % gitprefix]) 1785 '--dst-prefix=b/%s/' % prefix])
1790 1786
1791 if diffopts.ignorews: 1787 if diffopts.ignorews:
1792 cmd.append('--ignore-all-space') 1788 cmd.append('--ignore-all-space')
1793 if diffopts.ignorewsamount: 1789 if diffopts.ignorewsamount:
1794 cmd.append('--ignore-space-change') 1790 cmd.append('--ignore-space-change')