--- a/ForgeSCM/forgescm/lib/git.py
+++ b/ForgeSCM/forgescm/lib/git.py
@@ -19,10 +19,23 @@
base='git init'
class clone(Command):
- base='git clone'
+ base='git clone -n'
+
+ # call this after a clone, since git clone always creates
+ # a subdir, we need to move the git back to the already
+ # existing mount-point directory
+ # -- possibly could eliminate this if we use --bare
+ def finish(self):
+ path = self.cwd()
+ tmp_git_path = os.path.join(path, self.args[-1])
+ shutil.move(os.path.join(tmp_git_path, '.git'), os.path.join(path, '.git'))
+ shutil.rmtree(os.path.join(path, tmp_git_path))
class scm_log(Command):
base='git log'
+
+def setup_scmweb(repo_name, repo_dir):
+ return setup_gitweb(repo_name, repo_dir)
def setup_gitweb(repo_name, repo_dir):
'Set up the GitWeb config file'
@@ -46,10 +59,13 @@
tpl_text = open(tpl_fn).read()
tt = genshi.template.NewTextTemplate(
tpl_text, filepath=os.path.dirname(tpl_fn), filename=tpl_fn)
+ config = None
+ if 'file' in pylons.config:
+ config = pylons.config.__file__
context = dict(
executable=sys.executable,
repository=plugin_id,
- config=pylons.config['__file__'])
+ config=config)
strm = tt.generate(**context)
fn = os.path.join(repo_dir, '.git/hooks/post-receive')
with open(fn, 'w') as fp: