]> gitweb.ps.run Git - ps-cgit/commitdiff
Merge branch 'lh/repo-scan'
authorLars Hjemli <hjemli@gmail.com>
Sun, 13 Sep 2009 20:02:07 +0000 (22:02 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sun, 13 Sep 2009 20:02:07 +0000 (22:02 +0200)
Makefile
cgit.c
cgit.css
cgit.h
cgitrc.5.txt
git
ui-commit.c
ui-log.c
ui-plain.c
ui-tree.c

index 1f9893ac81a2f81bbc40726ec6116d3fad318759..dc9dffdce0ca52f82bd310ca1ff8ba3381fd3fd7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
 CGIT_CONFIG = /etc/cgitrc
 CACHE_ROOT = /var/cache/cgit
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 1.6.3.4
+GIT_VER = 1.6.4.3
 GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
 INSTALL = install
 
diff --git a/cgit.c b/cgit.c
index 3fcca2a2d3f31ec2ae955357018f13e775bc3bbe..bd377881f669d44634767489dfb276dce3308426 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -137,6 +137,8 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.enable_log_filecount = atoi(value);
        else if (!strcmp(name, "enable-log-linecount"))
                ctx.cfg.enable_log_linecount = atoi(value);
+       else if (!strcmp(name, "enable-tree-linenumbers"))
+               ctx.cfg.enable_tree_linenumbers = atoi(value);
        else if (!strcmp(name, "max-stats"))
                ctx.cfg.max_stats = cgit_find_stats_period(value, NULL);
        else if (!strcmp(name, "cache-size"))
@@ -260,6 +262,7 @@ static void prepare_context(struct cgit_context *ctx)
        ctx->cfg.css = "/cgit.css";
        ctx->cfg.logo = "/cgit.png";
        ctx->cfg.local_time = 0;
+       ctx->cfg.enable_tree_linenumbers = 1;
        ctx->cfg.max_repo_count = 50;
        ctx->cfg.max_commit_count = 50;
        ctx->cfg.max_lock_attempts = 5;
index 3c65114edb76bf8e7381328b6facd517abfecafd..c47ebc96126b8629cd6824b0d3346aaa216d48a7 100644 (file)
--- a/cgit.css
+++ b/cgit.css
@@ -237,16 +237,16 @@ table.blob {
 }
 
 table.blob td.lines {
-       margin: 0; padding: 0;
+       margin: 0; padding: 0 0 0 0.5em;
        vertical-align: top;
        color: black;
 }
 
 table.blob td.linenumbers {
-       margin: 0; padding: 0;
+       margin: 0; padding: 0 0.5em 0 0.5em;
        vertical-align: top;
+       text-align: right;
        border-right: 1px solid gray;
-       background-color: #eee;
 }
 
 table.blob pre {
diff --git a/cgit.h b/cgit.h
index ef109aadf6a3ed07005d4c09bb8b2094b9247cc5..6c6c460f9d03108b17a0da008381d93c69f262cf 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -178,6 +178,7 @@ struct cgit_config {
        int enable_index_links;
        int enable_log_filecount;
        int enable_log_linecount;
+       int enable_tree_linenumbers;
        int local_time;
        int max_repo_count;
        int max_commit_count;
index 617b7c39a03aaa7a5bc355fc05e2ea2be1d2bf5c..4dc383de410b3f6d4cd229c870bdf920fbc8286d 100644 (file)
@@ -107,6 +107,10 @@ enable-log-linecount::
        and removed lines for each commit on the repository log page. Default
        value: "0".
 
+enable-tree-linenumbers::
+       Flag which, when set to "1", will make cgit generate linenumber links
+       for plaintext blobs printed in the tree view. Default value: "1".
+
 favicon::
        Url used as link to a shortcut icon for cgit. If specified, it is
        suggested to use the value "/favicon.ico" since certain browsers will
diff --git a/git b/git
index e276f018f2c1f0fc962fbe44a36708d1cdebada8..7fb6bcff2dece2ff9fbc5ebfe526d9b2a7e764c4 160000 (submodule)
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit e276f018f2c1f0fc962fbe44a36708d1cdebada8
+Subproject commit 7fb6bcff2dece2ff9fbc5ebfe526d9b2a7e764c4
index d6b73eed90aaf5ee232e89f5a1655c94db392577..f5b0ae553be5edfaa58a5b7fbcbef6d9a29eb776 100644 (file)
@@ -35,7 +35,7 @@ void cgit_print_commit(char *hex)
        }
        info = cgit_parse_commit(commit);
 
-       load_ref_decorations();
+       load_ref_decorations(DECORATE_FULL_REFS);
 
        html("<table summary='commit info' class='commit-info'>\n");
        html("<tr><th>author</th><td>");
index 0b37785c3c2a2c396d7cdf3fcac70cce1e20aff2..f3132c964c16a9d909ee13937bd4db670de79fde 100644 (file)
--- a/ui-log.c
+++ b/ui-log.c
@@ -161,7 +161,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
        rev.verbose_header = 1;
        rev.show_root_diff = 0;
        setup_revisions(argc, argv, &rev, NULL);
-       load_ref_decorations();
+       load_ref_decorations(DECORATE_FULL_REFS);
        rev.show_decorations = 1;
        rev.grep_filter.regflags |= REG_ICASE;
        compile_grep_patterns(&rev.grep_filter);
index 27c6daec7f1dc71bfd7b8b74c8179467a5d39224..a4ce077ac512f4735ea693967a5a0b375473bbf7 100644 (file)
@@ -60,7 +60,8 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
        if (S_ISDIR(mode))
                return READ_TREE_RECURSIVE;
 
-       if (S_ISREG(mode))
+       if (S_ISREG(mode) && !strncmp(base, match_path, baselen) &&
+           !strcmp(pathname, match_path + baselen))
                print_object(sha1, pathname);
 
        return 0;
index c608754f3e8e930169fda2ad08b7aba00a07cdb1..f53ab6414b9ad50c8f4210eaab8afc169a5c4a00 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -22,8 +22,28 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
                "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n";
 
        html("<table summary='blob content' class='blob'>\n");
+
+       if (ctx.cfg.enable_tree_linenumbers) {
+               html("<tr><td class='linenumbers'><pre>");
+               idx = 0;
+               lineno = 0;
+       
+               if (size) {
+                       htmlf(numberfmt, ++lineno);
+                       while(idx < size - 1) { // skip absolute last newline
+                               if (buf[idx] == '\n')
+                                       htmlf(numberfmt, ++lineno);
+                               idx++;
+                       }
+               }
+               html("</pre></td>\n");
+       }
+       else {
+               html("<tr>\n");
+       }
+
        if (ctx.repo->source_filter) {
-               html("<tr><td class='lines'><pre><code>");
+               html("<td class='lines'><pre><code>");
                ctx.repo->source_filter->argv[1] = xstrdup(name);
                cgit_open_filter(ctx.repo->source_filter);
                write(STDOUT_FILENO, buf, size);
@@ -32,19 +52,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
                return;
        }
 
-       html("<tr><td class='linenumbers'><pre>");
-       idx = 0;
-       lineno = 0;
-
-       if (size) {
-               htmlf(numberfmt, ++lineno);
-               while(idx < size - 1) { // skip absolute last newline
-                       if (buf[idx] == '\n')
-                               htmlf(numberfmt, ++lineno);
-                       idx++;
-               }
-       }
-       html("</pre></td>\n");
        html("<td class='lines'><pre><code>");
        html_txt(buf);
        html("</code></pre></td></tr></table>\n");