[#5508] make svn initial commit working dir configurable
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 4b9c724..ef03c86 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -9,7 +9,7 @@
from hashlib import sha1
from cStringIO import StringIO
from datetime import datetime
-from glob import glob
+import tempfile
import tg
import pysvn
@@ -145,15 +145,22 @@
self._repo.status = 'ready'
# make first commit with dir structure
if default_dirs:
- self._repo._impl._svn.checkout('file://'+fullname, fullname+'/tmp')
- os.mkdir(fullname+'/tmp/trunk')
- os.mkdir(fullname+'/tmp/tags')
- os.mkdir(fullname+'/tmp/branches')
- self._repo._impl._svn.add(fullname+'/tmp/trunk')
- self._repo._impl._svn.add(fullname+'/tmp/tags')
- self._repo._impl._svn.add(fullname+'/tmp/branches')
- self._repo._impl._svn.checkin([fullname+'/tmp/trunk',fullname+'/tmp/tags',fullname+'/tmp/branches'],'Initial commit')
- shutil.rmtree(fullname+'/tmp')
+ tmp_working_dir = tempfile.mkdtemp(prefix='allura-svn-r1-',
+ dir=tg.config.get('scm.svn.tmpdir', '/tmp'))
+ log.info('tmp dir = %s', tmp_working_dir)
+ self._repo._impl._svn.checkout('file://'+fullname, tmp_working_dir)
+ os.mkdir(tmp_working_dir+'/trunk')
+ os.mkdir(tmp_working_dir+'/tags')
+ os.mkdir(tmp_working_dir+'/branches')
+ self._repo._impl._svn.add(tmp_working_dir+'/trunk')
+ self._repo._impl._svn.add(tmp_working_dir+'/tags')
+ self._repo._impl._svn.add(tmp_working_dir+'/branches')
+ self._repo._impl._svn.checkin([tmp_working_dir+'/trunk',
+ tmp_working_dir+'/tags',
+ tmp_working_dir+'/branches'],
+ 'Initial commit')
+ shutil.rmtree(tmp_working_dir)
+ log.info('deleted %s', tmp_working_dir)
def clone_from(self, source_url):
'''Initialize a repo as a clone of another using svnsync'''