Mercurial > kallithea
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': |