Fossil SCM

Add --clean option and clean-glob for use by the clean command. Restore previous meaning of the ignore-glob setting.

mistachkin 2013-05-07 20:52 trunk
Commit b7afa9728b3b9f6c000adf4b88555ec3ac3c83fd
--- a/.fossil-settings/clean-glob
+++ b/.fossil-settings/clean-glob
@@ -0,0 +1,6 @@
1
+*.a
2
+*.lib
3
+*.o
4
+
5
+autoconfig.h
6
+co
--- a/.fossil-settings/clean-glob
+++ b/.fossil-settings/clean-glob
@@ -0,0 +1,6 @@
 
 
 
 
 
 
--- a/.fossil-settings/clean-glob
+++ b/.fossil-settings/clean-glob
@@ -0,0 +1,6 @@
1 *.a
2 *.lib
3 *.o
4
5 autoconfig.h
6 co
D .fossil-settings/ignore-glob
-6
--- a/.fossil-settings/ignore-glob
+++ b/.fossil-settings/ignore-glob
@@ -1,6 +0,0 @@
1
-*.a
2
-*.lib
3
-*.o
4
-
5
-autoconfig.h
6
-co
--- a/.fossil-settings/ignore-glob
+++ b/.fossil-settings/ignore-glob
@@ -1,6 +0,0 @@
1 *.a
2 *.lib
3 *.o
4
5 autoconfig.h
6 co
--- a/.fossil-settings/ignore-glob
+++ b/.fossil-settings/ignore-glob
@@ -1,6 +0,0 @@
 
 
 
 
 
 
+26 -17
--- src/checkin.c
+++ src/checkin.c
@@ -380,28 +380,31 @@
380380
**
381381
** Delete all "extra" files in the source tree. "Extra" files are
382382
** files that are not officially part of the checkout. This operation
383383
** cannot be undone.
384384
**
385
-** You will be prompted before removing each file, except for files
386
-** matching the patterns specified with --ignore and --keep. The GLOBPATTERN
387
-** specified by the "ignore-glob" setting is used if the --ignore
388
-** option is omitted, the same with "keep-glob" and --keep. If you are
389
-** sure you wish to remove all "extra" files except the ones specified
390
-** with --keep, you can specify the optional -f|--force flag and no prompts
391
-** will be issued. If any file matches both --keep and --ignore, --keep
392
-** takes precedence.
385
+** You will be prompted before removing each eligible file unless the
386
+** --force flag is in use or it matches the --clean option. The
387
+** GLOBPATTERN specified by the "ignore-glob" setting is used if the
388
+** --ignore option is omitted, the same with "clean-glob" and --clean
389
+** as well as "keep-glob" and --keep. If you are sure you wish to
390
+** remove all "extra" files except the ones specified with --ignore
391
+** and --keep, you can specify the optional -f|--force flag and no
392
+** prompts will be issued. If a file matches both --keep and --clean,
393
+** --keep takes precedence.
393394
**
394395
** Files and subdirectories whose names begin with "." are
395396
** normally kept. They are handled if the "--dotfiles" option
396397
** is used.
397398
**
398399
** Options:
399400
** --case-sensitive <BOOL> override case-sensitive setting
400401
** --dotfiles include files beginning with a dot (".")
401402
** -f|--force Remove files without prompting
402
-** --ignore <CSG> don't prompt for files matching this
403
+** --clean <CSG> never prompt for files matching this
404
+** comma separated list of glob patterns.
405
+** --ignore <CSG> ignore files matching patterns from the
403406
** comma separated list of glob patterns.
404407
** --keep <CSG> keep files matching this comma separated
405408
** list of glob patterns.
406409
** -n|--dry-run If given, display instead of run actions
407410
** --temp Remove only Fossil-generated temporary files
@@ -409,15 +412,15 @@
409412
** See also: addremove, extra, status
410413
*/
411414
void clean_cmd(void){
412415
int allFlag;
413416
unsigned scanFlags = 0;
414
- const char *zIgnoreFlag, *zKeepFlag;
417
+ const char *zIgnoreFlag, *zKeepFlag, *zCleanFlag;
415418
Blob path, repo;
416419
Stmt q;
417420
int n;
418
- Glob *pIgnore, *pKeep;
421
+ Glob *pIgnore, *pKeep, *pClean;
419422
int dryRunFlag = 0;
420423
421424
allFlag = find_option("force","f",0)!=0;
422425
if( find_option("dotfiles",0,0)!=0 ) scanFlags |= SCAN_ALL;
423426
if( find_option("temp",0,0)!=0 ) scanFlags |= SCAN_TEMP;
@@ -425,24 +428,29 @@
425428
dryRunFlag = find_option("dry-run","n",0)!=0;
426429
if( !dryRunFlag ){
427430
dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
428431
}
429432
zKeepFlag = find_option("keep",0,1);
433
+ zCleanFlag = find_option("clean",0,1);
430434
capture_case_sensitive_option();
431435
db_must_be_within_tree();
432436
if( zIgnoreFlag==0 ){
433437
zIgnoreFlag = db_get("ignore-glob", 0);
434438
}
435439
if( zKeepFlag==0 ){
436440
zKeepFlag = db_get("keep-glob", 0);
437441
}
442
+ if( zCleanFlag==0 ){
443
+ zCleanFlag = db_get("clean-glob", 0);
444
+ }
438445
db_multi_exec("CREATE TEMP TABLE sfile(x TEXT PRIMARY KEY %s)",
439446
filename_collation());
440447
n = strlen(g.zLocalRoot);
441448
blob_init(&path, g.zLocalRoot, n-1);
442449
pIgnore = glob_create(zIgnoreFlag);
443450
pKeep = glob_create(zKeepFlag);
451
+ pClean = glob_create(zCleanFlag);
444452
vfile_scan(&path, blob_size(&path), scanFlags, pKeep);
445453
glob_free(pKeep);
446454
db_prepare(&q,
447455
"SELECT %Q || x FROM sfile"
448456
" WHERE x NOT IN (%s)"
@@ -453,18 +461,16 @@
453461
db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo);
454462
}
455463
db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
456464
while( db_step(&q)==SQLITE_ROW ){
457465
const char *zName = db_column_text(&q, 0);
458
- if( dryRunFlag ){
459
- fossil_print("%s\n", db_column_text(&q,0));
460
- continue;
461
- }else if( !allFlag && !glob_match(pIgnore, zName+n) ){
466
+ if( glob_match(pIgnore, zName+n) ) continue;
467
+ if( !allFlag && !glob_match(pClean, zName+n) ){
462468
Blob ans;
463469
char cReply;
464470
char *prompt = mprintf("remove unmanaged file \"%s\" (a=all/y/N)? ",
465
- zName+n);
471
+ zName+n);
466472
blob_zero(&ans);
467473
prompt_user(prompt, &ans);
468474
cReply = blob_str(&ans)[0];
469475
if( cReply=='a' || cReply=='A' ){
470476
allFlag = 1;
@@ -471,12 +477,15 @@
471477
}else if( cReply!='y' && cReply!='Y' ){
472478
continue;
473479
}
474480
}
475481
fossil_print("removed unmanaged file \"%s\"\n", zName+n);
476
- file_delete(zName);
482
+ if( !dryRunFlag ){
483
+ file_delete(zName);
484
+ }
477485
}
486
+ glob_free(pClean);
478487
glob_free(pIgnore);
479488
db_finalize(&q);
480489
}
481490
482491
/*
483492
--- src/checkin.c
+++ src/checkin.c
@@ -380,28 +380,31 @@
380 **
381 ** Delete all "extra" files in the source tree. "Extra" files are
382 ** files that are not officially part of the checkout. This operation
383 ** cannot be undone.
384 **
385 ** You will be prompted before removing each file, except for files
386 ** matching the patterns specified with --ignore and --keep. The GLOBPATTERN
387 ** specified by the "ignore-glob" setting is used if the --ignore
388 ** option is omitted, the same with "keep-glob" and --keep. If you are
389 ** sure you wish to remove all "extra" files except the ones specified
390 ** with --keep, you can specify the optional -f|--force flag and no prompts
391 ** will be issued. If any file matches both --keep and --ignore, --keep
392 ** takes precedence.
 
393 **
394 ** Files and subdirectories whose names begin with "." are
395 ** normally kept. They are handled if the "--dotfiles" option
396 ** is used.
397 **
398 ** Options:
399 ** --case-sensitive <BOOL> override case-sensitive setting
400 ** --dotfiles include files beginning with a dot (".")
401 ** -f|--force Remove files without prompting
402 ** --ignore <CSG> don't prompt for files matching this
 
 
403 ** comma separated list of glob patterns.
404 ** --keep <CSG> keep files matching this comma separated
405 ** list of glob patterns.
406 ** -n|--dry-run If given, display instead of run actions
407 ** --temp Remove only Fossil-generated temporary files
@@ -409,15 +412,15 @@
409 ** See also: addremove, extra, status
410 */
411 void clean_cmd(void){
412 int allFlag;
413 unsigned scanFlags = 0;
414 const char *zIgnoreFlag, *zKeepFlag;
415 Blob path, repo;
416 Stmt q;
417 int n;
418 Glob *pIgnore, *pKeep;
419 int dryRunFlag = 0;
420
421 allFlag = find_option("force","f",0)!=0;
422 if( find_option("dotfiles",0,0)!=0 ) scanFlags |= SCAN_ALL;
423 if( find_option("temp",0,0)!=0 ) scanFlags |= SCAN_TEMP;
@@ -425,24 +428,29 @@
425 dryRunFlag = find_option("dry-run","n",0)!=0;
426 if( !dryRunFlag ){
427 dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
428 }
429 zKeepFlag = find_option("keep",0,1);
 
430 capture_case_sensitive_option();
431 db_must_be_within_tree();
432 if( zIgnoreFlag==0 ){
433 zIgnoreFlag = db_get("ignore-glob", 0);
434 }
435 if( zKeepFlag==0 ){
436 zKeepFlag = db_get("keep-glob", 0);
437 }
 
 
 
438 db_multi_exec("CREATE TEMP TABLE sfile(x TEXT PRIMARY KEY %s)",
439 filename_collation());
440 n = strlen(g.zLocalRoot);
441 blob_init(&path, g.zLocalRoot, n-1);
442 pIgnore = glob_create(zIgnoreFlag);
443 pKeep = glob_create(zKeepFlag);
 
444 vfile_scan(&path, blob_size(&path), scanFlags, pKeep);
445 glob_free(pKeep);
446 db_prepare(&q,
447 "SELECT %Q || x FROM sfile"
448 " WHERE x NOT IN (%s)"
@@ -453,18 +461,16 @@
453 db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo);
454 }
455 db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
456 while( db_step(&q)==SQLITE_ROW ){
457 const char *zName = db_column_text(&q, 0);
458 if( dryRunFlag ){
459 fossil_print("%s\n", db_column_text(&q,0));
460 continue;
461 }else if( !allFlag && !glob_match(pIgnore, zName+n) ){
462 Blob ans;
463 char cReply;
464 char *prompt = mprintf("remove unmanaged file \"%s\" (a=all/y/N)? ",
465 zName+n);
466 blob_zero(&ans);
467 prompt_user(prompt, &ans);
468 cReply = blob_str(&ans)[0];
469 if( cReply=='a' || cReply=='A' ){
470 allFlag = 1;
@@ -471,12 +477,15 @@
471 }else if( cReply!='y' && cReply!='Y' ){
472 continue;
473 }
474 }
475 fossil_print("removed unmanaged file \"%s\"\n", zName+n);
476 file_delete(zName);
 
 
477 }
 
