Index: gcl.py |
diff --git a/gcl.py b/gcl.py |
index b347a4d0b42894bd3b128bd51238507bdc1459b3..1c16c2f49ad69b67e2e8079b7100a0c67e60e005 100755 |
--- a/gcl.py |
+++ b/gcl.py |
@@ -715,6 +715,13 @@ def GenerateDiff(files, root=None): |
else: |
os.chdir(root) |
+# If the user specified a custom diff command in their svn config file, |
bradn
2009/12/08 02:45:33
tabbing
|
+ # then it'll be used when we do svn diff, which we don't want to happen |
+ # since we want the unified diff. Using --diff-cmd=diff doesn't always |
+ # work, since they can have another diff executable in their path that |
+ # gives different line endings. So we use a bogus temp directory as the |
+ # config directory, which gets around these problems. |
+ bogus_dir = tempfile.mkdtemp() |
diff = [] |
for filename in files: |
# TODO(maruel): Use SVN.DiffItem(). |
@@ -722,19 +729,6 @@ def GenerateDiff(files, root=None): |
# when the file is deleted. |
if SVN.CaptureInfo(filename).get('Node Kind') == 'directory': |
continue |
- # If the user specified a custom diff command in their svn config file, |
- # then it'll be used when we do svn diff, which we don't want to happen |
- # since we want the unified diff. Using --diff-cmd=diff doesn't always |
- # work, since they can have another diff executable in their path that |
- # gives different line endings. So we use a bogus temp directory as the |
- # config directory, which gets around these problems. |
- if sys.platform.startswith("win"): |
- parent_dir = tempfile.gettempdir() |
- else: |
- parent_dir = sys.path[0] # tempdir is not secure. |
- bogus_dir = os.path.join(parent_dir, "temp_svn_config") |
- if not os.path.exists(bogus_dir): |
- os.mkdir(bogus_dir) |
output = RunShell(["svn", "diff", "--config-dir", bogus_dir, filename]) |
if output: |
diff.append(output) |
@@ -745,6 +739,7 @@ def GenerateDiff(files, root=None): |
else: |
# The file is not modified anymore. It should be removed from the set. |
pass |
+ shutil.rmtree(bogus_dir) |
os.chdir(previous_cwd) |
return "".join(diff) |