Fossil SCM

Add the "brief" query parameter to the "stat" page.

drh 2011-09-13 18:45 trunk
Commit d01ca14d08cdce1a40db72710dc29ce69e5daa20
1 file changed +54 -54
+54 -54
--- src/stat.c
+++ src/stat.c
@@ -30,82 +30,82 @@
3030
void stat_page(void){
3131
i64 t, fsize;
3232
int n, m;
3333
int szMax, szAvg;
3434
const char *zDb;
35
+ int brief;
3536
char zBuf[100];
3637
3738
login_check_credentials();
3839
if( !g.okRead ){ login_needed(); return; }
40
+ brief = P("brief")!=0;
3941
style_header("Repository Statistics");
4042
@ <table class="label-value">
4143
@ <tr><th>Repository&nbsp;Size:</th><td>
4244
fsize = file_size(g.zRepositoryName);
4345
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", fsize);
4446
@ %s(zBuf) bytes
4547
@ </td></tr>
46
- @ <tr><th>Number&nbsp;Of&nbsp;Artifacts:</th><td>
47
- n = db_int(0, "SELECT count(*) FROM blob");
48
- m = db_int(0, "SELECT count(*) FROM delta");
49
- @ %d(n) (stored as %d(n-m) full text and %d(m) delta blobs)
50
- @ </td></tr>
51
- if( n>0 ){
52
- int a, b;
53
- Stmt q;
54
- @ <tr><th>Uncompressed&nbsp;Artifact&nbsp;Size:</th><td>
55
- db_prepare(&q, "SELECT total(size), avg(size), max(size)"
56
- " FROM blob WHERE size>0");
57
- db_step(&q);
58
- t = db_column_int64(&q, 0);
59
- szAvg = db_column_int(&q, 1);
60
- szMax = db_column_int(&q, 2);
61
- db_finalize(&q);
62
- sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", t);
63
- @ %d(szAvg) bytes average, %d(szMax) bytes max, %s(zBuf) bytes total
64
- @ </td></tr>
65
- @ <tr><th>Compression&nbsp;Ratio:</th><td>
66
- if( t/fsize < 5 ){
67
- b = 10;
68
- fsize /= 10;
69
- }else{
70
- b = 1;
71
- }
72
- a = t/fsize;
73
- @ %d(a):%d(b)
74
- @ </td></tr>
75
- }
76
- @ <tr><th>Number&nbsp;Of&nbsp;Check-ins:</th><td>
77
- n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/");
78
- @ %d(n)
79
- @ </td></tr>
80
- @ <tr><th>Number&nbsp;Of&nbsp;Files:</th><td>
81
- n = db_int(0, "SELECT count(*) FROM filename /*scan*/");
82
- @ %d(n)
83
- @ </td></tr>
84
- @ <tr><th>Number&nbsp;Of&nbsp;Wiki&nbsp;Pages:</th><td>
85
- n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
86
- " WHERE +tagname GLOB 'wiki-*'");
87
- @ %d(n)
88
- @ </td></tr>
89
- @ <tr><th>Number&nbsp;Of&nbsp;Tickets:</th><td>
90
- n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
91
- " WHERE +tagname GLOB 'tkt-*'");
92
- @ %d(n)
93
- @ </td></tr>
48
+ if( !brief ){
49
+ @ <tr><th>Number&nbsp;Of&nbsp;Artifacts:</th><td>
50
+ n = db_int(0, "SELECT count(*) FROM blob");
51
+ m = db_int(0, "SELECT count(*) FROM delta");
52
+ @ %d(n) (stored as %d(n-m) full text and %d(m) delta blobs)
53
+ @ </td></tr>
54
+ if( n>0 ){
55
+ int a, b;
56
+ Stmt q;
57
+ @ <tr><th>Uncompressed&nbsp;Artifact&nbsp;Size:</th><td>
58
+ db_prepare(&q, "SELECT total(size), avg(size), max(size)"
59
+ " FROM blob WHERE size>0");
60
+ db_step(&q);
61
+ t = db_column_int64(&q, 0);
62
+ szAvg = db_column_int(&q, 1);
63
+ szMax = db_column_int(&q, 2);
64
+ db_finalize(&q);
65
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", t);
66
+ @ %d(szAvg) bytes average, %d(szMax) bytes max, %s(zBuf) bytes total
67
+ @ </td></tr>
68
+ @ <tr><th>Compression&nbsp;Ratio:</th><td>
69
+ if( t/fsize < 5 ){
70
+ b = 10;
71
+ fsize /= 10;
72
+ }else{
73
+ b = 1;
74
+ }
75
+ a = t/fsize;
76
+ @ %d(a):%d(b)
77
+ @ </td></tr>
78
+ }
79
+ @ <tr><th>Number&nbsp;Of&nbsp;Check-ins:</th><td>
80
+ n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/");
81
+ @ %d(n)
82
+ @ </td></tr>
83
+ @ <tr><th>Number&nbsp;Of&nbsp;Files:</th><td>
84
+ n = db_int(0, "SELECT count(*) FROM filename /*scan*/");
85
+ @ %d(n)
86
+ @ </td></tr>
87
+ @ <tr><th>Number&nbsp;Of&nbsp;Wiki&nbsp;Pages:</th><td>
88
+ n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
89
+ " WHERE +tagname GLOB 'wiki-*'");
90
+ @ %d(n)
91
+ @ </td></tr>
92
+ @ <tr><th>Number&nbsp;Of&nbsp;Tickets:</th><td>
93
+ n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
94
+ " WHERE +tagname GLOB 'tkt-*'");
95
+ @ %d(n)
96
+ @ </td></tr>
97
+ }
9498
@ <tr><th>Duration&nbsp;Of&nbsp;Project:</th><td>
9599
n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)"
96100
" + 0.99");
97101
@ %d(n) days
98102
sqlite3_snprintf(sizeof(zBuf), zBuf, "%.2f", n/365.24);
99103
@ or approximately %s(zBuf) years
100104
@ </td></tr>
101
- @ <tr><th>Project&nbsp;ID:</th><td>
102
- @ %h(db_get("project-code",""))
103
- @ </td></tr>
104
- @ <tr><th>Server&nbsp;ID:</th><td>
105
- @ %h(db_get("server-code",""))
106
- @ </td></tr>
105
+ @ <tr><th>Project&nbsp;ID:</th><td>%h(db_get("project-code",""))</td></tr>
106
+ @ <tr><th>Server&nbsp;ID:</th><td>%h(db_get("server-code",""))</td></tr>
107107
108108
@ <tr><th>Fossil&nbsp;Version:</th><td>
109109
@ %h(RELEASE_VERSION) %h(MANIFEST_DATE) %h(MANIFEST_VERSION)
110110
@ (%h(COMPILER_NAME))
111111
@ </td></tr>
112112
--- src/stat.c
+++ src/stat.c
@@ -30,82 +30,82 @@
30 void stat_page(void){
31 i64 t, fsize;
32 int n, m;
33 int szMax, szAvg;
34 const char *zDb;
 
35 char zBuf[100];
36
37 login_check_credentials();
38 if( !g.okRead ){ login_needed(); return; }
 
39 style_header("Repository Statistics");
40 @ <table class="label-value">
41 @ <tr><th>Repository&nbsp;Size:</th><td>
42 fsize = file_size(g.zRepositoryName);
43 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", fsize);
44 @ %s(zBuf) bytes
45 @ </td></tr>
46 @ <tr><th>Number&nbsp;Of&nbsp;Artifacts:</th><td>
47 n = db_int(0, "SELECT count(*) FROM blob");
48 m = db_int(0, "SELECT count(*) FROM delta");
49 @ %d(n) (stored as %d(n-m) full text and %d(m) delta blobs)
50 @ </td></tr>
51 if( n>0 ){
52 int a, b;
53 Stmt q;
54 @ <tr><th>Uncompressed&nbsp;Artifact&nbsp;Size:</th><td>
55 db_prepare(&q, "SELECT total(size), avg(size), max(size)"
56 " FROM blob WHERE size>0");
57 db_step(&q);
58 t = db_column_int64(&q, 0);
59 szAvg = db_column_int(&q, 1);
60 szMax = db_column_int(&q, 2);
61 db_finalize(&q);
62 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", t);
63 @ %d(szAvg) bytes average, %d(szMax) bytes max, %s(zBuf) bytes total
64 @ </td></tr>
65 @ <tr><th>Compression&nbsp;Ratio:</th><td>
66 if( t/fsize < 5 ){
67 b = 10;
68 fsize /= 10;
69 }else{
70 b = 1;
71 }
72 a = t/fsize;
73 @ %d(a):%d(b)
74 @ </td></tr>
75 }
76 @ <tr><th>Number&nbsp;Of&nbsp;Check-ins:</th><td>
77 n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/");
78 @ %d(n)
79 @ </td></tr>
80 @ <tr><th>Number&nbsp;Of&nbsp;Files:</th><td>
81 n = db_int(0, "SELECT count(*) FROM filename /*scan*/");
82 @ %d(n)
83 @ </td></tr>
84 @ <tr><th>Number&nbsp;Of&nbsp;Wiki&nbsp;Pages:</th><td>
85 n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
86 " WHERE +tagname GLOB 'wiki-*'");
87 @ %d(n)
88 @ </td></tr>
89 @ <tr><th>Number&nbsp;Of&nbsp;Tickets:</th><td>
90 n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
91 " WHERE +tagname GLOB 'tkt-*'");
92 @ %d(n)
93 @ </td></tr>
 
 
94 @ <tr><th>Duration&nbsp;Of&nbsp;Project:</th><td>
95 n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)"
96 " + 0.99");
97 @ %d(n) days
98 sqlite3_snprintf(sizeof(zBuf), zBuf, "%.2f", n/365.24);
99 @ or approximately %s(zBuf) years
100 @ </td></tr>
101 @ <tr><th>Project&nbsp;ID:</th><td>
102 @ %h(db_get("project-code",""))
103 @ </td></tr>
104 @ <tr><th>Server&nbsp;ID:</th><td>
105 @ %h(db_get("server-code",""))
106 @ </td></tr>
107
108 @ <tr><th>Fossil&nbsp;Version:</th><td>
109 @ %h(RELEASE_VERSION) %h(MANIFEST_DATE) %h(MANIFEST_VERSION)
110 @ (%h(COMPILER_NAME))
111 @ </td></tr>
112
--- src/stat.c
+++ src/stat.c
@@ -30,82 +30,82 @@
30 void stat_page(void){
31 i64 t, fsize;
32 int n, m;
33 int szMax, szAvg;
34 const char *zDb;
35 int brief;
36 char zBuf[100];
37
38 login_check_credentials();
39 if( !g.okRead ){ login_needed(); return; }
40 brief = P("brief")!=0;
41 style_header("Repository Statistics");
42 @ <table class="label-value">
43 @ <tr><th>Repository&nbsp;Size:</th><td>
44 fsize = file_size(g.zRepositoryName);
45 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", fsize);
46 @ %s(zBuf) bytes
47 @ </td></tr>
48 if( !brief ){
49 @ <tr><th>Number&nbsp;Of&nbsp;Artifacts:</th><td>
50 n = db_int(0, "SELECT count(*) FROM blob");
51 m = db_int(0, "SELECT count(*) FROM delta");
52 @ %d(n) (stored as %d(n-m) full text and %d(m) delta blobs)
53 @ </td></tr>
54 if( n>0 ){
55 int a, b;
56 Stmt q;
57 @ <tr><th>Uncompressed&nbsp;Artifact&nbsp;Size:</th><td>
58 db_prepare(&q, "SELECT total(size), avg(size), max(size)"
59 " FROM blob WHERE size>0");
60 db_step(&q);
61 t = db_column_int64(&q, 0);
62 szAvg = db_column_int(&q, 1);
63 szMax = db_column_int(&q, 2);
64 db_finalize(&q);
65 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", t);
66 @ %d(szAvg) bytes average, %d(szMax) bytes max, %s(zBuf) bytes total
67 @ </td></tr>
68 @ <tr><th>Compression&nbsp;Ratio:</th><td>
69 if( t/fsize < 5 ){
70 b = 10;
71 fsize /= 10;
72 }else{
73 b = 1;
74 }
75 a = t/fsize;
76 @ %d(a):%d(b)
77 @ </td></tr>
78 }
79 @ <tr><th>Number&nbsp;Of&nbsp;Check-ins:</th><td>
80 n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/");
81 @ %d(n)
82 @ </td></tr>
83 @ <tr><th>Number&nbsp;Of&nbsp;Files:</th><td>
84 n = db_int(0, "SELECT count(*) FROM filename /*scan*/");
85 @ %d(n)
86 @ </td></tr>
87 @ <tr><th>Number&nbsp;Of&nbsp;Wiki&nbsp;Pages:</th><td>
88 n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
89 " WHERE +tagname GLOB 'wiki-*'");
90 @ %d(n)
91 @ </td></tr>
92 @ <tr><th>Number&nbsp;Of&nbsp;Tickets:</th><td>
93 n = db_int(0, "SELECT count(*) FROM tag /*scan*/"
94 " WHERE +tagname GLOB 'tkt-*'");
95 @ %d(n)
96 @ </td></tr>
97 }
98 @ <tr><th>Duration&nbsp;Of&nbsp;Project:</th><td>
99 n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)"
100 " + 0.99");
101 @ %d(n) days
102 sqlite3_snprintf(sizeof(zBuf), zBuf, "%.2f", n/365.24);
103 @ or approximately %s(zBuf) years
104 @ </td></tr>
105 @ <tr><th>Project&nbsp;ID:</th><td>%h(db_get("project-code",""))</td></tr>
106 @ <tr><th>Server&nbsp;ID:</th><td>%h(db_get("server-code",""))</td></tr>
 
 
 
 
107
108 @ <tr><th>Fossil&nbsp;Version:</th><td>
109 @ %h(RELEASE_VERSION) %h(MANIFEST_DATE) %h(MANIFEST_VERSION)
110 @ (%h(COMPILER_NAME))
111 @ </td></tr>
112

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button