Patchwork [RESEND] hgweb: add a "URL breadcrumb" to the index and repository pages

login
register
mail settings
Submitter Angel Ezquerra
Date Dec. 20, 2012, 9:50 p.m.
Message ID <f89c9a7e95ffd5a06e10.1356040237@Angel-PC.localdomain>
Download mbox | patch
Permalink /patch/227/
State Superseded
Headers show

Comments

Angel Ezquerra - Dec. 20, 2012, 9:50 p.m.
# HG changeset patch
# User Angel Ezquerra <angel.ezquerra at gmail.com>
# Date 1354130486 -3600
# Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
# Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
hgweb: add a "URL breadcrumb" to the index and repository pages

The purpose of this change is to make it much easier to navigate up the
repository tree when the hg web server is used to serve more than one
repository.

A "URL breadcrumb" is a path where each of the path items can be clicked to go
to the corresponding path page.

This lets you go up the folder hierarchy very quickly. For example, when showing
the list of repositories in http://myserver/myteams/myprojects, the following
"breadcrumb" will be shown:

> myteams > myprojects

Clicking on "myprojects" reloads the page. Clicking on "myteams >" goes up one
folder. Clicking on the leftmost " > " goes to the server root.

This "breadcrumb" also appears on all repository pages. For example on the
summary page of the repository at http://myserver/myteams/myprojects/myrepo the
following will be shown:

> myteams > myprojects > myrepo / summary

This change has been applied to all templates that already had a link to the
main repository page (i.e. gitweb, monoblue, paper and coal).
Angel Ezquerra - Dec. 20, 2012, 9:53 p.m.
On Thu, Dec 20, 2012 at 10:50 PM, Angel Ezquerra
<angel.ezquerra at gmail.com> wrote:
> # HG changeset patch
> # User Angel Ezquerra <angel.ezquerra at gmail.com>
> # Date 1354130486 -3600
> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
> hgweb: add a "URL breadcrumb" to the index and repository pages
>
> The purpose of this change is to make it much easier to navigate up the
> repository tree when the hg web server is used to serve more than one
> repository.
>
> A "URL breadcrumb" is a path where each of the path items can be clicked to go
> to the corresponding path page.
>
> This lets you go up the folder hierarchy very quickly. For example, when showing
> the list of repositories in http://myserver/myteams/myprojects, the following
> "breadcrumb" will be shown:
>
>> myteams > myprojects
>
> Clicking on "myprojects" reloads the page. Clicking on "myteams >" goes up one
> folder. Clicking on the leftmost " > " goes to the server root.
>
> This "breadcrumb" also appears on all repository pages. For example on the
> summary page of the repository at http://myserver/myteams/myprojects/myrepo the
> following will be shown:
>
>> myteams > myprojects > myrepo / summary
>
> This change has been applied to all templates that already had a link to the
> main repository page (i.e. gitweb, monoblue, paper and coal).

I also sent this patch a while ago. I don't remember getting any
comments from this last version.

The only thing that could probably get a bit more work on this patch
(IMHO) is that it is currently possible to go above the topmost server
path. However I am not sure how we could know which is that topmost
path in a general way...

Cheers,

Angel
Matt Mackall - Dec. 20, 2012, 11:48 p.m.
On Thu, 2012-12-20 at 22:50 +0100, Angel Ezquerra wrote:
> # HG changeset patch
> # User Angel Ezquerra <angel.ezquerra at gmail.com>
> # Date 1354130486 -3600
> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
> hgweb: add a "URL breadcrumb" to the index and repository pages

Again, a plea to expose a public server that reviewers can look at
rather than downloading and applying your patch, figuring out how to
configuring a one-off multi-repo hgweb config, and then testing.
Otherwise, only a very motivated reviewer will ever get around to
looking at it.

> The purpose of this change is to make it much easier to navigate up the
> repository tree when the hg web server is used to serve more than one
> repository.
> 
> A "URL breadcrumb" is a path where each of the path items can be clicked to go
> to the corresponding path page.
> 
> This lets you go up the folder hierarchy very quickly. For example, when showing
> the list of repositories in http://myserver/myteams/myprojects, the following
> "breadcrumb" will be shown:
> 
> > myteams > myprojects

Earlier, I wrote:

        I actually think it would be better to present it as:
        
        Mercurial > foo > bar
        
        with link styling. 
        
        http://mercurial.markmail.org/thread/eolhlwpsbumup4r3
        
