Fossil SCM
Make "fossil add" work when vid=0 (empty check-out). This makes it possible to create initial non-empty check-ins by doing a "fossil add" before the first "fossil commit"
Commit
636982a5641dde7310ad31bd3f80418e8c82ba5e
Parent
5447125d34784c7…
1 file changed
+3
-3
+3
-3
| --- src/vfile.c | ||
| +++ src/vfile.c | ||
| @@ -704,11 +704,11 @@ | ||
| 704 | 704 | const char *zOrigName = db_column_text(&q, 2); |
| 705 | 705 | char zBuf[100]; |
| 706 | 706 | Blob file; |
| 707 | 707 | |
| 708 | 708 | if( zOrigName ) zName = zOrigName; |
| 709 | - if( rid>0 ){ | |
| 709 | + if( rid>0 || vid==0 ){ | |
| 710 | 710 | md5sum_step_text(zName, -1); |
| 711 | 711 | blob_zero(&file); |
| 712 | 712 | content_get(rid, &file); |
| 713 | 713 | sqlite3_snprintf(sizeof(zBuf), zBuf, " %d\n", blob_size(&file)); |
| 714 | 714 | md5sum_step_text(zBuf, -1); |
| @@ -813,13 +813,13 @@ | ||
| 813 | 813 | db_must_be_within_tree(); |
| 814 | 814 | |
| 815 | 815 | db_prepare(&q, "SELECT pathname, origname, rid, is_selected(id)" |
| 816 | 816 | " FROM vfile" |
| 817 | 817 | " WHERE (NOT deleted OR NOT is_selected(id))" |
| 818 | - " AND rid>0 AND vid=%d" | |
| 818 | + " %s AND vid=%d" | |
| 819 | 819 | " ORDER BY if_selected(id,pathname,origname) /*scan*/", |
| 820 | - vid); | |
| 820 | + (vid ? "AND rid>0" : ""), vid); | |
| 821 | 821 | blob_zero(&file); |
| 822 | 822 | md5sum_init(); |
| 823 | 823 | while( db_step(&q)==SQLITE_ROW ){ |
| 824 | 824 | const char *zName = db_column_text(&q, 0); |
| 825 | 825 | const char *zOrigName = db_column_text(&q, 1); |
| 826 | 826 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -704,11 +704,11 @@ | |
| 704 | const char *zOrigName = db_column_text(&q, 2); |
| 705 | char zBuf[100]; |
| 706 | Blob file; |
| 707 | |
| 708 | if( zOrigName ) zName = zOrigName; |
| 709 | if( rid>0 ){ |
| 710 | md5sum_step_text(zName, -1); |
| 711 | blob_zero(&file); |
| 712 | content_get(rid, &file); |
| 713 | sqlite3_snprintf(sizeof(zBuf), zBuf, " %d\n", blob_size(&file)); |
| 714 | md5sum_step_text(zBuf, -1); |
| @@ -813,13 +813,13 @@ | |
| 813 | db_must_be_within_tree(); |
| 814 | |
| 815 | db_prepare(&q, "SELECT pathname, origname, rid, is_selected(id)" |
| 816 | " FROM vfile" |
| 817 | " WHERE (NOT deleted OR NOT is_selected(id))" |
| 818 | " AND rid>0 AND vid=%d" |
| 819 | " ORDER BY if_selected(id,pathname,origname) /*scan*/", |
| 820 | vid); |
| 821 | blob_zero(&file); |
| 822 | md5sum_init(); |
| 823 | while( db_step(&q)==SQLITE_ROW ){ |
| 824 | const char *zName = db_column_text(&q, 0); |
| 825 | const char *zOrigName = db_column_text(&q, 1); |
| 826 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -704,11 +704,11 @@ | |
| 704 | const char *zOrigName = db_column_text(&q, 2); |
| 705 | char zBuf[100]; |
| 706 | Blob file; |
| 707 | |
| 708 | if( zOrigName ) zName = zOrigName; |
| 709 | if( rid>0 || vid==0 ){ |
| 710 | md5sum_step_text(zName, -1); |
| 711 | blob_zero(&file); |
| 712 | content_get(rid, &file); |
| 713 | sqlite3_snprintf(sizeof(zBuf), zBuf, " %d\n", blob_size(&file)); |
| 714 | md5sum_step_text(zBuf, -1); |
| @@ -813,13 +813,13 @@ | |
| 813 | db_must_be_within_tree(); |
| 814 | |
| 815 | db_prepare(&q, "SELECT pathname, origname, rid, is_selected(id)" |
| 816 | " FROM vfile" |
| 817 | " WHERE (NOT deleted OR NOT is_selected(id))" |
| 818 | " %s AND vid=%d" |
| 819 | " ORDER BY if_selected(id,pathname,origname) /*scan*/", |
| 820 | (vid ? "AND rid>0" : ""), vid); |
| 821 | blob_zero(&file); |
| 822 | md5sum_init(); |
| 823 | while( db_step(&q)==SQLITE_ROW ){ |
| 824 | const char *zName = db_column_text(&q, 0); |
| 825 | const char *zOrigName = db_column_text(&q, 1); |
| 826 |