diff options
Diffstat (limited to 'bn_django/git_browse')
-rw-r--r-- | bn_django/git_browse/templates/git_browse/repository_info.html | 5 | ||||
-rw-r--r-- | bn_django/git_browse/templates/git_browse/repository_list.html | 7 | ||||
-rw-r--r-- | bn_django/git_browse/templates/git_browse/tree.html | 12 | ||||
-rw-r--r-- | bn_django/git_browse/urls.py | 3 | ||||
-rw-r--r-- | bn_django/git_browse/views.py | 15 |
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): |