What I get:

Mercurial Repositories : > foo > bar

without link styling (ie it all looks like inert non-clickable text).
The first '>' is a link (??) but I don't know why I'd ever think to
click on a separator. Also there's an emoticon in there for some reason.

So, to be more precise, I want:

Mercurial > foo > bar
^^^^^^^^^   ^^^   ^^^  these should look like links (ie blue)
^^^^^^^^^              this should be the root link
          ^     ^      these separators should be inert (ie black)
Angel Ezquerra - Dec. 21, 2012, 12:38 a.m.
On Fri, Dec 21, 2012 at 12:48 AM, Matt Mackall <mpm at selenic.com> wrote:
> On Thu, 2012-12-20 at 22:50 +0100, Angel Ezquerra wrote:
>> # HG changeset patch
>> # User Angel Ezquerra <angel.ezquerra at gmail.com>
>> # Date 1354130486 -3600
>> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
>> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
>> hgweb: add a "URL breadcrumb" to the index and repository pages
>
> Again, a plea to expose a public server that reviewers can look at
> rather than downloading and applying your patch, figuring out how to
> configuring a one-off multi-repo hgweb config, and then testing.
> Otherwise, only a very motivated reviewer will ever get around to
> looking at it.

I wish I could do so but I don't have access to any public server were
I could place my demo web server.

If anybody wants to give this a test I suggest using the following
web.conf file:

???
[web]
style = monoblue
collapse = true

[paths]

test/hg = PATH_TO_THE_HG_REPO
test/hg2 = PATH_TO_THE_HG_REPO
test/test2/hg = PATH_TO_THE_HG_REPO
test/test2/test3/hg2 = PATH_TO_THE_HG_REPO
???

And starting the server with:

hg serve --web-conf web.conf


>> The purpose of this change is to make it much easier to navigate up the
>> repository tree when the hg web server is used to serve more than one
>> repository.
>>
>> A "URL breadcrumb" is a path where each of the path items can be clicked to go
>> to the corresponding path page.
>>
>> This lets you go up the folder hierarchy very quickly. For example, when showing
>> the list of repositories in http://myserver/myteams/myprojects, the following
>> "breadcrumb" will be shown:
>>
>> > myteams > myprojects
>
> Earlier, I wrote:
>
>         I actually think it would be better to present it as:
>
>         Mercurial > foo > bar
>
>         with link styling.
>
>         http://mercurial.markmail.org/thread/eolhlwpsbumup4r3
>
> What I get:
>
> Mercurial Repositories : > foo > bar
>
> without link styling (ie it all looks like inert non-clickable text).
> The first '>' is a link (??) but I don't know why I'd ever think to
> click on a separator. Also there's an emoticon in there for some reason.

It took me a while to understand what you meant by emoticon! Now I see
what you mean. It does indeed look a bit weird once you notice.

> So, to be more precise, I want:
>
> Mercurial > foo > bar
> ^^^^^^^^^   ^^^   ^^^  these should look like links (ie blue)
> ^^^^^^^^^              this should be the root link
>           ^     ^      these separators should be inert (ie black)

Would it be acceptable to show this instead?:

> Mercurial > foo > bar

That would be much easier to do since there would not be any special
case (i.e. the first or last item which would have no '>').

I can place the ' > ' outside of the links as you suggest, which makes
them be of a different color which in turn makes the actual path
element links stand out more. These path element links are regular
URLs that follow the template CSS. In most templates that means that
the URL does not have an underline, and that their color depends on
where the anchor is located (usually on the header and in the monoblue
template on a level 1 header). I don't think that making them look
like links outside of the header (i.e. blue) everywhere would be a
good idea (e.g. on the monoblue template making the link items blue as
non header links would make the text hard to read on top of the blue
background).

So I propose to just place the '>' separators outside of the links as
you suggested. I hope that would be enough to make the links stand
out.

I can send a patch with these changes for you to review (or if someone
gives me access to a public server I could set a demo there).

Thanks,

