Fossil SCM

With fossil commit -v, indicate added or deleted files in diff output, too.

preben 2023-10-05 14:09 diff-deleted-files
Commit 30559adbaf2ccc056d0e36d0a56a639bda38640e90a50f0dcb1338bcc7ece0db
1 file changed +16 -2
+16 -2
--- src/checkin.c
+++ src/checkin.c
@@ -1365,17 +1365,31 @@
13651365
'#'
13661366
);
13671367
diff_options(&DCfg, 0, 1);
13681368
DCfg.diffFlags |= DIFF_VERBOSE;
13691369
if( g.aCommitFile ){
1370
+ Stmt q;
1371
+ Blob sql = BLOB_INITIALIZER;
13701372
FileDirList *diffFiles;
13711373
int i;
13721374
for(i=0; g.aCommitFile[i]!=0; ++i){}
13731375
diffFiles = fossil_malloc_zero((i+1) * sizeof(*diffFiles));
13741376
for(i=0; g.aCommitFile[i]!=0; ++i){
1375
- diffFiles[i].zName = db_text(0,
1376
- "SELECT pathname FROM vfile WHERE id=%d", g.aCommitFile[i]);
1377
+ blob_append_sql(&sql,
1378
+ "SELECT pathname, deleted, rid WHERE id=%d",
1379
+ g.aCommitFile[i]);
1380
+ db_prepare(&q, "%s", blob_sql_text(&sql));
1381
+ blob_reset(&sql);
1382
+ assert( db_step(&q)==SQLITE_ROW );
1383
+ diffFiles[i].zName = fossil_strdup(db_column_text(&q, 0));
1384
+ DCfg.diffFlags &= (~DIFF_FILE_MASK);
1385
+ if( db_column_int(&q, 1) ){
1386
+ DCfg.diffFlags |= DIFF_FILE_DELETED;
1387
+ }else if( db_column_int(&q, 2)==0 ){
1388
+ DCfg.diffFlags |= DIFF_FILE_ADDED;
1389
+ }
1390
+ db_finalize(&q);
13771391
if( fossil_strcmp(diffFiles[i].zName, "." )==0 ){
13781392
diffFiles[0].zName[0] = '.';
13791393
diffFiles[0].zName[1] = 0;
13801394
break;
13811395
}
13821396
--- src/checkin.c
+++ src/checkin.c
@@ -1365,17 +1365,31 @@
1365 '#'
1366 );
1367 diff_options(&DCfg, 0, 1);
1368 DCfg.diffFlags |= DIFF_VERBOSE;
1369 if( g.aCommitFile ){
 
 
1370 FileDirList *diffFiles;
1371 int i;
1372 for(i=0; g.aCommitFile[i]!=0; ++i){}
1373 diffFiles = fossil_malloc_zero((i+1) * sizeof(*diffFiles));
1374 for(i=0; g.aCommitFile[i]!=0; ++i){
1375 diffFiles[i].zName = db_text(0,
1376 "SELECT pathname FROM vfile WHERE id=%d", g.aCommitFile[i]);
 
 
 
 
 
 
 
 
 
 
 
 
1377 if( fossil_strcmp(diffFiles[i].zName, "." )==0 ){
1378 diffFiles[0].zName[0] = '.';
1379 diffFiles[0].zName[1] = 0;
1380 break;
1381 }
1382
--- src/checkin.c
+++ src/checkin.c
@@ -1365,17 +1365,31 @@
1365 '#'
1366 );
1367 diff_options(&DCfg, 0, 1);
1368 DCfg.diffFlags |= DIFF_VERBOSE;
1369 if( g.aCommitFile ){
1370 Stmt q;
1371 Blob sql = BLOB_INITIALIZER;
1372 FileDirList *diffFiles;
1373 int i;
1374 for(i=0; g.aCommitFile[i]!=0; ++i){}
1375 diffFiles = fossil_malloc_zero((i+1) * sizeof(*diffFiles));
1376 for(i=0; g.aCommitFile[i]!=0; ++i){
1377 blob_append_sql(&sql,
1378 "SELECT pathname, deleted, rid WHERE id=%d",
1379 g.aCommitFile[i]);
1380 db_prepare(&q, "%s", blob_sql_text(&sql));
1381 blob_reset(&sql);
1382 assert( db_step(&q)==SQLITE_ROW );
1383 diffFiles[i].zName = fossil_strdup(db_column_text(&q, 0));
1384 DCfg.diffFlags &= (~DIFF_FILE_MASK);
1385 if( db_column_int(&q, 1) ){
1386 DCfg.diffFlags |= DIFF_FILE_DELETED;
1387 }else if( db_column_int(&q, 2)==0 ){
1388 DCfg.diffFlags |= DIFF_FILE_ADDED;
1389 }
1390 db_finalize(&q);
1391 if( fossil_strcmp(diffFiles[i].zName, "." )==0 ){
1392 diffFiles[0].zName[0] = '.';
1393 diffFiles[0].zName[1] = 0;
1394 break;
1395 }
1396

Keyboard Shortcuts

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