Fossil SCM

Merging aku's changes into the head.

drh 2007-08-25 19:00 trunk merge
Commit b0ad3f90bc4f389747c4740629e2488b92e72d84
--- src/descendents.c
+++ src/descendents.c
@@ -82,11 +82,12 @@
8282
base = name_to_rid(g.argv[2]);
8383
}
8484
if( base==0 ) return;
8585
compute_leaves(base);
8686
db_prepare(&q,
87
- "SELECT uuid, datetime(event.mtime,'localtime'), comment"
87
+ "SELECT blob.rid, uuid, datetime(event.mtime,'localtime'), comment, 0,"
88
+ " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
8889
" FROM leaves, blob, event"
8990
" WHERE blob.rid=leaves.rid"
9091
" AND event.objid=leaves.rid"
9192
" ORDER BY event.mtime DESC"
9293
);
@@ -103,11 +104,13 @@
103104
void branches_cmd(void){
104105
Stmt q;
105106
106107
db_must_be_within_tree();
107108
db_prepare(&q,
108
- "SELECT blob.uuid, datetime(event.mtime,'localtime'), event.comment"
109
+ "SELECT blob.rid, blob.uuid, datetime(event.mtime,'localtime'),"
110
+ " event.comment, 0,"
111
+ " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
109112
" FROM blob, event"
110113
" WHERE blob.rid IN"
111114
" (SELECT cid FROM plink EXCEPT SELECT pid FROM plink)"
112115
" AND event.objid=blob.rid"
113116
" ORDER BY event.mtime DESC"
114117
--- src/descendents.c
+++ src/descendents.c
@@ -82,11 +82,12 @@
82 base = name_to_rid(g.argv[2]);
83 }
84 if( base==0 ) return;
85 compute_leaves(base);
86 db_prepare(&q,
87 "SELECT uuid, datetime(event.mtime,'localtime'), comment"
 
88 " FROM leaves, blob, event"
89 " WHERE blob.rid=leaves.rid"
90 " AND event.objid=leaves.rid"
91 " ORDER BY event.mtime DESC"
92 );
@@ -103,11 +104,13 @@
103 void branches_cmd(void){
104 Stmt q;
105
106 db_must_be_within_tree();
107 db_prepare(&q,
108 "SELECT blob.uuid, datetime(event.mtime,'localtime'), event.comment"
 
 
109 " FROM blob, event"
110 " WHERE blob.rid IN"
111 " (SELECT cid FROM plink EXCEPT SELECT pid FROM plink)"
112 " AND event.objid=blob.rid"
113 " ORDER BY event.mtime DESC"
114
--- src/descendents.c
+++ src/descendents.c
@@ -82,11 +82,12 @@
82 base = name_to_rid(g.argv[2]);
83 }
84 if( base==0 ) return;
85 compute_leaves(base);
86 db_prepare(&q,
87 "SELECT blob.rid, uuid, datetime(event.mtime,'localtime'), comment, 0,"
88 " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
89 " FROM leaves, blob, event"
90 " WHERE blob.rid=leaves.rid"
91 " AND event.objid=leaves.rid"
92 " ORDER BY event.mtime DESC"
93 );
@@ -103,11 +104,13 @@
104 void branches_cmd(void){
105 Stmt q;
106
107 db_must_be_within_tree();
108 db_prepare(&q,
109 "SELECT blob.rid, blob.uuid, datetime(event.mtime,'localtime'),"
110 " event.comment, 0,"
111 " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
112 " FROM blob, event"
113 " WHERE blob.rid IN"
114 " (SELECT cid FROM plink EXCEPT SELECT pid FROM plink)"
115 " AND event.objid=blob.rid"
116 " ORDER BY event.mtime DESC"
117
+25 -6
--- src/timeline.c
+++ src/timeline.c
@@ -163,13 +163,16 @@
163163
int nLine = 0;
164164
char zPrevDate[20];
165165
zPrevDate[0] = 0;
166166
167167
while( db_step(q)==SQLITE_ROW && nLine<=mxLine ){
168
- const char *zId = db_column_text(q, 0);
169
- const char *zDate = db_column_text(q, 1);
170
- const char *zCom = db_column_text(q, 2);
168
+ const char *zId = db_column_text(q, 1);
169
+ const char *zDate = db_column_text(q, 2);
170
+ const char *zCom = db_column_text(q, 3);
171
+ int nChild = db_column_int(q, 4);
172
+ int nParent = db_column_int(q, 5);
173
+ char *zFree = 0;
171174
char zUuid[UUID_SIZE+1];
172175
173176
sprintf(zUuid, "%.10s", zId);
174177
if( memcmp(zDate, zPrevDate, 10) ){
175178
printf("=== %.10s ===\n", zDate);
@@ -176,11 +179,25 @@
176179
memcpy(zPrevDate, zDate, 10);
177180
nLine++;
178181
}
179182
if( zCom==0 ) zCom = "";
180183
printf("%.5s [%.10s] ", &zDate[11], zUuid);
184
+ if( nChild>1 || nParent>1 ){
185
+ int n = 0;
186
+ char zPrefix[50];
187
+ if( nParent>1 ){
188
+ sqlite3_snprintf(sizeof(zPrefix), zPrefix, "*MERGE* ");
189
+ n = strlen(zPrefix);
190
+ }
191
+ if( nChild>1 ){
192
+ sqlite3_snprintf(sizeof(zPrefix)-n, &zPrefix[n], "*FORK* ");
193
+ n = strlen(zPrefix);
194
+ }
195
+ zCom = zFree = sqlite3_mprintf("%s%s", zPrefix, zCom);
196
+ }
181197
nLine += comment_print(zCom, 19, 79);
198
+ sqlite3_free(zFree);
182199
}
183200
}
184201
185202
186203
/*
@@ -197,11 +214,11 @@
197214
** Times are according to the local timezone.
198215
*/
199216
void timeline_cmd(void){
200217
Stmt q;
201218
int n;
202
- char *zCount;
219
+ const char *zCount;
203220
char *zDate;
204221
db_find_and_open_repository();
205222
zCount = find_option("n","count",1);
206223
if( zCount ){
207224
n = atoi(zCount);
@@ -215,15 +232,17 @@
215232
zDate = g.argv[2];
216233
}else{
217234
zDate = "now";
218235
}
219236
db_prepare(&q,
220
- "SELECT uuid, datetime(event.mtime,'localtime'),"
221
- " comment || ' (by ' || user || ')'"
237
+ "SELECT blob.rid, uuid, datetime(event.mtime,'localtime'),"
238
+ " comment || ' (by ' || user || ')',"
239
+ " (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),"
240
+ " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
222241
" FROM event, blob"
223242
" WHERE event.type='ci' AND blob.rid=event.objid"
224243
" AND event.mtime<=(SELECT julianday(%Q,'utc'))"
225244
" ORDER BY event.mtime DESC", zDate
226245
);
227246
print_timeline(&q, n);
228247
db_finalize(&q);
229248
}
230249
--- src/timeline.c
+++ src/timeline.c
@@ -163,13 +163,16 @@
163 int nLine = 0;
164 char zPrevDate[20];
165 zPrevDate[0] = 0;
166
167 while( db_step(q)==SQLITE_ROW && nLine<=mxLine ){
168 const char *zId = db_column_text(q, 0);
169 const char *zDate = db_column_text(q, 1);
170 const char *zCom = db_column_text(q, 2);
 
 
 
171 char zUuid[UUID_SIZE+1];
172
173 sprintf(zUuid, "%.10s", zId);
174 if( memcmp(zDate, zPrevDate, 10) ){
175 printf("=== %.10s ===\n", zDate);
@@ -176,11 +179,25 @@
176 memcpy(zPrevDate, zDate, 10);
177 nLine++;
178 }
179 if( zCom==0 ) zCom = "";
180 printf("%.5s [%.10s] ", &zDate[11], zUuid);
 
 
 
 
 
 
 
 
 
 
 
 
 
181 nLine += comment_print(zCom, 19, 79);
 
182 }
183 }
184
185
186 /*
@@ -197,11 +214,11 @@
197 ** Times are according to the local timezone.
198 */
199 void timeline_cmd(void){
200 Stmt q;
201 int n;
202 char *zCount;
203 char *zDate;
204 db_find_and_open_repository();
205 zCount = find_option("n","count",1);
206 if( zCount ){
207 n = atoi(zCount);
@@ -215,15 +232,17 @@
215 zDate = g.argv[2];
216 }else{
217 zDate = "now";
218 }
219 db_prepare(&q,
220 "SELECT uuid, datetime(event.mtime,'localtime'),"
221 " comment || ' (by ' || user || ')'"
 
 
222 " FROM event, blob"
223 " WHERE event.type='ci' AND blob.rid=event.objid"
224 " AND event.mtime<=(SELECT julianday(%Q,'utc'))"
225 " ORDER BY event.mtime DESC", zDate
226 );
227 print_timeline(&q, n);
228 db_finalize(&q);
229 }
230
--- src/timeline.c
+++ src/timeline.c
@@ -163,13 +163,16 @@
163 int nLine = 0;
164 char zPrevDate[20];
165 zPrevDate[0] = 0;
166
167 while( db_step(q)==SQLITE_ROW && nLine<=mxLine ){
168 const char *zId = db_column_text(q, 1);
169 const char *zDate = db_column_text(q, 2);
170 const char *zCom = db_column_text(q, 3);
171 int nChild = db_column_int(q, 4);
172 int nParent = db_column_int(q, 5);
173 char *zFree = 0;
174 char zUuid[UUID_SIZE+1];
175
176 sprintf(zUuid, "%.10s", zId);
177 if( memcmp(zDate, zPrevDate, 10) ){
178 printf("=== %.10s ===\n", zDate);
@@ -176,11 +179,25 @@
179 memcpy(zPrevDate, zDate, 10);
180 nLine++;
181 }
182 if( zCom==0 ) zCom = "";
183 printf("%.5s [%.10s] ", &zDate[11], zUuid);
184 if( nChild>1 || nParent>1 ){
185 int n = 0;
186 char zPrefix[50];
187 if( nParent>1 ){
188 sqlite3_snprintf(sizeof(zPrefix), zPrefix, "*MERGE* ");
189 n = strlen(zPrefix);
190 }
191 if( nChild>1 ){
192 sqlite3_snprintf(sizeof(zPrefix)-n, &zPrefix[n], "*FORK* ");
193 n = strlen(zPrefix);
194 }
195 zCom = zFree = sqlite3_mprintf("%s%s", zPrefix, zCom);
196 }
197 nLine += comment_print(zCom, 19, 79);
198 sqlite3_free(zFree);
199 }
200 }
201
202
203 /*
@@ -197,11 +214,11 @@
214 ** Times are according to the local timezone.
215 */
216 void timeline_cmd(void){
217 Stmt q;
218 int n;
219 const char *zCount;
220 char *zDate;
221 db_find_and_open_repository();
222 zCount = find_option("n","count",1);
223 if( zCount ){
224 n = atoi(zCount);
@@ -215,15 +232,17 @@
232 zDate = g.argv[2];
233 }else{
234 zDate = "now";
235 }
236 db_prepare(&q,
237 "SELECT blob.rid, uuid, datetime(event.mtime,'localtime'),"
238 " comment || ' (by ' || user || ')',"
239 " (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),"
240 " (SELECT count(*) FROM plink WHERE cid=blob.rid)"
241 " FROM event, blob"
242 " WHERE event.type='ci' AND blob.rid=event.objid"
243 " AND event.mtime<=(SELECT julianday(%Q,'utc'))"
244 " ORDER BY event.mtime DESC", zDate
245 );
246 print_timeline(&q, n);
247 db_finalize(&q);
248 }
249
+1 -1
--- src/xfer.c
+++ src/xfer.c
@@ -90,11 +90,11 @@
9090
9191
if( pXfer->nToken<3
9292
|| pXfer->nToken>4
9393
|| !blob_is_uuid(&pXfer->aToken[1])
9494
|| !blob_is_int(&pXfer->aToken[pXfer->nToken-1], &n)
95
- || n<=0
95
+ || n<0
9696
|| (pXfer->nToken==4 && !blob_is_uuid(&pXfer->aToken[2]))
9797
){
9898
blob_appendf(&pXfer->err, "malformed file line");
9999
return;
100100
}
101101
--- src/xfer.c
+++ src/xfer.c
@@ -90,11 +90,11 @@
90
91 if( pXfer->nToken<3
92 || pXfer->nToken>4
93 || !blob_is_uuid(&pXfer->aToken[1])
94 || !blob_is_int(&pXfer->aToken[pXfer->nToken-1], &n)
95 || n<=0
96 || (pXfer->nToken==4 && !blob_is_uuid(&pXfer->aToken[2]))
97 ){
98 blob_appendf(&pXfer->err, "malformed file line");
99 return;
100 }
101
--- src/xfer.c
+++ src/xfer.c
@@ -90,11 +90,11 @@
90
91 if( pXfer->nToken<3
92 || pXfer->nToken>4
93 || !blob_is_uuid(&pXfer->aToken[1])
94 || !blob_is_int(&pXfer->aToken[pXfer->nToken-1], &n)
95 || n<0
96 || (pXfer->nToken==4 && !blob_is_uuid(&pXfer->aToken[2]))
97 ){
98 blob_appendf(&pXfer->err, "malformed file line");
99 return;
100 }
101

Keyboard Shortcuts

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