Index: checkout.py |
diff --git a/checkout.py b/checkout.py |
index 49799d03df4ed29103fb56894c183b79802b97d9..d1a694b453e9debc6d53683829023b2b7da8d3db 100644 |
--- a/checkout.py |
+++ b/checkout.py |
@@ -204,13 +204,19 @@ class RawCheckout(CheckoutBase): |
cmd = ['patch', '-u', '--binary', '-p%s' % p.patchlevel] |
if verbose: |
cmd.append('--verbose') |
- stdout.append( |
- subprocess2.check_output( |
- cmd, |
- stdin=p.get(False), |
- stderr=subprocess2.STDOUT, |
- cwd=self.project_path, |
- timeout=GLOBAL_TIMEOUT)) |
+ env = os.environ.copy() |
+ env['TMPDIR'] = tempfile.mkdtemp(prefix='crpatch') |
+ try: |
+ stdout.append( |
+ subprocess2.check_output( |
+ cmd, |
+ stdin=p.get(False), |
+ stderr=subprocess2.STDOUT, |
+ cwd=self.project_path, |
+ timeout=GLOBAL_TIMEOUT, |
+ env=env)) |
+ finally: |
+ shutil.rmtree(env['TMPDIR']) |
elif p.is_new and not os.path.exists(filepath): |
# There is only a header. Just create the file. |
open(filepath, 'w').close() |
@@ -400,12 +406,19 @@ class SvnCheckout(CheckoutBase, SvnMixIn): |
'--force', |
'--no-backup-if-mismatch', |
] |
- stdout.append( |
- subprocess2.check_output( |
- cmd, |
- stdin=p.get(False), |
- cwd=self.project_path, |
- timeout=GLOBAL_TIMEOUT)) |
+ env = os.environ.copy() |
+ env['TMPDIR'] = tempfile.mkdtemp(prefix='crpatch') |
+ try: |
+ stdout.append( |
+ subprocess2.check_output( |
+ cmd, |
+ stdin=p.get(False), |
+ cwd=self.project_path, |
+ timeout=GLOBAL_TIMEOUT, |
+ env=env)) |
+ finally: |
+ shutil.rmtree(env['TMPDIR']) |
+ |
elif p.is_new and not os.path.exists(filepath): |
# There is only a header. Just create the file if it doesn't |
# exist. |