comparison rhodecode/model/scm.py @ 1508:4aba7be311e8 beta

API added checks for a valid repository on pull command Added pre-check if repository have a remote_uri defines before pulling bugfix with no default arguments on api function added traceback when unhandled exception occurs on API
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 02 Oct 2011 02:06:23 +0200
parents 269905fac50a
children bf263968da47 04027bdb876c
comparison
equal deleted inserted replaced
1507:7d687ed11929 1508:4aba7be311e8
305 return self.sa.query(Repository)\ 305 return self.sa.query(Repository)\
306 .filter(Repository.fork_id == repo_id).count() 306 .filter(Repository.fork_id == repo_id).count()
307 307
308 def pull_changes(self, repo_name, username): 308 def pull_changes(self, repo_name, username):
309 dbrepo = Repository.by_repo_name(repo_name) 309 dbrepo = Repository.by_repo_name(repo_name)
310 clone_uri = dbrepo.clone_uri
311 if not clone_uri:
312 raise Exception("This repository doesn't have a clone uri")
313
310 repo = dbrepo.scm_instance 314 repo = dbrepo.scm_instance
311 try: 315 try:
312 extras = {'ip': '', 316 extras = {'ip': '',
313 'username': username, 317 'username': username,
314 'action': 'push_remote', 318 'action': 'push_remote',
316 320
317 #inject ui extra param to log this action via push logger 321 #inject ui extra param to log this action via push logger
318 for k, v in extras.items(): 322 for k, v in extras.items():
319 repo._repo.ui.setconfig('rhodecode_extras', k, v) 323 repo._repo.ui.setconfig('rhodecode_extras', k, v)
320 324
321 repo.pull(dbrepo.clone_uri) 325 repo.pull(clone_uri)
322 self.mark_for_invalidation(repo_name) 326 self.mark_for_invalidation(repo_name)
323 except: 327 except:
324 log.error(traceback.format_exc()) 328 log.error(traceback.format_exc())
325 raise 329 raise
326
327 330
328 def commit_change(self, repo, repo_name, cs, user, author, message, content, 331 def commit_change(self, repo, repo_name, cs, user, author, message, content,
329 f_path): 332 f_path):
330 333
331 if repo.alias == 'hg': 334 if repo.alias == 'hg':