Angel
Angel Ezquerra - Dec. 21, 2012, 12:51 a.m.
On Fri, Dec 21, 2012 at 1:38 AM, Angel Ezquerra
<angel.ezquerra at gmail.com> wrote:
> On Fri, Dec 21, 2012 at 12:48 AM, Matt Mackall <mpm at selenic.com> wrote:
>> On Thu, 2012-12-20 at 22:50 +0100, Angel Ezquerra wrote:
>>> # HG changeset patch
>>> # User Angel Ezquerra <angel.ezquerra at gmail.com>
>>> # Date 1354130486 -3600
>>> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
>>> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
>>> hgweb: add a "URL breadcrumb" to the index and repository pages
>>
>> Again, a plea to expose a public server that reviewers can look at
>> rather than downloading and applying your patch, figuring out how to
>> configuring a one-off multi-repo hgweb config, and then testing.
>> Otherwise, only a very motivated reviewer will ever get around to
>> looking at it.
>
> I wish I could do so but I don't have access to any public server were
> I could place my demo web server.
>
> If anybody wants to give this a test I suggest using the following
> web.conf file:
>
> ???
> [web]
> style = monoblue
> collapse = true
>
> [paths]
>
> test/hg = PATH_TO_THE_HG_REPO
> test/hg2 = PATH_TO_THE_HG_REPO
> test/test2/hg = PATH_TO_THE_HG_REPO
> test/test2/test3/hg2 = PATH_TO_THE_HG_REPO
> ???
>
> And starting the server with:
>
> hg serve --web-conf web.conf
>
>
>>> The purpose of this change is to make it much easier to navigate up the
>>> repository tree when the hg web server is used to serve more than one
>>> repository.
>>>
>>> A "URL breadcrumb" is a path where each of the path items can be clicked to go
>>> to the corresponding path page.
>>>
>>> This lets you go up the folder hierarchy very quickly. For example, when showing
>>> the list of repositories in http://myserver/myteams/myprojects, the following
>>> "breadcrumb" will be shown:
>>>
>>> > myteams > myprojects
>>
>> Earlier, I wrote:
>>
>>         I actually think it would be better to present it as:
>>
>>         Mercurial > foo > bar
>>
>>         with link styling.
>>
>>         http://mercurial.markmail.org/thread/eolhlwpsbumup4r3
>>
>> What I get:
>>
>> Mercurial Repositories : > foo > bar
>>
>> without link styling (ie it all looks like inert non-clickable text).
>> The first '>' is a link (??) but I don't know why I'd ever think to
>> click on a separator. Also there's an emoticon in there for some reason.
>
> It took me a while to understand what you meant by emoticon! Now I see
> what you mean. It does indeed look a bit weird once you notice.
>
>> So, to be more precise, I want:
>>
>> Mercurial > foo > bar
>> ^^^^^^^^^   ^^^   ^^^  these should look like links (ie blue)
>> ^^^^^^^^^              this should be the root link
>>           ^     ^      these separators should be inert (ie black)
>
> Would it be acceptable to show this instead?:
>
>> Mercurial > foo > bar
>
> That would be much easier to do since there would not be any special
> case (i.e. the first or last item which would have no '>').
>
> I can place the ' > ' outside of the links as you suggest, which makes
> them be of a different color which in turn makes the actual path
> element links stand out more. These path element links are regular
> URLs that follow the template CSS. In most templates that means that
> the URL does not have an underline, and that their color depends on
> where the anchor is located (usually on the header and in the monoblue
> template on a level 1 header). I don't think that making them look
> like links outside of the header (i.e. blue) everywhere would be a
> good idea (e.g. on the monoblue template making the link items blue as
> non header links would make the text hard to read on top of the blue
> background).
>
> So I propose to just place the '>' separators outside of the links as
> you suggested. I hope that would be enough to make the links stand
> out.
>
> I can send a patch with these changes for you to review (or if someone
> gives me access to a public server I could set a demo there).
>
> Thanks,
>
> Angel

Looking a bit more closely at the different templates, the paper and
coal templates would require some additional styling to make the links
stand out. The gitweb is the one that resembles more your suggestion
while the spartan template index page is quite clear as well although
the actual repository pages are a bit of a mess (some show the
repository path and some don't, I'll need to fix that).

So it seems that some additional level of styling must be added
anyway. I'll see what I can do.

Cheers,