478 glob_free(pIgnore);
479 db_finalize(&q);
480 }
481
482 /*
483
--- src/checkin.c
+++ src/checkin.c
@@ -380,28 +380,31 @@
380 **
381 ** Delete all "extra" files in the source tree. "Extra" files are
382 ** files that are not officially part of the checkout. This operation
383 ** cannot be undone.
384 **
385 ** You will be prompted before removing each eligible file unless the
386 ** --force flag is in use or it matches the --clean option. The
387 ** GLOBPATTERN specified by the "ignore-glob" setting is used if the
388 ** --ignore option is omitted, the same with "clean-glob" and --clean
389 ** as well as "keep-glob" and --keep. If you are sure you wish to
390 ** remove all "extra" files except the ones specified with --ignore
391 ** and --keep, you can specify the optional -f|--force flag and no
392 ** prompts will be issued. If a file matches both --keep and --clean,
393 ** --keep takes precedence.
394 **
395 ** Files and subdirectories whose names begin with "." are
396 ** normally kept. They are handled if the "--dotfiles" option
397 ** is used.
398 **
399 ** Options:
400 ** --case-sensitive <BOOL> override case-sensitive setting
401 ** --dotfiles include files beginning with a dot (".")
402 ** -f|--force Remove files without prompting
403 ** --clean <CSG> never prompt for files matching this
404 ** comma separated list of glob patterns.
405 ** --ignore <CSG> ignore files matching patterns from the
406 ** comma separated list of glob patterns.
407 ** --keep <CSG> keep files matching this comma separated
408 ** list of glob patterns.
409 ** -n|--dry-run If given, display instead of run actions
410 ** --temp Remove only Fossil-generated temporary files
@@ -409,15 +412,15 @@
412 ** See also: addremove, extra, status
413 */
414 void clean_cmd(void){
415 int allFlag;
416 unsigned scanFlags = 0;
417 const char *zIgnoreFlag, *zKeepFlag, *zCleanFlag;
418 Blob path, repo;
419 Stmt q;
420 int n;
421 Glob *pIgnore, *pKeep, *pClean;
422 int dryRunFlag = 0;
423
424 allFlag = find_option("force","f",0)!=0;
425 if( find_option("dotfiles",0,0)!=0 ) scanFlags |= SCAN_ALL;
426 if( find_option("temp",0,0)!=0 ) scanFlags |= SCAN_TEMP;
@@ -425,24 +428,29 @@
428 dryRunFlag = find_option("dry-run","n",0)!=0;
429 if( !dryRunFlag ){
430 dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
431 }
432 zKeepFlag = find_option("keep",0,1);
433 zCleanFlag = find_option("clean",0,1);
434 capture_case_sensitive_option();
435 db_must_be_within_tree();
436 if( zIgnoreFlag==0 ){
437 zIgnoreFlag = db_get("ignore-glob", 0);
438 }
439 if( zKeepFlag==0 ){
440 zKeepFlag = db_get("keep-glob", 0);
441 }
442 if( zCleanFlag==0 ){
443 zCleanFlag = db_get("clean-glob", 0);
444 }
445 db_multi_exec("CREATE TEMP TABLE sfile(x TEXT PRIMARY KEY %s)",
446 filename_collation());
447 n = strlen(g.zLocalRoot);
448 blob_init(&path, g.zLocalRoot, n-1);
449 pIgnore = glob_create(zIgnoreFlag);
450 pKeep = glob_create(zKeepFlag);
451 pClean = glob_create(zCleanFlag);
452 vfile_scan(&path, blob_size(&path), scanFlags, pKeep);
453 glob_free(pKeep);
454 db_prepare(&q,
455 "SELECT %Q || x FROM sfile"
456 " WHERE x NOT IN (%s)"
@@ -453,18 +461,16 @@
461 db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo);
462 }
463 db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
464 while( db_step(&q)==SQLITE_ROW ){
465 const char *zName = db_column_text(&q, 0);
466 if( glob_match(pIgnore, zName+n) ) continue;
467 if( !allFlag && !glob_match(pClean, zName+n) ){
 
 
468 Blob ans;
469 char cReply;
470 char *prompt = mprintf("remove unmanaged file \"%s\" (a=all/y/N)? ",
471 zName+n);
472 blob_zero(&ans);
473 prompt_user(prompt, &ans);
474 cReply = blob_str(&ans)[0];
475 if( cReply=='a' || cReply=='A' ){
476 allFlag = 1;
@@ -471,12 +477,15 @@
477 }else if( cReply!='y' && cReply!='Y' ){
478 continue;
479 }
480 }
481 fossil_print("removed unmanaged file \"%s\"\n", zName+n);
482 if( !dryRunFlag ){
483 file_delete(zName);
484 }
485 }
486 glob_free(pClean);
487 glob_free(pIgnore);
488 db_finalize(&q);
489 }
490
491 /*
492
--- src/configure.c
+++ src/configure.c
@@ -101,10 +101,11 @@
101101
102102
{ "project-name", CONFIGSET_PROJ },
103103
{ "project-description", CONFIGSET_PROJ },
104104
{ "manifest", CONFIGSET_PROJ },
105105
{ "binary-glob", CONFIGSET_PROJ },
106
+ { "clean-glob", CONFIGSET_PROJ },
106107
{ "ignore-glob", CONFIGSET_PROJ },
107108
{ "keep-glob", CONFIGSET_PROJ },
108109
{ "crnl-glob", CONFIGSET_PROJ },
109110
{ "encoding-glob", CONFIGSET_PROJ },
110111
{ "empty-dirs", CONFIGSET_PROJ },
111112
--- src/configure.c
+++ src/configure.c
@@ -101,10 +101,11 @@
101
102 { "project-name", CONFIGSET_PROJ },
103 { "project-description", CONFIGSET_PROJ },
104 { "manifest", CONFIGSET_PROJ },
105 { "binary-glob", CONFIGSET_PROJ },
 
106 { "ignore-glob", CONFIGSET_PROJ },
107 { "keep-glob", CONFIGSET_PROJ },
108 { "crnl-glob", CONFIGSET_PROJ },
109 { "encoding-glob", CONFIGSET_PROJ },
110 { "empty-dirs", CONFIGSET_PROJ },
111
--- src/configure.c
+++ src/configure.c
@@ -101,10 +101,11 @@
101
102 { "project-name", CONFIGSET_PROJ },
103 { "project-description", CONFIGSET_PROJ },
104 { "manifest", CONFIGSET_PROJ },
105 { "binary-glob", CONFIGSET_PROJ },
106 { "clean-glob", CONFIGSET_PROJ },
107 { "ignore-glob", CONFIGSET_PROJ },
108 { "keep-glob", CONFIGSET_PROJ },
109 { "crnl-glob", CONFIGSET_PROJ },
110 { "encoding-glob", CONFIGSET_PROJ },
111 { "empty-dirs", CONFIGSET_PROJ },
112
+8 -2
--- src/db.c
+++ src/db.c
@@ -2097,10 +2097,11 @@
20972097
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || defined(__APPLE__)
20982098
{ "case-sensitive",0, 0, 0, "off" },
20992099
#else
21002100
{ "case-sensitive",0, 0, 0, "on" },
21012101
#endif
2102
+ { "clean-glob", 0, 40, 1, "" },
21022103
{ "crnl-glob", 0, 40, 1, "" },
21032104
{ "default-perms", 0, 16, 0, "u" },
21042105
{ "diff-binary", 0, 0, 0, "on" },
21052106
{ "diff-command", 0, 40, 0, "" },
21062107
{ "dont-push", 0, 0, 0, "off" },
@@ -2187,10 +2188,15 @@
21872188
**
21882189
** case-sensitive If TRUE, the files whose names differ only in case
21892190
** care considered distinct. If FALSE files whose names
21902191
** differ only in case are the same file. Defaults to
21912192
** TRUE for unix and FALSE for Cygwin, Mac and Windows.
2193
+**
2194
+** clean-glob The VALUE is a comma or newline-separated list of GLOB
2195
+** (versionable) patterns specifying files that the "clean" command will
2196
+** delete without prompting even when the -force flag has
2197
+** not been used. Example: *.a *.lib *.o
21922198
**
21932199
** clearsign When enabled, fossil will attempt to sign all commits
21942200
** with gpg. When disabled (the default), commits will
21952201
** be unsigned. Default: off
21962202
**
@@ -2239,12 +2245,12 @@
22392245
**
22402246
** https-login Send login credentials using HTTPS instead of HTTP
22412247
** even if the login page request came via HTTP.
22422248
**
22432249
** ignore-glob The VALUE is a comma or newline-separated list of GLOB
2244
-** (versionable) patterns specifying files that the "extra" command will
2245
-** ignore. Example: *.o,*.obj,*.exe
2250
+** (versionable) patterns specifying files that the "clean" and "extra"
2251
+** commands will ignore. Example: *.o,*.obj,*.exe
22462252
**
22472253
** keep-glob The VALUE is a comma or newline-separated list of GLOB
22482254
** (versionable) patterns specifying files that the "clean" command will
22492255
** keep. Example: *.log
22502256
**
22512257
--- src/db.c
+++ src/db.c
@@ -2097,10 +2097,11 @@
2097 #if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || defined(__APPLE__)
2098 { "case-sensitive",0, 0, 0, "off" },
2099 #else
2100 { "case-sensitive",0, 0, 0, "on" },
2101 #endif
 
2102 { "crnl-glob", 0, 40, 1, "" },
2103 { "default-perms", 0, 16, 0, "u" },
2104 { "diff-binary", 0, 0, 0, "on" },
2105 { "diff-command", 0, 40, 0, "" },
2106 { "dont-push", 0, 0, 0, "off" },
@@ -2187,10 +2188,15 @@
2187 **
2188 ** case-sensitive If TRUE, the files whose names differ only in case
2189 ** care considered distinct. If FALSE files whose names
2190 ** differ only in case are the same file. Defaults to
2191 ** TRUE for unix and FALSE for Cygwin, Mac and Windows.
 
 
 
 
 
2192 **
2193 ** clearsign When enabled, fossil will attempt to sign all commits
2194 ** with gpg. When disabled (the default), commits will
2195 ** be unsigned. Default: off
2196 **
@@ -2239,12 +2245,12 @@
2239 **
2240 ** https-login Send login credentials using HTTPS instead of HTTP
2241 ** even if the login page request came via HTTP.
2242 **
2243 ** ignore-glob The VALUE is a comma or newline-separated list of GLOB
2244 ** (versionable) patterns specifying files that the "extra" command will
2245 ** ignore. Example: *.o,*.obj,*.exe
2246 **
2247 ** keep-glob The VALUE is a comma or newline-separated list of GLOB
2248 ** (versionable) patterns specifying files that the "clean" command will
2249 ** keep. Example: *.log
2250 **
2251
--- src/db.c
+++ src/db.c
@@ -2097,10 +2097,11 @@
2097 #if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || defined(__APPLE__)
2098 { "case-sensitive",0, 0, 0, "off" },
2099 #else
2100 { "case-sensitive",0, 0, 0, "on" },
2101 #endif
2102 { "clean-glob", 0, 40, 1, "" },
2103 { "crnl-glob", 0, 40, 1, "" },
2104 { "default-perms", 0, 16, 0, "u" },
2105 { "diff-binary", 0, 0, 0, "on" },
2106 { "diff-command", 0, 40, 0, "" },
2107 { "dont-push", 0, 0, 0, "off" },
@@ -2187,10 +2188,15 @@
2188 **
2189 ** case-sensitive If TRUE, the files whose names differ only in case
2190 ** care considered distinct. If FALSE files whose names
2191 ** differ only in case are the same file. Defaults to
2192 ** TRUE for unix and FALSE for Cygwin, Mac and Windows.
2193 **
2194 ** clean-glob The VALUE is a comma or newline-separated list of GLOB
2195 ** (versionable) patterns specifying files that the "clean" command will
2196 ** delete without prompting even when the -force flag has
2197 ** not been used. Example: *.a *.lib *.o
2198 **
2199 ** clearsign When enabled, fossil will attempt to sign all commits
2200 ** with gpg. When disabled (the default), commits will
2201 ** be unsigned. Default: off
2202 **
@@ -2239,12 +2245,12 @@
2245 **
2246 ** https-login Send login credentials using HTTPS instead of HTTP
2247 ** even if the login page request came via HTTP.
2248 **
2249 ** ignore-glob The VALUE is a comma or newline-separated list of GLOB
2250 ** (versionable) patterns specifying files that the "clean" and "extra"
2251 ** commands will ignore. Example: *.o,*.obj,*.exe
2252 **
2253 ** keep-glob The VALUE is a comma or newline-separated list of GLOB
2254 ** (versionable) patterns specifying files that the "clean" command will
2255 ** keep. Example: *.log
2256 **
2257
--- src/json_config.c
+++ src/json_config.c
@@ -63,10 +63,13 @@
6363
{ "timeline-max-comment", CONFIGSET_SKIN },
6464
6565
{ "project-name", CONFIGSET_PROJ },
6666
{ "project-description", CONFIGSET_PROJ },
6767
{ "manifest", CONFIGSET_PROJ },
68
+{ "binary-glob", CONFIGSET_PROJ },
69
+{ "clean-glob", CONFIGSET_PROJ },
70
+{ "encoding-glob", CONFIGSET_PROJ },
6871
{ "ignore-glob", CONFIGSET_PROJ },
6972
{ "keep-glob", CONFIGSET_PROJ },
7073
{ "crnl-glob", CONFIGSET_PROJ },
7174
{ "empty-dirs", CONFIGSET_PROJ },
7275
{ "allow-symlinks", CONFIGSET_PROJ },
7376
--- src/json_config.c
+++ src/json_config.c
@@ -63,10 +63,13 @@
63 { "timeline-max-comment", CONFIGSET_SKIN },
64
65 { "project-name", CONFIGSET_PROJ },
66 { "project-description", CONFIGSET_PROJ },
67 { "manifest", CONFIGSET_PROJ },
 
 
 
68 { "ignore-glob", CONFIGSET_PROJ },
69 { "keep-glob", CONFIGSET_PROJ },
70 { "crnl-glob", CONFIGSET_PROJ },
71 { "empty-dirs", CONFIGSET_PROJ },
72 { "allow-symlinks", CONFIGSET_PROJ },
73
--- src/json_config.c
+++ src/json_config.c
@@ -63,10 +63,13 @@
63 { "timeline-max-comment", CONFIGSET_SKIN },
64
65 { "project-name", CONFIGSET_PROJ },
66 { "project-description", CONFIGSET_PROJ },
67 { "manifest", CONFIGSET_PROJ },
68 { "binary-glob", CONFIGSET_PROJ },
69 { "clean-glob", CONFIGSET_PROJ },
70 { "encoding-glob", CONFIGSET_PROJ },
71 { "ignore-glob", CONFIGSET_PROJ },
72 { "keep-glob", CONFIGSET_PROJ },
73 { "crnl-glob", CONFIGSET_PROJ },
74 { "empty-dirs", CONFIGSET_PROJ },
75 { "allow-symlinks", CONFIGSET_PROJ },
76

Keyboard Shortcuts

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