Fossil SCM
Fix the "fossil all add" command so that it works even if repos that are already known are added.
Commit
b9da89a44ed8e0326a4e35eead1ad9737072fa3d
Parent
31ae6022aaa9841…
1 file changed
+5
-2
+5
-2
| --- src/allrepo.c | ||
| +++ src/allrepo.c | ||
| @@ -322,17 +322,20 @@ | ||
| 322 | 322 | int rc; |
| 323 | 323 | const char *z; |
| 324 | 324 | file_canonical_name(g.argv[j], &fn, 0); |
| 325 | 325 | z = blob_str(&fn); |
| 326 | 326 | if( !file_isfile(z) ) continue; |
| 327 | + g.dbIgnoreErrors++; | |
| 327 | 328 | rc = sqlite3_open(z, &db); |
| 328 | - if( rc!=SQLITE_OK ){ sqlite3_close(db); continue; } | |
| 329 | + if( rc!=SQLITE_OK ){ sqlite3_close(db); g.dbIgnoreErrors--; continue; } | |
| 329 | 330 | rc = sqlite3_exec(db, "SELECT rcvid FROM blob, delta LIMIT 1", 0, 0, 0); |
| 330 | 331 | sqlite3_close(db); |
| 332 | + g.dbIgnoreErrors--; | |
| 331 | 333 | if( rc!=SQLITE_OK ) continue; |
| 332 | 334 | blob_append_sql(&sql, |
| 333 | - "INSERT INTO global_config(name,value)VALUES('repo:%q',1)", z | |
| 335 | + "INSERT OR IGNORE INTO global_config(name,value)" | |
| 336 | + "VALUES('repo:%q',1)", z | |
| 334 | 337 | ); |
| 335 | 338 | if( dryRunFlag ){ |
| 336 | 339 | fossil_print("%s\n", blob_sql_text(&sql)); |
| 337 | 340 | }else{ |
| 338 | 341 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 339 | 342 |
| --- src/allrepo.c | |
| +++ src/allrepo.c | |
| @@ -322,17 +322,20 @@ | |
| 322 | int rc; |
| 323 | const char *z; |
| 324 | file_canonical_name(g.argv[j], &fn, 0); |
| 325 | z = blob_str(&fn); |
| 326 | if( !file_isfile(z) ) continue; |
| 327 | rc = sqlite3_open(z, &db); |
| 328 | if( rc!=SQLITE_OK ){ sqlite3_close(db); continue; } |
| 329 | rc = sqlite3_exec(db, "SELECT rcvid FROM blob, delta LIMIT 1", 0, 0, 0); |
| 330 | sqlite3_close(db); |
| 331 | if( rc!=SQLITE_OK ) continue; |
| 332 | blob_append_sql(&sql, |
| 333 | "INSERT INTO global_config(name,value)VALUES('repo:%q',1)", z |
| 334 | ); |
| 335 | if( dryRunFlag ){ |
| 336 | fossil_print("%s\n", blob_sql_text(&sql)); |
| 337 | }else{ |
| 338 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 339 |
| --- src/allrepo.c | |
| +++ src/allrepo.c | |
| @@ -322,17 +322,20 @@ | |
| 322 | int rc; |
| 323 | const char *z; |
| 324 | file_canonical_name(g.argv[j], &fn, 0); |
| 325 | z = blob_str(&fn); |
| 326 | if( !file_isfile(z) ) continue; |
| 327 | g.dbIgnoreErrors++; |
| 328 | rc = sqlite3_open(z, &db); |
| 329 | if( rc!=SQLITE_OK ){ sqlite3_close(db); g.dbIgnoreErrors--; continue; } |
| 330 | rc = sqlite3_exec(db, "SELECT rcvid FROM blob, delta LIMIT 1", 0, 0, 0); |
| 331 | sqlite3_close(db); |
| 332 | g.dbIgnoreErrors--; |
| 333 | if( rc!=SQLITE_OK ) continue; |
| 334 | blob_append_sql(&sql, |
| 335 | "INSERT OR IGNORE INTO global_config(name,value)" |
| 336 | "VALUES('repo:%q',1)", z |
| 337 | ); |
| 338 | if( dryRunFlag ){ |
| 339 | fossil_print("%s\n", blob_sql_text(&sql)); |
| 340 | }else{ |
| 341 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 342 |