Angel
Matt Mackall - Dec. 21, 2012, 9:18 p.m.
On Fri, 2012-12-21 at 01:38 +0100, Angel Ezquerra wrote:
> On Fri, Dec 21, 2012 at 12:48 AM, Matt Mackall <mpm at selenic.com> wrote:
> > On Thu, 2012-12-20 at 22:50 +0100, Angel Ezquerra wrote:
> >> # HG changeset patch
> >> # User Angel Ezquerra <angel.ezquerra at gmail.com>
> >> # Date 1354130486 -3600
> >> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
> >> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
> >> hgweb: add a "URL breadcrumb" to the index and repository pages
> >
> > Again, a plea to expose a public server that reviewers can look at
> > rather than downloading and applying your patch, figuring out how to
> > configuring a one-off multi-repo hgweb config, and then testing.
> > Otherwise, only a very motivated reviewer will ever get around to
> > looking at it.
> 
> I wish I could do so but I don't have access to any public server were
> I could place my demo web server.
> 
> If anybody wants to give this a test I suggest using the following
> web.conf file:
> 
> ???
> [web]
> style = monoblue
> collapse = true
> 
> [paths]
> 
> test/hg = PATH_TO_THE_HG_REPO
> test/hg2 = PATH_TO_THE_HG_REPO
> test/test2/hg = PATH_TO_THE_HG_REPO
> test/test2/test3/hg2 = PATH_TO_THE_HG_REPO
> ???
> 
> And starting the server with:
> 
> hg serve --web-conf web.conf
> 
> 
> >> The purpose of this change is to make it much easier to navigate up the
> >> repository tree when the hg web server is used to serve more than one
> >> repository.
> >>
> >> A "URL breadcrumb" is a path where each of the path items can be clicked to go
> >> to the corresponding path page.
> >>
> >> This lets you go up the folder hierarchy very quickly. For example, when showing
> >> the list of repositories in http://myserver/myteams/myprojects, the following
> >> "breadcrumb" will be shown:
> >>
> >> > myteams > myprojects
> >
> > Earlier, I wrote:
> >
> >         I actually think it would be better to present it as:
> >
> >         Mercurial > foo > bar
> >
> >         with link styling.
> >
> >         http://mercurial.markmail.org/thread/eolhlwpsbumup4r3
> >
> > What I get:
> >
> > Mercurial Repositories : > foo > bar
> >
> > without link styling (ie it all looks like inert non-clickable text).
> > The first '>' is a link (??) but I don't know why I'd ever think to
> > click on a separator. Also there's an emoticon in there for some reason.
> 
> It took me a while to understand what you meant by emoticon! Now I see
> what you mean. It does indeed look a bit weird once you notice.
> 
> > So, to be more precise, I want:
> >
> > Mercurial > foo > bar
> > ^^^^^^^^^   ^^^   ^^^  these should look like links (ie blue)
> > ^^^^^^^^^              this should be the root link
> >           ^     ^      these separators should be inert (ie black)
> 
> Would it be acceptable to show this instead?:
> 
> > Mercurial > foo > bar
> 
> That would be much easier to do since there would not be any special
> case (i.e. the first or last item which would have no '>').

There is no special case in my proposal. There is always

 '<a href={root}>Mercurial</a>'

followed by zero of more

 ' &gt; <a href={path}>{part}</a>'.
