##// END OF EJS Templates
Don't cache dulwich Repos, in pararell multithreaded evniroment dulwich pack file openers...
Don't cache dulwich Repos, in pararell multithreaded evniroment dulwich pack file openers can break badly. We need to create Repo() objects always for each call, even when it's taken from cache. Fixed issue with dulwich filedescriptor leak ref #573

File last commit:

r2726:aa17c7a1 beta
r3043:b61824e6 beta
Show More
pre_receive_tmpl.py
31 lines | 848 B | text/x-python | PythonLexer
#!/usr/bin/env python
import os
import sys
try:
import rhodecode
RC_HOOK_VER = '_TMPL_'
os.environ['RC_HOOK_VER'] = RC_HOOK_VER
from rhodecode.lib.hooks import handle_git_pre_receive
except ImportError:
rhodecode = None
def main():
if rhodecode is None:
# exit with success if we cannot import rhodecode !!
# this allows simply push to this repo even without
# rhodecode
sys.exit(0)
repo_path = os.path.abspath('.')
push_data = sys.stdin.readlines()
# os.environ is modified here by a subprocess call that
# runs git and later git executes this hook.
# Environ get's some additional info from rhodecode system
# like IP or username from basic-auth
handle_git_pre_receive(repo_path, push_data, os.environ)
sys.exit(0)
if __name__ == '__main__':
main()