Fossil SCM
When merging, make it possible to undo executable status changes.
Commit
802e3ae9c23450b01dbdb8515ba1c5165608e97b8810263dd1931c1e43f5c5fc
Parent
e5bcfd1efe9b638…
1 file changed
+1
+1
| --- src/merge.c | ||
| +++ src/merge.c | ||
| @@ -746,10 +746,11 @@ | ||
| 746 | 746 | const char *zName = db_column_text(&q, 1); |
| 747 | 747 | int isExe = db_column_int(&q, 2); |
| 748 | 748 | fossil_print("%s %s\n", isExe ? "EXECUTABLE" : "UNEXEC", zName); |
| 749 | 749 | if( !dryRunFlag ){ |
| 750 | 750 | char *zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 751 | + undo_save(zName); | |
| 751 | 752 | file_setexe(zFullPath, isExe); |
| 752 | 753 | free(zFullPath); |
| 753 | 754 | db_multi_exec("UPDATE vfile SET isexe=%d WHERE id=%d", isExe, idv); |
| 754 | 755 | } |
| 755 | 756 | } |
| 756 | 757 |
| --- src/merge.c | |
| +++ src/merge.c | |
| @@ -746,10 +746,11 @@ | |
| 746 | const char *zName = db_column_text(&q, 1); |
| 747 | int isExe = db_column_int(&q, 2); |
| 748 | fossil_print("%s %s\n", isExe ? "EXECUTABLE" : "UNEXEC", zName); |
| 749 | if( !dryRunFlag ){ |
| 750 | char *zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 751 | file_setexe(zFullPath, isExe); |
| 752 | free(zFullPath); |
| 753 | db_multi_exec("UPDATE vfile SET isexe=%d WHERE id=%d", isExe, idv); |
| 754 | } |
| 755 | } |
| 756 |
| --- src/merge.c | |
| +++ src/merge.c | |
| @@ -746,10 +746,11 @@ | |
| 746 | const char *zName = db_column_text(&q, 1); |
| 747 | int isExe = db_column_int(&q, 2); |
| 748 | fossil_print("%s %s\n", isExe ? "EXECUTABLE" : "UNEXEC", zName); |
| 749 | if( !dryRunFlag ){ |
| 750 | char *zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 751 | undo_save(zName); |
| 752 | file_setexe(zFullPath, isExe); |
| 753 | free(zFullPath); |
| 754 | db_multi_exec("UPDATE vfile SET isexe=%d WHERE id=%d", isExe, idv); |
| 755 | } |
| 756 | } |
| 757 |