Angel Ezquerra - Dec. 23, 2012, midnight
On Fri, Dec 21, 2012 at 10:18 PM, Matt Mackall <mpm at selenic.com> wrote:
> On Fri, 2012-12-21 at 01:38 +0100, Angel Ezquerra wrote:
>> On Fri, Dec 21, 2012 at 12:48 AM, Matt Mackall <mpm at selenic.com> wrote:
>> > On Thu, 2012-12-20 at 22:50 +0100, Angel Ezquerra wrote:
>> >> # HG changeset patch
>> >> # User Angel Ezquerra <angel.ezquerra at gmail.com>
>> >> # Date 1354130486 -3600
>> >> # Node ID f89c9a7e95ffd5a06e104f39ea568a85d7d50fcd
>> >> # Parent  47026c725b27b7fdd25eaada7f079235ba2e6694
>> >> hgweb: add a "URL breadcrumb" to the index and repository pages
>> >
>> > Again, a plea to expose a public server that reviewers can look at
>> > rather than downloading and applying your patch, figuring out how to
>> > configuring a one-off multi-repo hgweb config, and then testing.
>> > Otherwise, only a very motivated reviewer will ever get around to
>> > looking at it.
>>
>> I wish I could do so but I don't have access to any public server were
>> I could place my demo web server.
>>
>> If anybody wants to give this a test I suggest using the following
>> web.conf file:
>>
>> ???
>> [web]
>> style = monoblue
>> collapse = true
>>
>> [paths]
>>
>> test/hg = PATH_TO_THE_HG_REPO
>> test/hg2 = PATH_TO_THE_HG_REPO
>> test/test2/hg = PATH_TO_THE_HG_REPO
>> test/test2/test3/hg2 = PATH_TO_THE_HG_REPO
>> ???
>>
>> And starting the server with:
>>
>> hg serve --web-conf web.conf
>>
>>
>> >> The purpose of this change is to make it much easier to navigate up the
>> >> repository tree when the hg web server is used to serve more than one
>> >> repository.
>> >>
>> >> A "URL breadcrumb" is a path where each of the path items can be clicked to go
>> >> to the corresponding path page.
>> >>
>> >> This lets you go up the folder hierarchy very quickly. For example, when showing
>> >> the list of repositories in http://myserver/myteams/myprojects, the following
>> >> "breadcrumb" will be shown:
>> >>
>> >> > myteams > myprojects
>> >
>> > Earlier, I wrote:
>> >
>> >         I actually think it would be better to present it as:
>> >
>> >         Mercurial > foo > bar
>> >
>> >         with link styling.
>> >
>> >         http://mercurial.markmail.org/thread/eolhlwpsbumup4r3
>> >
>> > What I get:
>> >
>> > Mercurial Repositories : > foo > bar
>> >
>> > without link styling (ie it all looks like inert non-clickable text).
>> > The first '>' is a link (??) but I don't know why I'd ever think to
>> > click on a separator. Also there's an emoticon in there for some reason.
>>
>> It took me a while to understand what you meant by emoticon! Now I see
>> what you mean. It does indeed look a bit weird once you notice.
>>
>> > So, to be more precise, I want:
>> >
>> > Mercurial > foo > bar
>> > ^^^^^^^^^   ^^^   ^^^  these should look like links (ie blue)
>> > ^^^^^^^^^              this should be the root link
>> >           ^     ^      these separators should be inert (ie black)
>>
>> Would it be acceptable to show this instead?:
>>
>> > Mercurial > foo > bar
>>
>> That would be much easier to do since there would not be any special
>> case (i.e. the first or last item which would have no '>').
>
> There is no special case in my proposal. There is always
>
>  '<a href={root}>Mercurial</a>'
>
> followed by zero of more
>
>  ' &gt; <a href={path}>{part}</a>'.

You are right. I had also forgotten to escape the ">" character.

I will resend the series following your advice. I will also improve
the makebreadcrumb function a little (I can remove some parameters now
that the separator is added by the template itself).

Thanks,

Angel

Patch

diff -r 47026c725b27 -r f89c9a7e95ff mercurial/hgweb/hgweb_mod.py
--- a/mercurial/hgweb/hgweb_mod.py	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/hgweb/hgweb_mod.py	Wed Nov 28 20:21:26 2012 +0100
@@ -24,6 +24,36 @@ 
     'pushkey': 'push',
 }
 
+def makebreadcrumb(url, relpath=None, sep=' > '):
+    '''Return a 'URL breadcrumb' list
+
+    A 'URL breadcrumb' is a list of URL-name pairs,
+    corresponding to each of the path items on a URL.
+    This can be used to create path navigation entries.
+    '''
+    if url and url[-1] == '/':
+        url = url[:-1]
+    if not relpath:
+        relpath = url
+    if relpath and relpath[-1] == '/':
+        relpath = relpath[:-1]
+    if relpath and relpath[0] == '/':
+        relpath = relpath[1:]
+
+    breadcrumb = []
+    urlel = url
+    pathitems = [''] + relpath.split('/')
+
+    for pathel in reversed(pathitems):        
+        if pathel != '/' and breadcrumb:
+            pathel += sep
+        breadcrumb.append({'url': urlel, 'name': pathel})
+        urlel = os.path.dirname(urlel)
+        if not urlel:
+            break
+    return reversed(breadcrumb)
+
+
 class hgweb(object):
     def __init__(self, repo, name=None, baseui=None):
         if isinstance(repo, str):
@@ -275,6 +305,15 @@ 
 
         # create the templater
 
