diff --git a/docs/usage/git_support.rst b/docs/usage/git_support.rst --- a/docs/usage/git_support.rst +++ b/docs/usage/git_support.rst @@ -5,11 +5,13 @@ GIT support =========== -Git support in RhodeCode 1.3 was enabled by default. +Git support in RhodeCode 1.3 was enabled by default. You need to have a git +client installed on the machine to make git fully work. + Although There are some limitations on git usage. -- No hooks are runned for git push/pull actions. -- logs in action journals don't have git operations +- hooks that are executed on pull/push are not *real* hooks, they are + just emulating the behavior, and are executed **BEFORE** action takes place. - large pushes needs http server with chunked encoding support. if you plan to use git you need to run RhodeCode with some @@ -17,14 +19,19 @@ http server that supports chunked encodi i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app replacement. -To use waitress simply change change the following in the .ini file:: +To use, simply change change the following in the .ini file:: use = egg:Paste#http -To:: +to:: use = egg:waitress#main +or:: + + use = egg:gunicorn#main + + And comment out bellow options:: threadpool_workers = diff --git a/rhodecode/lib/vcs/backends/git/repository.py b/rhodecode/lib/vcs/backends/git/repository.py --- a/rhodecode/lib/vcs/backends/git/repository.py +++ b/rhodecode/lib/vcs/backends/git/repository.py @@ -94,15 +94,20 @@ class GitRepository(BaseRepository): if isinstance(cmd, basestring): cmd = [cmd] _str_cmd = True + + gitenv = os.environ + gitenv['GIT_CONFIG_NOGLOBAL'] = '1' - cmd = ['GIT_CONFIG_NOGLOBAL=1', 'git'] + _copts + cmd + cmd = ['git'] + _copts + cmd if _str_cmd: cmd = ' '.join(cmd) try: opts = dict( shell=isinstance(cmd, basestring), stdout=PIPE, - stderr=PIPE) + stderr=PIPE, + env=gitenv, + ) if os.path.isdir(self.path): opts['cwd'] = self.path p = Popen(cmd, **opts)