hgweb: adding branch names from inbranch template to atom feed

--HG--
extra : amend_source : 1c21245e086d7f6d70758a7502fddef2f4fd794a
hgweb: adding branch names from inbranch template to rss feed

--HG--
extra : amend_source : d5536fc9390b0b715d8df4ac92a367144a36cee9
hgweb: adding article link to rss feed
hgweb: fix lack of "bookmarks" link in "/file" page of "paper" style

This patch also fixes same problem of "coal" style, because it re-uses
"filerevision.tmpl" of "paper" style.

"gitweb" and "monoblue" styles don't have such problems.

"spartan" style doesn't have "bookmarks" page definition itself.

--HG--
extra : rebase_source : 4705d82734c196d714f5f41e558ce8f5d7d1e02d
extra : source : a23a7611828917f97202c282880a2ddf8f94b3a5
hgweb: make "comparison" get parent from not filelog but changelog

Before this patch, "comparison" shows unexpected result, when the
specified file is not modified in the specified revision, even though
"diff" shows empty result.

When REV doesn't change specified FILE, "diff" shows:

  "hg diff -c REV FILE"

but "comparison" shows:

  "hg diff -c `hg parents -r REV FILE` FILE"

In other words, the former gets parent from changelog, but the latter
gets one from filelog.

This may confuse users browsing (and switching "diff" and
"comparison" of) files in the specified revision.

This patch makes "comparison" get parent from not filelog but
changelog, to show "hg diff -c REV FILE" in both "diff" and
"comparison" pages.

--HG--
extra : rebase_source : 0f1ca8105e247275d3aa04d65fcaa6ba6ad4cb4f
extra : source : 17438fe8091a25eba4bcb6b03a5be5d62fbb6d10
hgweb: show as same parents as "hg parents -r REV FILE" in pages for file

Before this patch, "parents" in pages for file doesn't show as same
parents as "hg parents -r REV FILE", when the specified file is not
modified in the specified revision.

For example, it is assumed that revision A, B and D change file "f".

    changelog   (A) ---> (B) ---> (C) ---> (D)
    filelog "f" (x) ---> (y) ------------> (z)

"/file/D/f" invokes "webutil.parents()" with filectx(z) gotten from
changectx(D), and it returns changectx(B). This is as same result as
"hg parents -r D f".

In the other hand, "/file/C/f" invokes "webutil.parents()" with
filectx(y') gotten from changectx(C), and it returns changectx(A),
because filectx(y') is linked to changectx(B), and works like
filectx(y) in some cases.

In this case, revision B is hidden from users browsing file "f" in
revision C.

This patch shows as same parents as "hg parents -r REV FILE" in pages
for file, by making "webutil.parents()" return:

  - "linkrev()"-ed revision only, if:

    - specified context instance is "filectx" (because
      "webutil.parents()" is invoked with changectx, too), and

    - (1) the revision from which filectx is gotten and (2) the one to
      which filectx is linked are different from each other

  - revision gotten from "ctx.parents()", otherwise

--HG--
extra : rebase_source : 2f1421efa940b4d21b6a00322fde376982c6c818
extra : source : b414c3cf96632ffea66a94f171c33af1744d94ab
hgweb: show revisions and hashes gotten from changelog in "comparison" page

Before this patch, revision numbers and hash values in "comparison"
page are gotten from not changelog but filelog.

Such filelog information is useful only for hgweb debugging, and may
confuse users.

This patch shows revision numbers and hash values gotten from
changelog in "comparison" page.

--HG--
extra : rebase_source : 1800efd69c8cfb16a218a90c60f978e9b3a7afd2
extra : source : 5f63ce1cedc03a5ab48931ed61e3da023f30ff7c
hgweb: align entries in "changelog" and "revisions" pages of "spartan" style

Before this patch, each log entries in "changelog" and "revisions"
pages of "spartan" style are not aligned by column, because:

  - each log entries are separated "<table>" entries, and
  - there are no fixed "width" information for each "<th>"/"<td>" entries

This patch aligns entries in "changelog" and "revisions" pages of
"spartan" style by:

  - adding 'label' class to '<th>' for 'age' information, and
  - setting 'width' of '<th class="label">' with fixed size

'class="age"' is not used for this purpose, because it is also used to
set "bold" font-weight

"16em" seems to be wide enough to show date information fully, when
web browser disables (or doesn't support) javascript.

--HG--
extra : rebase_source : df736fd35c429c355e5f01c34938d0f9173be045
extra : source : cdc387861e7bee25bb57cae8a787ea2408eea164