Fossil SCM
Prevent adding special files _FOSSIL_-journal, .fos, and .fos-journal to the repository. Ticket [97d8f830b7e5e2]
Commit
c193d2c2e0fe513a5a0f16528d9c3e1e4d648577
Parent
6f9901dd4231a58…
2 files changed
+3
+4
-2
+3
| --- src/add.c | ||
| +++ src/add.c | ||
| @@ -44,10 +44,13 @@ | ||
| 44 | 44 | |
| 45 | 45 | file_tree_name(zName, &pathname, 1); |
| 46 | 46 | zPath = blob_str(&pathname); |
| 47 | 47 | if( strcmp(zPath, "manifest")==0 |
| 48 | 48 | || strcmp(zPath, "_FOSSIL_")==0 |
| 49 | + || strcmp(zPath, "_FOSSIL_-journal")==0 | |
| 50 | + || strcmp(zPath, ".fos")==0 | |
| 51 | + || strcmp(zPath, ".fos-journal")==0 | |
| 49 | 52 | || strcmp(zPath, "manifest.uuid")==0 |
| 50 | 53 | || blob_compare(&pathname, pOmit)==0 |
| 51 | 54 | ){ |
| 52 | 55 | fossil_warning("cannot add %s", zPath); |
| 53 | 56 | }else{ |
| 54 | 57 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -44,10 +44,13 @@ | |
| 44 | |
| 45 | file_tree_name(zName, &pathname, 1); |
| 46 | zPath = blob_str(&pathname); |
| 47 | if( strcmp(zPath, "manifest")==0 |
| 48 | || strcmp(zPath, "_FOSSIL_")==0 |
| 49 | || strcmp(zPath, "manifest.uuid")==0 |
| 50 | || blob_compare(&pathname, pOmit)==0 |
| 51 | ){ |
| 52 | fossil_warning("cannot add %s", zPath); |
| 53 | }else{ |
| 54 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -44,10 +44,13 @@ | |
| 44 | |
| 45 | file_tree_name(zName, &pathname, 1); |
| 46 | zPath = blob_str(&pathname); |
| 47 | if( strcmp(zPath, "manifest")==0 |
| 48 | || strcmp(zPath, "_FOSSIL_")==0 |
| 49 | || strcmp(zPath, "_FOSSIL_-journal")==0 |
| 50 | || strcmp(zPath, ".fos")==0 |
| 51 | || strcmp(zPath, ".fos-journal")==0 |
| 52 | || strcmp(zPath, "manifest.uuid")==0 |
| 53 | || blob_compare(&pathname, pOmit)==0 |
| 54 | ){ |
| 55 | fossil_warning("cannot add %s", zPath); |
| 56 | }else{ |
| 57 |
+4
-2
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -276,11 +276,12 @@ | ||
| 276 | 276 | zIgnoreFlag = db_get("ignore-glob", 0); |
| 277 | 277 | } |
| 278 | 278 | vfile_scan(0, &path, blob_size(&path), allFlag); |
| 279 | 279 | db_prepare(&q, |
| 280 | 280 | "SELECT x FROM sfile" |
| 281 | - " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_')" | |
| 281 | + " WHERE x NOT GLOB ('manifest','manifest.uuid','_FOSSIL_'," | |
| 282 | + "'_FOSSIL_-journal','.fos','.fos-journal');" | |
| 282 | 283 | " AND NOT %s" |
| 283 | 284 | " ORDER BY 1", |
| 284 | 285 | glob_expr("x", zIgnoreFlag) |
| 285 | 286 | ); |
| 286 | 287 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| @@ -321,11 +322,12 @@ | ||
| 321 | 322 | n = strlen(g.zLocalRoot); |
| 322 | 323 | blob_init(&path, g.zLocalRoot, n-1); |
| 323 | 324 | vfile_scan(0, &path, blob_size(&path), dotfilesFlag); |
| 324 | 325 | db_prepare(&q, |
| 325 | 326 | "SELECT %Q || x FROM sfile" |
| 326 | - " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_')" | |
| 327 | + " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_'," | |
| 328 | + "'_FOSSIL_-journal','.fos','.fos-journal')" | |
| 327 | 329 | " ORDER BY 1", g.zLocalRoot); |
| 328 | 330 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| 329 | 331 | db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo); |
| 330 | 332 | } |
| 331 | 333 | while( db_step(&q)==SQLITE_ROW ){ |
| 332 | 334 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -276,11 +276,12 @@ | |
| 276 | zIgnoreFlag = db_get("ignore-glob", 0); |
| 277 | } |
| 278 | vfile_scan(0, &path, blob_size(&path), allFlag); |
| 279 | db_prepare(&q, |
| 280 | "SELECT x FROM sfile" |
| 281 | " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_')" |
| 282 | " AND NOT %s" |
| 283 | " ORDER BY 1", |
| 284 | glob_expr("x", zIgnoreFlag) |
| 285 | ); |
| 286 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| @@ -321,11 +322,12 @@ | |
| 321 | n = strlen(g.zLocalRoot); |
| 322 | blob_init(&path, g.zLocalRoot, n-1); |
| 323 | vfile_scan(0, &path, blob_size(&path), dotfilesFlag); |
| 324 | db_prepare(&q, |
| 325 | "SELECT %Q || x FROM sfile" |
| 326 | " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_')" |
| 327 | " ORDER BY 1", g.zLocalRoot); |
| 328 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| 329 | db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo); |
| 330 | } |
| 331 | while( db_step(&q)==SQLITE_ROW ){ |
| 332 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -276,11 +276,12 @@ | |
| 276 | zIgnoreFlag = db_get("ignore-glob", 0); |
| 277 | } |
| 278 | vfile_scan(0, &path, blob_size(&path), allFlag); |
| 279 | db_prepare(&q, |
| 280 | "SELECT x FROM sfile" |
| 281 | " WHERE x NOT GLOB ('manifest','manifest.uuid','_FOSSIL_'," |
| 282 | "'_FOSSIL_-journal','.fos','.fos-journal');" |
| 283 | " AND NOT %s" |
| 284 | " ORDER BY 1", |
| 285 | glob_expr("x", zIgnoreFlag) |
| 286 | ); |
| 287 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| @@ -321,11 +322,12 @@ | |
| 322 | n = strlen(g.zLocalRoot); |
| 323 | blob_init(&path, g.zLocalRoot, n-1); |
| 324 | vfile_scan(0, &path, blob_size(&path), dotfilesFlag); |
| 325 | db_prepare(&q, |
| 326 | "SELECT %Q || x FROM sfile" |
| 327 | " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_'," |
| 328 | "'_FOSSIL_-journal','.fos','.fos-journal')" |
| 329 | " ORDER BY 1", g.zLocalRoot); |
| 330 | if( file_tree_name(g.zRepositoryName, &repo, 0) ){ |
| 331 | db_multi_exec("DELETE FROM sfile WHERE x=%B", &repo); |
| 332 | } |
| 333 | while( db_step(&q)==SQLITE_ROW ){ |
| 334 |