Mercurial > hg
diff hgext/convert/subversion.py @ 17031:f17b561cc473
convert: ignore svn:executable for subversion targets without exec bit support
Calling propset/propdel with subversion 1.6 on FAT gave
abort: svn exited with status 256
and made test-convert-hg-svn.t and test-convert-svn-sink.t fail. 1.7 worked.
This is a rework of fdee5d614fcc but ignores the executable bit when it isn't
supported instead of using an approximation.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 24 Jun 2012 17:06:47 +0200 |
parents | eaf6a6d7f015 |
children | 1bd18c415eec |
line wrap: on
line diff
--- a/hgext/convert/subversion.py Fri Jun 22 02:39:52 2012 +0200 +++ b/hgext/convert/subversion.py Sun Jun 24 17:06:47 2012 +0200 @@ -1091,20 +1091,13 @@ self.wopener.write(filename, data) if self.is_exec: - was_exec = self.is_exec(self.wjoin(filename)) - else: - # On filesystems not supporting execute-bit, there is no way - # to know if it is set but asking subversion. Setting it - # systematically is just as expensive and much simpler. - was_exec = 'x' not in flags - - util.setflags(self.wjoin(filename), False, 'x' in flags) - if was_exec: - if 'x' not in flags: - self.delexec.append(filename) - else: - if 'x' in flags: - self.setexec.append(filename) + if self.is_exec(self.wjoin(filename)): + if 'x' not in flags: + self.delexec.append(filename) + else: + if 'x' in flags: + self.setexec.append(filename) + util.setflags(self.wjoin(filename), False, 'x' in flags) def _copyfile(self, source, dest): # SVN's copy command pukes if the destination file exists, but