+        relpath = req.url
+        if relpath and relpath[-1] == '/':
+            relpath = relpath[:-1]
+        if relpath and relpath[0] == '/':
+            relpath = relpath[1:]
+        plainurl = req.url
+        if plainurl and plainurl[-1] == '/':
+            plainurl = plainurl[:-1]
+        
         tmpl = templater.templater(mapfile,
                                    defaults={"url": req.url,
                                              "logourl": logourl,
@@ -285,7 +324,8 @@ 
                                              "header": header,
                                              "footer": footer,
                                              "motd": motd,
-                                             "sessionvars": sessionvars
+                                             "sessionvars": sessionvars,
+                                             "pathdef": makebreadcrumb(req.url, req.url),
                                             })
         return tmpl
 
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/hgweb/hgwebdir_mod.py
--- a/mercurial/hgweb/hgwebdir_mod.py	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py	Wed Nov 28 20:21:26 2012 +0100
@@ -12,7 +12,7 @@ 
 from mercurial import error, encoding
 from common import ErrorResponse, get_mtime, staticfile, paritygen, \
                    get_contact, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
-from hgweb_mod import hgweb
+from hgweb_mod import hgweb, makebreadcrumb
 from request import wsgirequest
 import webutil
 
@@ -389,6 +389,7 @@ 
         self.updatereqenv(req.env)
 
         return tmpl("index", entries=entries, subdir=subdir,
+                    pathdef=makebreadcrumb('/' + subdir),
                     sortcolumn=sortcolumn, descending=descending,
                     **dict(sort))
 
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/coal/map
--- a/mercurial/templates/coal/map	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/coal/map	Wed Nov 28 20:21:26 2012 +0100
@@ -223,3 +223,4 @@ 
 error = ../paper/error.tmpl
 urlparameter = '{separator}{name}={value|urlescape}'
 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
+breadcrumb = '<a href="{url}">{name}</a>'
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/bookmarks.tmpl
--- a/mercurial/templates/gitweb/bookmarks.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/bookmarks.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / bookmarks
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / bookmarks
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/branches.tmpl
--- a/mercurial/templates/gitweb/branches.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/branches.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / branches
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/changelog.tmpl
--- a/mercurial/templates/gitweb/changelog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/changelog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / changelog
 </div>
 
 <form action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/changeset.tmpl
--- a/mercurial/templates/gitweb/changeset.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/changeset.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / changeset
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/error.tmpl
--- a/mercurial/templates/gitweb/error.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/error.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / error
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/fileannotate.tmpl
--- a/mercurial/templates/gitweb/fileannotate.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/fileannotate.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / annotate
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/filecomparison.tmpl
--- a/mercurial/templates/gitweb/filecomparison.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/filecomparison.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / comparison
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / comparison
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/filediff.tmpl
--- a/mercurial/templates/gitweb/filediff.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/filediff.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / diff
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/filelog.tmpl
--- a/mercurial/templates/gitweb/filelog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/filelog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / file revisions
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/filerevision.tmpl
--- a/mercurial/templates/gitweb/filerevision.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/filerevision.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / file revision
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/graph.tmpl
--- a/mercurial/templates/gitweb/graph.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/graph.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -9,7 +9,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / graph
 </div>
 
 <form action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/help.tmpl
--- a/mercurial/templates/gitweb/help.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/help.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / help
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/helptopics.tmpl
--- a/mercurial/templates/gitweb/helptopics.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/helptopics.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / help
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/index.tmpl
--- a/mercurial/templates/gitweb/index.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/index.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -5,7 +5,7 @@ 
 
 <div class="page_header">
     <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
-    Repositories list
+    Repositories list : {pathdef%breadcrumb}
 </div>
 
 <table cellspacing="0">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/manifest.tmpl
--- a/mercurial/templates/gitweb/manifest.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/manifest.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / files
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/map
--- a/mercurial/templates/gitweb/map	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/map	Wed Nov 28 20:21:26 2012 +0100
@@ -305,3 +305,4 @@ 
 index = index.tmpl
 urlparameter = '{separator}{name}={value|urlescape}'
 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
+breadcrumb = '<a href="{url}">{name}</a>'
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/search.tmpl
--- a/mercurial/templates/gitweb/search.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/search.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / search
 
 <form action="{url}log">
 {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/shortlog.tmpl
--- a/mercurial/templates/gitweb/shortlog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/shortlog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / shortlog
 </div>
 
 <form action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/summary.tmpl
--- a/mercurial/templates/gitweb/summary.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/summary.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,8 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
-
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / summary
 <form action="{url}log">
 {sessionvars%hiddenformentry}
 <div class="search">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/gitweb/tags.tmpl
--- a/mercurial/templates/gitweb/tags.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/gitweb/tags.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,8 @@ 
 <body>
 
 <div class="page_header">
-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
+<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
+{pathdef%breadcrumb} / tags
 </div>
 
 <div class="page_nav">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/bookmarks.tmpl
--- a/mercurial/templates/monoblue/bookmarks.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/bookmarks.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / bookmarks</h1>
+        <h1>{pathdef%breadcrumb} / bookmarks</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/branches.tmpl
--- a/mercurial/templates/monoblue/branches.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/branches.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches</h1>
+        <h1>{pathdef%breadcrumb} / branches</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/changelog.tmpl
--- a/mercurial/templates/monoblue/changelog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/changelog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1>
+        <h1>{pathdef%breadcrumb} / changelog</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/changeset.tmpl
--- a/mercurial/templates/monoblue/changeset.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/changeset.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset</h1>
+        <h1>{pathdef%breadcrumb} / changeset</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/error.tmpl
--- a/mercurial/templates/monoblue/error.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/error.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
+        <h1>{pathdef%breadcrumb} / not found: {repo|escape}</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/fileannotate.tmpl
--- a/mercurial/templates/monoblue/fileannotate.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/fileannotate.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1>
+        <h1>{pathdef%breadcrumb} / annotate</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/filecomparison.tmpl
--- a/mercurial/templates/monoblue/filecomparison.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/filecomparison.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file comparison</h1>
+        <h1>{pathdef%breadcrumb} / file comparison</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/filediff.tmpl
--- a/mercurial/templates/monoblue/filediff.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/filediff.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1>
+        <h1>{pathdef%breadcrumb} / file diff</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/filelog.tmpl
--- a/mercurial/templates/monoblue/filelog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/filelog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1>
+        <h1>{pathdef%breadcrumb} / file revisions</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/filerevision.tmpl
--- a/mercurial/templates/monoblue/filerevision.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/filerevision.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1>
+        <h1>{pathdef%breadcrumb} / file revision</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/graph.tmpl
--- a/mercurial/templates/monoblue/graph.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/graph.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -8,7 +8,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
+        <h1>{pathdef%breadcrumb} / graph</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/help.tmpl
--- a/mercurial/templates/monoblue/help.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/help.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
+        <h1>{pathdef%breadcrumb} / help</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/helptopics.tmpl
--- a/mercurial/templates/monoblue/helptopics.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/helptopics.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
+        <h1>{pathdef%breadcrumb} / help</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/index.tmpl
--- a/mercurial/templates/monoblue/index.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/index.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -5,7 +5,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1>Mercurial Repositories</h1>
+        <h1>Mercurial Repositories : {pathdef%breadcrumb}</h1>
         <ul class="page-nav">
         </ul>
     </div>
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/manifest.tmpl
--- a/mercurial/templates/monoblue/manifest.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/manifest.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
+        <h1>{pathdef%breadcrumb} / files</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/map
--- a/mercurial/templates/monoblue/map	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/map	Wed Nov 28 20:21:26 2012 +0100
@@ -259,3 +259,4 @@ 
 urlparameter = '{separator}{name}={value|urlescape}'
 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
 graph = graph.tmpl
+breadcrumb = '<a href="{url}">{name}</a>'
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/notfound.tmpl
--- a/mercurial/templates/monoblue/notfound.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/notfound.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
+        <h1>{pathdef%breadcrumb} / not found: {repo|escape}</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/search.tmpl
--- a/mercurial/templates/monoblue/search.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/search.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1>
+        <h1>{pathdef%breadcrumb} / search</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/shortlog.tmpl
--- a/mercurial/templates/monoblue/shortlog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/shortlog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1>
+        <h1>{pathdef%breadcrumb} / shortlog</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/summary.tmpl
--- a/mercurial/templates/monoblue/summary.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/summary.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1>
+        <h1>{pathdef%breadcrumb} / summary</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/monoblue/tags.tmpl
--- a/mercurial/templates/monoblue/tags.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/monoblue/tags.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -7,7 +7,7 @@ 
 <body>
 <div id="container">
     <div class="page-header">
-        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags</h1>
+        <h1>{pathdef%breadcrumb} / tags</h1>
 
         <form action="{url}log">
             {sessionvars%hiddenformentry}
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/bookmarks.tmpl
--- a/mercurial/templates/paper/bookmarks.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/bookmarks.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -32,7 +32,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>bookmarks</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/branches.tmpl
--- a/mercurial/templates/paper/branches.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/branches.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -32,7 +32,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>branches</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/changeset.tmpl
--- a/mercurial/templates/paper/changeset.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/changeset.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -30,7 +30,7 @@ 
 
 <div class="main">
 
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/error.tmpl
--- a/mercurial/templates/paper/error.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/error.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -23,7 +23,7 @@ 
 
 <div class="main">
 
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>error</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/fileannotate.tmpl
--- a/mercurial/templates/paper/fileannotate.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/fileannotate.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -36,7 +36,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>annotate {file|escape} @ {rev}:{node|short}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/filecomparison.tmpl
--- a/mercurial/templates/paper/filecomparison.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/filecomparison.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -35,7 +35,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>comparison {file|escape} @ {rev}:{node|short}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/filediff.tmpl
--- a/mercurial/templates/paper/filediff.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/filediff.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -35,7 +35,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>diff {file|escape} @ {rev}:{node|short}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/filelog.tmpl
--- a/mercurial/templates/paper/filelog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/filelog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -38,7 +38,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>log {file|escape}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/filerevision.tmpl
--- a/mercurial/templates/paper/filerevision.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/filerevision.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -34,7 +34,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>view {file|escape} @ {rev}:{node|short}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/graph.tmpl
--- a/mercurial/templates/paper/graph.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/graph.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -37,7 +37,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>graph</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/help.tmpl
--- a/mercurial/templates/paper/help.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/help.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -26,7 +26,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>Help: {topic}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/helptopics.tmpl
--- a/mercurial/templates/paper/helptopics.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/helptopics.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -26,7 +26,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <form class="search" action="{url}log">
 {sessionvars%hiddenformentry}
 <p><input name="rev" id="search1" type="text" size="30" /></p>
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/index.tmpl
--- a/mercurial/templates/paper/index.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/index.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -9,7 +9,7 @@ 
 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
 </div>
 <div class="main">
-<h2>Mercurial Repositories</h2>
+<h2>Mercurial Repositories : {pathdef%breadcrumb}</h2>
 
 <table class="bigtable">
     <tr>
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/manifest.tmpl
--- a/mercurial/templates/paper/manifest.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/manifest.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -29,7 +29,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/map
--- a/mercurial/templates/paper/map	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/map	Wed Nov 28 20:21:26 2012 +0100
@@ -231,3 +231,4 @@ 
 error = error.tmpl
 urlparameter = '{separator}{name}={value|urlescape}'
 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
+breadcrumb = '<a href="{url}">{name}</a>'
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/search.tmpl
--- a/mercurial/templates/paper/search.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/search.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -20,7 +20,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>searching for '{query|escape}'</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/shortlog.tmpl
--- a/mercurial/templates/paper/shortlog.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/shortlog.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -39,7 +39,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>log</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/paper/tags.tmpl
--- a/mercurial/templates/paper/tags.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/paper/tags.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -31,7 +31,7 @@ 
 </div>
 
 <div class="main">
-<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h2>{pathdef%breadcrumb}</h2>
 <h3>tags</h3>
 
 <form class="search" action="{url}log">
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/spartan/index.tmpl
--- a/mercurial/templates/spartan/index.tmpl	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/spartan/index.tmpl	Wed Nov 28 20:21:26 2012 +0100
@@ -3,7 +3,7 @@ 
 </head>
 <body>
 
-<h2>Mercurial Repositories</h2>
+<h2>Mercurial Repositories : {pathdef%breadcrumb}</h2>
 
 <table>
     <tr>
diff -r 47026c725b27 -r f89c9a7e95ff mercurial/templates/spartan/map
--- a/mercurial/templates/spartan/map	Fri Dec 07 11:05:55 2012 +0100
+++ b/mercurial/templates/spartan/map	Wed Nov 28 20:21:26 2012 +0100
@@ -181,3 +181,4 @@ 
 error = error.tmpl
 urlparameter = '{separator}{name}={value|urlescape}'
 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
+breadcrumb = '<a href="{url}">{name}</a>'