Enable support to remove the executable bit on the CQ.
R=petermayo@chromium.org
BUG=124817
Review URL: https://chromiumcodereview.appspot.com/10890039
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@153908 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/checkout.py b/checkout.py
index c61552f..c674347 100644
--- a/checkout.py
+++ b/checkout.py
@@ -357,9 +357,13 @@
# using above.
stdout += self._check_output_svn(
['add', p.filename, '--force'], credentials=False)
- for prop in p.svn_properties:
- stdout += self._check_output_svn(
- ['propset', prop[0], prop[1], p.filename], credentials=False)
+ for name, value in p.svn_properties:
+ if value is None:
+ stdout += self._check_output_svn(
+ ['propdel', '--quiet', name, p.filename], credentials=False)
+ else:
+ stdout += self._check_output_svn(
+ ['propset', name, value, p.filename], credentials=False)
for prop, values in self.svn_config.auto_props.iteritems():
if fnmatch.fnmatch(p.filename, prop):
for value in values.split(';'):
@@ -528,18 +532,18 @@
# p.diff_hunks. git apply manages all that already.
stdout += self._check_output_git(
['apply', '--index', '-p%s' % p.patchlevel], stdin=p.get(True))
- for prop in p.svn_properties:
+ for name, _ in p.svn_properties:
# Ignore some known auto-props flags through .subversion/config,
# bails out on the other ones.
# TODO(maruel): Read ~/.subversion/config and detect the rules that
# applies here to figure out if the property will be correctly
# handled.
- if not prop[0] in (
+ if not name in (
'svn:eol-style', 'svn:executable', 'svn:mime-type'):
raise patch.UnsupportedPatchFormat(
p.filename,
'Cannot apply svn property %s to file %s.' % (
- prop[0], p.filename))
+ name, p.filename))
for post in post_processors:
post(self, p)
except OSError, e: