summaryrefslogtreecommitdiffstats
path: root/bn_django/git_browse
diff options
context:
space:
mode:
Diffstat (limited to 'bn_django/git_browse')
-rw-r--r--bn_django/git_browse/templates/git_browse/repository_info.html5
-rw-r--r--bn_django/git_browse/templates/git_browse/repository_list.html7
-rw-r--r--bn_django/git_browse/templates/git_browse/tree.html12
-rw-r--r--bn_django/git_browse/urls.py3
-rw-r--r--bn_django/git_browse/views.py15
5 files changed, 32 insertions, 10 deletions
diff --git a/bn_django/git_browse/templates/git_browse/repository_info.html b/bn_django/git_browse/templates/git_browse/repository_info.html
index bec150c..72f30b1 100644
--- a/bn_django/git_browse/templates/git_browse/repository_info.html
+++ b/bn_django/git_browse/templates/git_browse/repository_info.html
@@ -1,8 +1,11 @@
{% extends "git_browse/base.html" %}
{% block gitbrowse %}
+{{ object.description }}
{% if shortlog %}
-<h3>Shortlog</h3>
+<h3>Shortlog (<a href="/code/{{object.slug}}/log/">full log</a>)</h3>
<pre>{{ shortlog }}</pre>
+<h3>Filelist (<a href="/code/{{object.slug}}/tree/">browse</a>)</h3>
+<pre>{{ filelist }}</pre>
{% endif %}
{% endblock %}
diff --git a/bn_django/git_browse/templates/git_browse/repository_list.html b/bn_django/git_browse/templates/git_browse/repository_list.html
index a089fec..106c0e8 100644
--- a/bn_django/git_browse/templates/git_browse/repository_list.html
+++ b/bn_django/git_browse/templates/git_browse/repository_list.html
@@ -5,11 +5,14 @@
{% block title %}Code Repositories{% endblock %}
{% block content %}
+<div class="notice">
+Until this is better developed I would recommend trying <a href="http://git.bryannewbold.com/">gitweb</a>.
+</div>
{% if object_list %}
{% for item in object_list %}
<div class="righty"><br />
- <a href="{{ item.slug }}/tree/">tree</a> -
- <a href="{{ item.slug }}/changelog/">changelog</a>
+ <a href="{{ item.slug }}/tree/">browse</a> -
+ <a href="{{ item.slug }}/log/">changelog</a>
</div>
<h3><a href="{{ item.slug }}/">{{ item.name }}</a> (aka {{ item.slug }})</h3>
{{ item.description }}
diff --git a/bn_django/git_browse/templates/git_browse/tree.html b/bn_django/git_browse/templates/git_browse/tree.html
index 22162da..046d85c 100644
--- a/bn_django/git_browse/templates/git_browse/tree.html
+++ b/bn_django/git_browse/templates/git_browse/tree.html
@@ -1,10 +1,20 @@
{% extends "git_browse/base.html" %}
{% block gitbrowse %}
+
{% if all_objs %}
+ <h3>Tree sha1 hash:</h3><br /> {{ hash }}<br />
<h3>Directory listing:</h3>
{% for obj in all_objs %}
-[{{obj.type}}] <a href='../obj/{{ obj.id }}/'>{{obj.name}}</a> <br />
+[{{obj.type}}]
+ {% ifequal obj.type 'blob'%}
+ <a href='/code/{{ object.slug }}/obj/{{ obj.id }}/'>{{obj.name}}</a> {% else %}
+ {% ifequal obj.type 'tree'%}
+ <a href='/code/{{object.slug}}/tree/{{ obj.id }}/'>{{obj.name}}</a>
+ {% else %}
+ <a href='/code/{{object.slug}}/obj/{{ obj.id }}/'>{{obj.name}}</a>
+ {% endifequal %}{% endifequal %}
+ <br />
{% endfor %}
{% endif %}
{% endblock %}
diff --git a/bn_django/git_browse/urls.py b/bn_django/git_browse/urls.py
index 91e9baa..909bfcd 100644
--- a/bn_django/git_browse/urls.py
+++ b/bn_django/git_browse/urls.py
@@ -36,5 +36,6 @@ urlpatterns += patterns('bn_django.git_browse.views',
(r'^(?P<repo>[\w\-\_]*)/branches/$', 'view_branches',),
(r'^(?P<repo>[\w\-\_]*)/history/$', 'view_history',),
(r'^(?P<repo>[\w\-\_]*)/log/$', 'view_log',),
- (r'^(?P<repo>[\w\-\_]*)/obj/(?P<hash>[0-9a-z]*)/$', 'view_obj',),
+ (r'^(?P<repo>[\w\-\_]*)/obj/(?P<hash>[0-9a-z]{40})/$', 'view_obj',),
+ (r'^(?P<repo>[\w\-\_]*)/tree/(?P<hash>[0-9a-z]{40})/$', 'view_tree',),
)
diff --git a/bn_django/git_browse/views.py b/bn_django/git_browse/views.py
index 9e3ba90..c8a7a40 100644
--- a/bn_django/git_browse/views.py
+++ b/bn_django/git_browse/views.py
@@ -27,20 +27,24 @@ def repo_info(request, repo,branch=None):
GITPREFIX = 'cd ' + GITBROWSE_BASE + therepo.slug + '; ' + GITCOMMAND + ' --git-dir=' + GITBROWSE_BASE + therepo.slug + '/.git '
shortlog = commands.getoutput(GITPREFIX + ' log | ' + GITCOMMAND + '-shortlog')
+ filelist = commands.getoutput(GITPREFIX + ' ls-files')
return render_to_response('git_browse/repository_info.html',
dict(object=therepo,
+ filelist=filelist,
shortlog=shortlog,))
-def view_tree(request, repo, tree_hash=None,branch=None):
+def view_tree(request, repo, hash=None,branch=None):
therepo = get_object_or_404(Repository, slug=repo)
GITPREFIX = 'cd ' + GITBROWSE_BASE + therepo.slug + '; ' + GITCOMMAND + ' --git-dir=' + GITBROWSE_BASE + therepo.slug + '/.git '
- head_ref = commands.getoutput('cd ' + GITBROWSE_BASE + therepo.slug +'/.git; cat HEAD')
- head_ref = head_ref.split()[1]
- head = commands.getoutput('cd ' + GITBROWSE_BASE + therepo.slug +'/.git; cat ' + head_ref)
- tree_ls = commands.getoutput(GITPREFIX + ' ls-tree ' + head)
+ if(hash == None):
+ head_ref = commands.getoutput('cd ' + GITBROWSE_BASE + therepo.slug +'/.git; cat HEAD')
+ head_ref = head_ref.split()[1]
+ hash = commands.getoutput('cd ' + GITBROWSE_BASE + therepo.slug +'/.git; cat ' + head_ref)
+
+ tree_ls = commands.getoutput(GITPREFIX + ' ls-tree ' + hash)
tree_objs = list()
blob_objs = list()
for line in tree_ls.splitlines():
@@ -56,6 +60,7 @@ def view_tree(request, repo, tree_hash=None,branch=None):
dict(object=therepo,
blob_objs=blob_objs,
tree_objs=tree_objs,
+ hash=hash,
all_objs=tree_objs+blob_objs,))
def view_log(request, repo, tree_hash=None, branch=None):