comparison rhodecode/model/scm.py @ 3878:7d29355db6f4 beta

fixes #834 hooks error on remote pulling
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 20 May 2013 02:34:03 +0200
parents 1aefa8d864e4
children a228a33d868e
comparison
equal deleted inserted replaced
3877:5070c840dc23 3878:7d29355db6f4
434 raise Exception("Cannot set repository as fork of itself") 434 raise Exception("Cannot set repository as fork of itself")
435 repo.fork = fork 435 repo.fork = fork
436 self.sa.add(repo) 436 self.sa.add(repo)
437 return repo 437 return repo
438 438
439 def _handle_rc_scm_extras(self, username, repo_name, repo_alias): 439 def _handle_rc_scm_extras(self, username, repo_name, repo_alias,
440 action=None):
440 from rhodecode import CONFIG 441 from rhodecode import CONFIG
441 from rhodecode.lib.base import _get_ip_addr 442 from rhodecode.lib.base import _get_ip_addr
442 try: 443 try:
443 from pylons import request 444 from pylons import request
444 environ = request.environ 445 environ = request.environ
448 from webob import Request 449 from webob import Request
449 environ = Request.blank('').environ 450 environ = Request.blank('').environ
450 extras = { 451 extras = {
451 'ip': _get_ip_addr(environ), 452 'ip': _get_ip_addr(environ),
452 'username': username, 453 'username': username,
453 'action': 'push_local', 454 'action': action or 'push_local',
454 'repository': repo_name, 455 'repository': repo_name,
455 'scm': repo_alias, 456 'scm': repo_alias,
456 'config': CONFIG['__file__'], 457 'config': CONFIG['__file__'],
457 'server_url': get_server_url(environ), 458 'server_url': get_server_url(environ),
458 'make_lock': None, 459 'make_lock': None,
502 repo_name = dbrepo.repo_name 503 repo_name = dbrepo.repo_name
503 try: 504 try:
504 if repo.alias == 'git': 505 if repo.alias == 'git':
505 repo.fetch(clone_uri) 506 repo.fetch(clone_uri)
506 else: 507 else:
508 self._handle_rc_scm_extras(username, dbrepo.repo_name,
509 repo.alias, action='push_remote')
507 repo.pull(clone_uri) 510 repo.pull(clone_uri)
511
508 self.mark_for_invalidation(repo_name) 512 self.mark_for_invalidation(repo_name)
509 except Exception: 513 except Exception:
510 log.error(traceback.format_exc()) 514 log.error(traceback.format_exc())
511 raise 515 raise
512 516