M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年9月28日 18:30

CodeReposはユーザ名が2文字だとコミッタページの最近のコミットリストが表示されない

このエントリーをはてなブックマークに追加 mixiチェック

僕のCodeReposのコミッタページは、

http://coderepos.org/share/wiki/Committers/CL

ですが、他の人と違って、最近コミットしたリストが表示されません。


コミッタページのコミットリストを表示させているルーチンは、

http://svn.coderepos.org/share/websites/coderepos.org/trac/share/js/TracUtils.js の一部抜粋

        /**
         * コミッタページにその人の最近のコミットリストを表示する。
         * Trac の検索機能を使っているので、コミットログに名前をかきまくると
         * 検索結果の1ページ目 == 10個しかみていないので
         * その人の最近のコミットがなかったことになるいじめができる。
         */
        , addCommitterRecentCommits : function () {
                if (!location.search && !/^\/share\/wiki\/Committers\/([^\/]{3,})/.test(location.pathname)) return;
                var author = RegExp.$1;
                    $.get(TracUtils.TRAC_BASE+"/search?q="+author+"&noquickjump=1&changeset=on", {}, function (data) {
                        $("<div class='recent-commits'><h2>Recent Commits</h2></div>").append(
                                $(data).xfind(".//dl")
                                        .xfind("dd[span[@class='author'] != 'By "+author+"']")
                                                .xfind("preceding-sibling::dt[1] | preceding-sibling::dd[1]").remove().end()
                                        .remove().end()
                        ).appendTo($("#searchable, #content").get(0));
                });
        }

となっており、3文字未満のAuthor名のユーザの場合表示ルーチンがでない。

なんでーとおもって、正規表現2文字にしてみたんですが、次の関門

http://coderepos.org/share/search?q=CL&noquickjump=1&changeset=on

にアクセスすると、

Search query too short. Query must be at least 3 characters long.

とでます。とても残念。3文字で申請し直した方がいいのかな。


(2008-9-28 22:29追記)

$ diff -u TracUtils.js.old TracUtils.js
--- TracUtils.js.old    2008-09-28 22:24:21.000000000 +0900
+++ TracUtils.js        2008-09-28 22:27:03.000000000 +0900
@@ -310,9 +310,9 @@
         * その人の最近のコミットがなかったことになるいじめができる。
         */
        , addCommitterRecentCommits : function () {
-               if (!location.search && !/^\/share\/wiki\/Committers\/([^\/]{3,})/.test(location.pathname)) return;
+               if (!location.search && !/^\/share\/wiki\/Committers\/([^\/]{2,})/.test(location.pathname)) return;
                var author = RegExp.$1;
-               $.get(TracUtils.TRAC_BASE+"/search?q="+author+"&noquickjump=1&changeset=on", {}, function (data) {
+               $.get(TracUtils.TRAC_BASE+"/search?q="+author+"%20"+author+"&noquickjump=1&changeset=on", {}, function (data) {
                        $("<div class='recent-commits'><h2>Recent Commits</h2></div>").append(
                                $(data).xfind(".//dl")
                                        .xfind("dd[span[@class='author'] != 'By "+author+"']")
$ 

このパッチで直る。

  • 正規表現をいじって、2文字Anthorを認める
  • 「CL」2文字のクエリだとはじかれるので、たとえば、「CL CL」と2文字以上になって結果に影響が出ないと思われるクエリに加工するよう変更

リビジョン 20169 でコミットしました。

投稿 大野 義貴 [Web] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2614

Post Saver - Website voting and saving system - Coderepos Bookmarks (2009年5月11日 10:03)

Bookmarked your page with keywords coderepos! 続きを読む

コメントする