@@ -1239,15 +1239,17 @@
1239 1239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2. Date/Time
1240 1240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 3. Comment string and user
1241 1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 4. Number of non-merge children
1242 1242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 5. Number of parents
1243 1243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void print_timeline(Stmt *q, int mxLine){
1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void print_timeline(Stmt *q, int mxLine, int showfiles){
1245 1245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nLine = 0;
1246 1246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zPrevDate[20];
1247 1247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCurrentUuid=0;
1248 1248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPrevDate[0] = 0;
1249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int fchngQueryInit = 0; /* True if fchngQuery is initialized */
1250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Stmt fchngQuery; /* Query for file changes on check-ins */
1249 1251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1250 1252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.localOpen ){
1251 1253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid = db_lget_int("checkout", 0);
1252 1254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCurrentUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
1253 1255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1292,11 +1294,45 @@
1292 1294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n += strlen(zPrefix);
1293 1295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1294 1296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFree = sqlite3_mprintf("[%.10s] %s%s", zUuid, zPrefix, zCom);
1295 1297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nLine += comment_print(zFree, 9, 79);
1296 1298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(zFree);
1299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(showfiles){
1301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int inUl = 0;
1302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !fchngQueryInit ){
1303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&fchngQuery,
1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT (pid==0) AS isnew,"
1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " (fid==0) AS isdel,"
1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " (SELECT uuid FROM blob WHERE rid=fid),"
1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " (SELECT uuid FROM blob WHERE rid=pid)"
1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " FROM mlink"
1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE mid=:mid AND pid!=fid"
1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ORDER BY 3 /*sort*/"
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fchngQueryInit = 1;
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_bind_int(&fchngQuery, ":mid", rid);
1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( db_step(&fchngQuery)==SQLITE_ROW ){
1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFilename = db_column_text(&fchngQuery, 2);
1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isNew = db_column_int(&fchngQuery, 0);
1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isDel = db_column_int(&fchngQuery, 1);
1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zOld = db_column_text(&fchngQuery, 4);
1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zNew = db_column_text(&fchngQuery, 3);
1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isNew ){
1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print(" ADDED %s\n",zFilename);
1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( isDel ){
1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print(" DELETED %s\n",zFilename);
1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print(" EDITED %s\n", zFilename);
1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_reset(&fchngQuery);
1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1297 1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fchngQueryInit ) db_finalize(&fchngQuery);
1298 1334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1299 1335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1300 1336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1301 1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return a pointer to a static string that forms the basis for
1302 1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a timeline query for display on a TTY.
@@ -1337,11 +1373,11 @@
1337 1373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1338 1374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1339 1375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1340 1376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: timeline
1341 1377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: %fossil timeline ?WHEN? ?BASELINE|DATETIME? ?-n N? ?-t TYPE?
1378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: %fossil timeline ?WHEN? ?BASELINE|DATETIME? ?-n N? ?-t TYPE? ?-showfiles?
1343 1379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1344 1380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Print a summary of activity going backwards in date and time
1345 1381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** specified or from the current date and time if no arguments
1346 1382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** are given. Show as many as N (default 20) check-ins. The
1347 1383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WHEN argument can be any unique abbreviation of one of these
@@ -1361,10 +1397,14 @@
1361 1397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page. For example:
1362 1398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1363 1399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** w = wiki commits only
1364 1400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ci = file commits only
1365 1401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** t = tickets only
1402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The optional showfiles argument if specified prints the list of
1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** files changed in a checkin after the checkin comment
1405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1366 1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1367 1407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void timeline_cmd(void){
1368 1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
1369 1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n, k;
1370 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCount;
@@ -1373,10 +1413,12 @@
1373 1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zDate;
1374 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob sql;
1375 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int objid = 0;
1376 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob uuid;
1377 1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mode = 0 ; /* 0:none 1: before 2:after 3:children 4:parents */
1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int showfilesFlag = 0 ;
1419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ showfilesFlag = find_option("showfiles","f", 0)!=0;
1378 1420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_find_and_open_repository(0, 0);
1379 1421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCount = find_option("count","n",1);
1380 1422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zType = find_option("type","t",1);
1381 1423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zCount ){
1382 1424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = atoi(zCount);
@@ -1399,13 +1441,13 @@
1399 1441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mode = 4;
1400 1442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if(!zType && !zCount){
1401 1443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
usage("?WHEN? ?BASELINE|DATETIME? ?-n|--count N? ?-t TYPE?");
1402 1444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1403 1445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( '-' != *g.argv[3] ){
1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zOrigin = g.argv[3];
1446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zOrigin = g.argv[3];
1405 1447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zOrigin = "now";
1448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zOrigin = "now";
1407 1449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1408 1450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( g.argc==3 ){
1409 1451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOrigin = g.argv[2];
1410 1452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1411 1453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOrigin = "now";
@@ -1459,11 +1501,11 @@
1459 1501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1460 1502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1461 1503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, " ORDER BY event.mtime DESC");
1462 1504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, blob_str(&sql));
1463 1505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&sql);
1464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- print_timeline(&q, n);
1506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ print_timeline(&q, n, showfilesFlag);
1465 1507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
1466 1508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1467 1509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1468 1510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1469 1511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This is a version of the "localtime()" function from the standard
1470 1512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!