Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Unified Diff: gcl.py

Issue 464068: Fix the way the temporary directory is created. (Closed)
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/gcl_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « no previous file | tests/gcl_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698