Mercurial > kallithea
changeset 2998:433428ffd13b beta
fixes #645 Fix git handler when doing delete remote branch
- journal will now display nicer labels for create tag, and delete branch operations for git
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 10 Nov 2012 14:50:11 +0100 |
parents | da3926d9e56e |
children | cb5cd7516bc3 |
files | rhodecode/lib/helpers.py rhodecode/lib/hooks.py |
diffstat | 2 files changed, 32 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/helpers.py Sat Nov 10 03:21:31 2012 +0100 +++ b/rhodecode/lib/helpers.py Sat Nov 10 14:50:11 2012 +0100 @@ -521,10 +521,23 @@ def lnk(rev, repo_name): if isinstance(rev, BaseChangeset) or isinstance(rev, AttributeDict): - lbl = '%s' % (rev.short_id[:8]) - _url = url('changeset_home', repo_name=repo_name, - revision=rev.raw_id) - title = tooltip(rev.message) + lazy_cs = True + if getattr(rev, 'op', None) and getattr(rev, 'ref_name', None): + lazy_cs = False + lbl = '?' + if rev.op == 'delete_branch': + lbl = '%s' % _('Deleted branch: %s') % rev.ref_name + title = '' + elif rev.op == 'tag': + lbl = '%s' % _('Created tag: %s') % rev.ref_name + title = '' + _url = '#' + + else: + lbl = '%s' % (rev.short_id[:8]) + _url = url('changeset_home', repo_name=repo_name, + revision=rev.raw_id) + title = tooltip(rev.message) else: ## changeset cannot be found/striped/removed etc. lbl = ('%s' % rev)[:12] @@ -533,12 +546,16 @@ if parse_cs: return link_to(lbl, _url, title=title, class_='tooltip') return link_to(lbl, _url, raw_id=rev.raw_id, repo_name=repo_name, - class_='lazy-cs') + class_='lazy-cs' if lazy_cs else '') revs = [] if len(filter(lambda v: v != '', revs_ids)) > 0: repo = None for rev in revs_ids[:revs_top_limit]: + _op = _name = None + if len(rev.split('=>')) == 2: + _op, _name = rev.split('=>') + # we want parsed changesets, or new log store format is bad if parse_cs: try: @@ -555,6 +572,8 @@ 'short_id': rev[:12], 'raw_id': rev, 'message': '', + 'op': _op, + 'ref_name': _name }) revs.append(_rev) cs_links = []
--- a/rhodecode/lib/hooks.py Sat Nov 10 03:21:31 2012 +0100 +++ b/rhodecode/lib/hooks.py Sat Nov 10 14:50:11 2012 +0100 @@ -412,11 +412,17 @@ heads.splitlines())) cmd = (('log %(new_rev)s' % push_ref) + ' --reverse --pretty=format:"%H" --not ' + heads) + git_revs += repo.run_git_command(cmd)[0].splitlines() + + elif push_ref['new_rev'] == EmptyChangeset().raw_id: + #delete branch case + git_revs += ['delete_branch=>%s' % push_ref['name']] else: cmd = (('log %(old_rev)s..%(new_rev)s' % push_ref) + ' --reverse --pretty=format:"%H"') - git_revs += repo.run_git_command(cmd)[0].splitlines() + git_revs += repo.run_git_command(cmd)[0].splitlines() + elif _type == 'tags': - git_revs += [push_ref['name']] + git_revs += ['tag=>%s' % push_ref['name']] log_push_action(baseui, repo, _git_revs=git_revs)