Mercurial > hg
changeset 3066:035fd2029575
git --diff: fix traceback when getting mode change
- use the manifest instead of the mode in the working dir
if the diff is against two revisions
- add a testcase
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Thu, 07 Sep 2006 14:12:39 +0200 |
parents | 32fd512ca7c0 |
children | fbd3f9fd645d |
files | mercurial/patch.py tests/test-git-export tests/test-git-export.out |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/patch.py Thu Sep 07 14:01:00 2006 +0200 +++ b/mercurial/patch.py Thu Sep 07 14:12:39 2006 +0200 @@ -502,7 +502,10 @@ header.append('deleted file mode %s\n' % mode) else: omode = gitmode(mmap.execf(f)) - nmode = gitmode(util.is_exec(repo.wjoin(f), mmap.execf(f))) + if node2: + nmode = gitmode(mmap2.execf(f)) + else: + nmode = gitmode(util.is_exec(repo.wjoin(f), mmap.execf(f))) addmodehdr(header, omode, nmode) r = None if dodiff:
--- a/tests/test-git-export Thu Sep 07 14:01:00 2006 +0200 +++ b/tests/test-git-export Thu Sep 07 14:12:39 2006 +0200 @@ -50,3 +50,7 @@ echo '% rename+mod+chmod' hg diff --git -r 6:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" + +echo '% nonexistent in tip+chmod' +hg diff --git -r 5:6 | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ + -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"