##// 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:

r3039:a520d542 beta
r3043:b61824e6 beta
Show More
shortlog_data.html
101 lines | 3.3 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
%if c.repo_changesets:
<table class="table_disp">
<tr>
<th class="left">${_('revision')}</th>
<th class="left">${_('commit message')}</th>
<th class="left">${_('age')}</th>
<th class="left">${_('author')}</th>
<th class="left">${_('branch')}</th>
<th class="left">${_('tags')}</th>
</tr>
%for cnt,cs in enumerate(c.repo_changesets):
<tr class="parity${cnt%2}">
<td>
<div>
<div class="changeset-status-container">
%if c.statuses.get(cs.raw_id):
<div class="changeset-status-ico">
%if c.statuses.get(cs.raw_id)[2]:
<a class="tooltip" title="${_('Click to open associated pull request')}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
<img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
</a>
%else:
<img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
%endif
</div>
%endif
</div>
<pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></pre>
</div>
</td>
<td>
${h.urlify_commit(h.truncate(cs.message,50),c.repo_name, h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}
</td>
<td><span class="tooltip" title="${h.tooltip(h.fmt_date(cs.date))}">
${h.age(cs.date)}</span>
</td>
<td title="${cs.author}">${h.person(cs.author)}</td>
<td>
<span class="logtags">
%if cs.branch:
<span class="branchtag">
${cs.branch}
</span>
%endif
</span>
</td>
<td>
<span class="logtags">
%for tag in cs.tags:
<span class="tagtag">${tag}</span>
%endfor
</span>
</td>
</tr>
%endfor
</table>
<script type="text/javascript">
YUE.onDOMReady(function(){
YUE.delegate("shortlog_data","click",function(e, matchedEl, container){
ypjax(e.target.href,"shortlog_data",function(){tooltip_activate();});
YUE.preventDefault(e);
},'.pager_link');
});
</script>
<div class="pagination-wh pagination-left">
${c.repo_changesets.pager('$link_previous ~2~ $link_next')}
</div>
%else:
%if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
<h4>${_('Add or upload files directly via RhodeCode')}</h4>
<div style="margin: 20px 30px;">
<div id="add_node_id" class="add_node">
<a class="ui-btn" href="${h.url('files_add_home',repo_name=c.repo_name,revision=0,f_path='')}">${_('add new file')}</a>
</div>
</div>
%endif
<h4>${_('Push new repo')}</h4>
<pre>
${c.rhodecode_repo.alias} clone ${c.clone_repo_url}
${c.rhodecode_repo.alias} add README # add first file
${c.rhodecode_repo.alias} commit -m "Initial" # commit with message
${c.rhodecode_repo.alias} push ${'origin master' if h.is_git(c.rhodecode_repo) else ''} # push changes back
</pre>
<h4>${_('Existing repository?')}</h4>
<pre>
%if h.is_git(c.rhodecode_repo):
git remote add origin ${c.clone_repo_url}
git push -u origin master
%else:
hg push ${c.clone_repo_url}
%endif
</pre>
%endif