summaryrefslogtreecommitdiff
path: root/utils/git-svn
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2017-05-12 00:10:19 +0000
committerReid Kleckner <rnk@google.com>2017-05-12 00:10:19 +0000
commit4dc3e3a6c279d4fc3882356753b3fdd952c8387f (patch)
treec4ee211edd2a1e94cd2bd93604121aa2f5fe3a29 /utils/git-svn
parent517aac8f470dd2da8c38dc4ce5f06f3817f011a4 (diff)
[git-llvm] Fix svn:eol-style issue for one-file patches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302853 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/git-svn')
-rwxr-xr-xutils/git-svn/git-llvm33
1 files changed, 19 insertions, 14 deletions
diff --git a/utils/git-svn/git-llvm b/utils/git-svn/git-llvm
index c2eaa5b6e64..55d3129c4a8 100755
--- a/utils/git-svn/git-llvm
+++ b/utils/git-svn/git-llvm
@@ -205,21 +205,26 @@ def fix_eol_style_native(rev, sr, svn_sr_path):
# Use ignore_errors because 'svn propget' prints errors if the file doesn't
# have the named property. There doesn't seem to be a way to suppress that.
eol_props = svn(svn_sr_path, 'propget', 'svn:eol-style', *files,
- ignore_errors=True).split('\n')
+ ignore_errors=True)
crlf_files = []
- for eol_prop in eol_props:
- # Remove spare CR.
- eol_prop = eol_prop.strip('\r')
- if not eol_prop:
- continue
- prop_parts = eol_prop.rsplit(' - ', 1)
- if len(prop_parts) != 2:
- eprint("unable to parse svn propget line:")
- eprint(eol_prop)
- continue
- (f, eol_style) = prop_parts
- if eol_style == 'native':
- crlf_files.append(f)
+ if len(files) == 1:
+ # No need to split propget output on ' - ' when we have one file.
+ if eol_props.strip() == 'native':
+ crlf_files = files
+ else:
+ for eol_prop in eol_props.split('\n'):
+ # Remove spare CR.
+ eol_prop = eol_prop.strip('\r')
+ if not eol_prop:
+ continue
+ prop_parts = eol_prop.rsplit(' - ', 1)
+ if len(prop_parts) != 2:
+ eprint("unable to parse svn propget line:")
+ eprint(eol_prop)
+ continue
+ (f, eol_style) = prop_parts
+ if eol_style == 'native':
+ crlf_files.append(f)
# Reformat all files with native SVN line endings to Unix format. SVN knows
# files with native line endings are text files. It will commit just the
# diff, and not a mass line ending change.