Fossil SCM

Add possible 'a=all' response to "fossil clean"

jan.nijtmans 2013-03-10 13:32 trunk
Commit 5f4881d421b84eba64d40d6a46fd147f915a08d2
1 file changed +8 -7
+8 -7
--- src/checkin.c
+++ src/checkin.c
@@ -424,11 +424,10 @@
424424
filename_collation());
425425
n = strlen(g.zLocalRoot);
426426
blob_init(&path, g.zLocalRoot, n-1);
427427
pIgnore = glob_create(zIgnoreFlag);
428428
vfile_scan(&path, blob_size(&path), scanFlags, pIgnore);
429
- glob_free(pIgnore);
430429
db_prepare(&q,
431430
"SELECT %Q || x FROM sfile"
432431
" WHERE x NOT IN (%s)"
433432
" ORDER BY 1",
434433
g.zLocalRoot, fossil_all_reserved_names(0)
@@ -438,25 +437,27 @@
438437
}
439438
db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
440439
while( db_step(&q)==SQLITE_ROW ){
441440
if( testFlag ){
442441
fossil_print("%s\n", db_column_text(&q,0));
443
- }else if( allFlag ){
444
- file_delete(db_column_text(&q, 0));
445
- }else{
442
+ }else if( !allFlag ){
446443
Blob ans;
447444
char cReply;
448
- char *prompt = mprintf("remove unmanaged file \"%s\" (y/N)? ",
445
+ char *prompt = mprintf("remove unmanaged file \"%s\" (a=all/y/N)? ",
449446
db_column_text(&q, 0));
450447
blob_zero(&ans);
451448
prompt_user(prompt, &ans);
452449
cReply = blob_str(&ans)[0];
453
- if( cReply=='y' || cReply=='Y' ){
454
- file_delete(db_column_text(&q, 0));
450
+ if( cReply=='a' || cReply=='A' ){
451
+ allFlag = 1;
452
+ }else if( cReply!='y' && cReply!='Y' ){
453
+ continue;
455454
}
456455
}
456
+ file_delete(db_column_text(&q, 0));
457457
}
458
+ glob_free(pIgnore);
458459
db_finalize(&q);
459460
}
460461
461462
/*
462463
** Prompt the user for a check-in or stash comment (given in pPrompt),
463464
--- src/checkin.c
+++ src/checkin.c
@@ -424,11 +424,10 @@
424 filename_collation());
425 n = strlen(g.zLocalRoot);
426 blob_init(&path, g.zLocalRoot, n-1);
427 pIgnore = glob_create(zIgnoreFlag);
428 vfile_scan(&path, blob_size(&path), scanFlags, pIgnore);
429 glob_free(pIgnore);
430 db_prepare(&q,
431 "SELECT %Q || x FROM sfile"
432 " WHERE x NOT IN (%s)"
433 " ORDER BY 1",
434 g.zLocalRoot, fossil_all_reserved_names(0)
@@ -438,25 +437,27 @@
438 }
439 db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
440 while( db_step(&q)==SQLITE_ROW ){
441 if( testFlag ){
442 fossil_print("%s\n", db_column_text(&q,0));
443 }else if( allFlag ){
444 file_delete(db_column_text(&q, 0));
445 }else{
446 Blob ans;
447 char cReply;
448 char *prompt = mprintf("remove unmanaged file \"%s\" (y/N)? ",
449 db_column_text(&q, 0));
450 blob_zero(&ans);
451 prompt_user(prompt, &ans);
452 cReply = blob_str(&ans)[0];
453 if( cReply=='y' || cReply=='Y' ){
454 file_delete(db_column_text(&q, 0));
 
 
455 }
456 }
 
457 }
 
458 db_finalize(&q);
459 }
460
461 /*
462 ** Prompt the user for a check-in or stash comment (given in pPrompt),
463
--- src/checkin.c
+++ src/checkin.c
@@ -424,11 +424,10 @@
424 filename_collation());
425 n = strlen(g.zLocalRoot);
426 blob_init(&path, g.zLocalRoot, n-1);
427 pIgnore = glob_create(zIgnoreFlag);
428 vfile_scan(&path, blob_size(&path), scanFlags, pIgnore);
 
429 db_prepare(&q,
430 "SELECT %Q || x FROM sfile"
431 " WHERE x NOT IN (%s)"
432 " ORDER BY 1",
433 g.zLocalRoot, fossil_all_reserved_names(0)
@@ -438,25 +437,27 @@
437 }
438 db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
439 while( db_step(&q)==SQLITE_ROW ){
440 if( testFlag ){
441 fossil_print("%s\n", db_column_text(&q,0));
442 }else if( !allFlag ){
 
 
443 Blob ans;
444 char cReply;
445 char *prompt = mprintf("remove unmanaged file \"%s\" (a=all/y/N)? ",
446 db_column_text(&q, 0));
447 blob_zero(&ans);
448 prompt_user(prompt, &ans);
449 cReply = blob_str(&ans)[0];
450 if( cReply=='a' || cReply=='A' ){
451 allFlag = 1;
452 }else if( cReply!='y' && cReply!='Y' ){
453 continue;
454 }
455 }
456 file_delete(db_column_text(&q, 0));
457 }
458 glob_free(pIgnore);
459 db_finalize(&q);
460 }
461
462 /*
463 ** Prompt the user for a check-in or stash comment (given in pPrompt),
464

Keyboard Shortcuts

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