Fossil SCM
When doing a "fossil update", if a file under management needs to overwrite an unmanaged file, display the name of the backup that is made of the unmanaged file, and use file_delete() to delete the unmanaged file, even if that unmanaged file is read-only. The enables "fossil up version-3.50.0" to work on the SQLite repository when starting from the latest trunk.
Commit
adb68404e610682bb194ea858f861d87c538b23252892c2cc0fceae41be47614
Parent
e84be9f2d6bd835…
1 file changed
+5
-2
+5
-2
| --- src/update.c | ||
| +++ src/update.c | ||
| @@ -453,14 +453,17 @@ | ||
| 453 | 453 | if( file_isfile_or_link(zFullPath) ){ |
| 454 | 454 | /* Name of backup file with Original content */ |
| 455 | 455 | char *zOrig = file_newname(zFullPath, "original", 1); |
| 456 | 456 | /* Backup previously unmanaged file before being overwritten */ |
| 457 | 457 | file_copy(zFullPath, zOrig); |
| 458 | - fossil_free(zOrig); | |
| 459 | 458 | fossil_print("ADD %s - overwrites an unmanaged file", zName); |
| 460 | - if( !dryRunFlag ) fossil_print(", original copy backed up locally"); | |
| 459 | + if( !dryRunFlag ){ | |
| 460 | + fossil_print(", original copy backed up as \"%s\"", zOrig); | |
| 461 | + file_delete(zFullPath); | |
| 462 | + } | |
| 461 | 463 | fossil_print("\n"); |
| 464 | + fossil_free(zOrig); | |
| 462 | 465 | nOverwrite++; |
| 463 | 466 | nc = 1; |
| 464 | 467 | zOp = "CONFLICT"; |
| 465 | 468 | zErrMsg = "new file overwrites unmanaged file"; |
| 466 | 469 | }else{ |
| 467 | 470 |
| --- src/update.c | |
| +++ src/update.c | |
| @@ -453,14 +453,17 @@ | |
| 453 | if( file_isfile_or_link(zFullPath) ){ |
| 454 | /* Name of backup file with Original content */ |
| 455 | char *zOrig = file_newname(zFullPath, "original", 1); |
| 456 | /* Backup previously unmanaged file before being overwritten */ |
| 457 | file_copy(zFullPath, zOrig); |
| 458 | fossil_free(zOrig); |
| 459 | fossil_print("ADD %s - overwrites an unmanaged file", zName); |
| 460 | if( !dryRunFlag ) fossil_print(", original copy backed up locally"); |
| 461 | fossil_print("\n"); |
| 462 | nOverwrite++; |
| 463 | nc = 1; |
| 464 | zOp = "CONFLICT"; |
| 465 | zErrMsg = "new file overwrites unmanaged file"; |
| 466 | }else{ |
| 467 |
| --- src/update.c | |
| +++ src/update.c | |
| @@ -453,14 +453,17 @@ | |
| 453 | if( file_isfile_or_link(zFullPath) ){ |
| 454 | /* Name of backup file with Original content */ |
| 455 | char *zOrig = file_newname(zFullPath, "original", 1); |
| 456 | /* Backup previously unmanaged file before being overwritten */ |
| 457 | file_copy(zFullPath, zOrig); |
| 458 | fossil_print("ADD %s - overwrites an unmanaged file", zName); |
| 459 | if( !dryRunFlag ){ |
| 460 | fossil_print(", original copy backed up as \"%s\"", zOrig); |
| 461 | file_delete(zFullPath); |
| 462 | } |
| 463 | fossil_print("\n"); |
| 464 | fossil_free(zOrig); |
| 465 | nOverwrite++; |
| 466 | nc = 1; |
| 467 | zOp = "CONFLICT"; |
| 468 | zErrMsg = "new file overwrites unmanaged file"; |
| 469 | }else{ |
| 470 |