Fossil SCM
Fix reading delta from wrong column in stash.
Commit
0317a929cb7a40ac5230fd3cc1b418b0557a19c3
Parent
8c0f4bc718cb0c6…
1 file changed
+5
-6
+5
-6
| --- src/stash.c | ||
| +++ src/stash.c | ||
| @@ -84,11 +84,10 @@ | ||
| 84 | 84 | "VALUES(%d,:rid,:isadd,:isrm,:isexe,:islink,:orig,:new,:content)", |
| 85 | 85 | stashid |
| 86 | 86 | ); |
| 87 | 87 | while( db_step(&q)==SQLITE_ROW ){ |
| 88 | 88 | int deleted = db_column_int(&q, 0); |
| 89 | - //int isLink = db_column_int(&q, 2); | |
| 90 | 89 | int rid = db_column_int(&q, 3); |
| 91 | 90 | const char *zName = db_column_text(&q, 4); |
| 92 | 91 | const char *zOrig = db_column_text(&q, 5); |
| 93 | 92 | char *zPath = mprintf("%s%s", g.zLocalRoot, zName); |
| 94 | 93 | Blob content; |
| @@ -96,11 +95,11 @@ | ||
| 96 | 95 | |
| 97 | 96 | db_bind_int(&ins, ":rid", rid); |
| 98 | 97 | db_bind_int(&ins, ":isadd", rid==0); |
| 99 | 98 | db_bind_int(&ins, ":isrm", deleted); |
| 100 | 99 | db_bind_int(&ins, ":isexe", db_column_int(&q, 1)); |
| 101 | - //db_bind_int(&ins, ":islink", isLink); //TODO(dchest) what's that? | |
| 100 | + db_bind_int(&ins, ":islink", db_column_int(&q, 2)); | |
| 102 | 101 | db_bind_text(&ins, ":orig", zOrig); |
| 103 | 102 | db_bind_text(&ins, ":new", zName); |
| 104 | 103 | |
| 105 | 104 | if( rid==0 ){ |
| 106 | 105 | /* A new file */ |
| @@ -199,21 +198,21 @@ | ||
| 199 | 198 | char *zNPath = mprintf("%s%s", g.zLocalRoot, zNew); |
| 200 | 199 | Blob delta; |
| 201 | 200 | undo_save(zNew); |
| 202 | 201 | blob_zero(&delta); |
| 203 | 202 | if( rid==0 ){ |
| 204 | - db_ephemeral_blob(&q, 5, &delta); | |
| 203 | + db_ephemeral_blob(&q, 6, &delta); | |
| 205 | 204 | blob_write_to_file(&delta, zNPath); |
| 206 | 205 | file_setexe(zNPath, isExec); |
| 207 | 206 | fossil_print("ADD %s\n", zNew); |
| 208 | 207 | }else if( isRemoved ){ |
| 209 | 208 | fossil_print("DELETE %s\n", zOrig); |
| 210 | 209 | file_delete(zOPath); |
| 211 | 210 | }else{ |
| 212 | 211 | Blob a, b, out, disk; |
| 213 | 212 | int isNewLink = file_islink(zOPath); |
| 214 | - db_ephemeral_blob(&q, 5, &delta); | |
| 213 | + db_ephemeral_blob(&q, 6, &delta); | |
| 215 | 214 | if( isNewLink ){ |
| 216 | 215 | blob_read_link(&disk, zOPath); |
| 217 | 216 | }else{ |
| 218 | 217 | blob_read_from_file(&disk, zOPath); |
| 219 | 218 | } |
| @@ -285,11 +284,11 @@ | ||
| 285 | 284 | const char *zOrig = db_column_text(&q, 4); |
| 286 | 285 | const char *zNew = db_column_text(&q, 5); |
| 287 | 286 | char *zOPath = mprintf("%s%s", g.zLocalRoot, zOrig); |
| 288 | 287 | Blob delta; |
| 289 | 288 | if( rid==0 ){ |
| 290 | - db_ephemeral_blob(&q, 5, &delta); | |
| 289 | + db_ephemeral_blob(&q, 6, &delta); | |
| 291 | 290 | fossil_print("ADDED %s\n", zNew); |
| 292 | 291 | diff_print_index(zNew); |
| 293 | 292 | diff_file_mem(&empty, &delta, zNew, zDiffCmd, 0); |
| 294 | 293 | }else if( isRemoved ){ |
| 295 | 294 | fossil_print("DELETE %s\n", zOrig); |
| @@ -301,11 +300,11 @@ | ||
| 301 | 300 | diff_print_index(zNew); |
| 302 | 301 | diff_file_mem(&delta, &empty, zOrig, zDiffCmd, 0); |
| 303 | 302 | }else{ |
| 304 | 303 | Blob a, b, disk; |
| 305 | 304 | int isOrigLink = file_islink(zOPath); |
| 306 | - db_ephemeral_blob(&q, 5, &delta); | |
| 305 | + db_ephemeral_blob(&q, 6, &delta); | |
| 307 | 306 | if( isOrigLink ){ |
| 308 | 307 | blob_read_link(&disk, zOPath); |
| 309 | 308 | }else{ |
| 310 | 309 | blob_read_from_file(&disk, zOPath); |
| 311 | 310 | } |
| 312 | 311 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -84,11 +84,10 @@ | |
| 84 | "VALUES(%d,:rid,:isadd,:isrm,:isexe,:islink,:orig,:new,:content)", |
| 85 | stashid |
| 86 | ); |
| 87 | while( db_step(&q)==SQLITE_ROW ){ |
| 88 | int deleted = db_column_int(&q, 0); |
| 89 | //int isLink = db_column_int(&q, 2); |
| 90 | int rid = db_column_int(&q, 3); |
| 91 | const char *zName = db_column_text(&q, 4); |
| 92 | const char *zOrig = db_column_text(&q, 5); |
| 93 | char *zPath = mprintf("%s%s", g.zLocalRoot, zName); |
| 94 | Blob content; |
| @@ -96,11 +95,11 @@ | |
| 96 | |
| 97 | db_bind_int(&ins, ":rid", rid); |
| 98 | db_bind_int(&ins, ":isadd", rid==0); |
| 99 | db_bind_int(&ins, ":isrm", deleted); |
| 100 | db_bind_int(&ins, ":isexe", db_column_int(&q, 1)); |
| 101 | //db_bind_int(&ins, ":islink", isLink); //TODO(dchest) what's that? |
| 102 | db_bind_text(&ins, ":orig", zOrig); |
| 103 | db_bind_text(&ins, ":new", zName); |
| 104 | |
| 105 | if( rid==0 ){ |
| 106 | /* A new file */ |
| @@ -199,21 +198,21 @@ | |
| 199 | char *zNPath = mprintf("%s%s", g.zLocalRoot, zNew); |
| 200 | Blob delta; |
| 201 | undo_save(zNew); |
| 202 | blob_zero(&delta); |
| 203 | if( rid==0 ){ |
| 204 | db_ephemeral_blob(&q, 5, &delta); |
| 205 | blob_write_to_file(&delta, zNPath); |
| 206 | file_setexe(zNPath, isExec); |
| 207 | fossil_print("ADD %s\n", zNew); |
| 208 | }else if( isRemoved ){ |
| 209 | fossil_print("DELETE %s\n", zOrig); |
| 210 | file_delete(zOPath); |
| 211 | }else{ |
| 212 | Blob a, b, out, disk; |
| 213 | int isNewLink = file_islink(zOPath); |
| 214 | db_ephemeral_blob(&q, 5, &delta); |
| 215 | if( isNewLink ){ |
| 216 | blob_read_link(&disk, zOPath); |
| 217 | }else{ |
| 218 | blob_read_from_file(&disk, zOPath); |
| 219 | } |
| @@ -285,11 +284,11 @@ | |
| 285 | const char *zOrig = db_column_text(&q, 4); |
| 286 | const char *zNew = db_column_text(&q, 5); |
| 287 | char *zOPath = mprintf("%s%s", g.zLocalRoot, zOrig); |
| 288 | Blob delta; |
| 289 | if( rid==0 ){ |
| 290 | db_ephemeral_blob(&q, 5, &delta); |
| 291 | fossil_print("ADDED %s\n", zNew); |
| 292 | diff_print_index(zNew); |
| 293 | diff_file_mem(&empty, &delta, zNew, zDiffCmd, 0); |
| 294 | }else if( isRemoved ){ |
| 295 | fossil_print("DELETE %s\n", zOrig); |
| @@ -301,11 +300,11 @@ | |
| 301 | diff_print_index(zNew); |
| 302 | diff_file_mem(&delta, &empty, zOrig, zDiffCmd, 0); |
| 303 | }else{ |
| 304 | Blob a, b, disk; |
| 305 | int isOrigLink = file_islink(zOPath); |
| 306 | db_ephemeral_blob(&q, 5, &delta); |
| 307 | if( isOrigLink ){ |
| 308 | blob_read_link(&disk, zOPath); |
| 309 | }else{ |
| 310 | blob_read_from_file(&disk, zOPath); |
| 311 | } |
| 312 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -84,11 +84,10 @@ | |
| 84 | "VALUES(%d,:rid,:isadd,:isrm,:isexe,:islink,:orig,:new,:content)", |
| 85 | stashid |
| 86 | ); |
| 87 | while( db_step(&q)==SQLITE_ROW ){ |
| 88 | int deleted = db_column_int(&q, 0); |
| 89 | int rid = db_column_int(&q, 3); |
| 90 | const char *zName = db_column_text(&q, 4); |
| 91 | const char *zOrig = db_column_text(&q, 5); |
| 92 | char *zPath = mprintf("%s%s", g.zLocalRoot, zName); |
| 93 | Blob content; |
| @@ -96,11 +95,11 @@ | |
| 95 | |
| 96 | db_bind_int(&ins, ":rid", rid); |
| 97 | db_bind_int(&ins, ":isadd", rid==0); |
| 98 | db_bind_int(&ins, ":isrm", deleted); |
| 99 | db_bind_int(&ins, ":isexe", db_column_int(&q, 1)); |
| 100 | db_bind_int(&ins, ":islink", db_column_int(&q, 2)); |
| 101 | db_bind_text(&ins, ":orig", zOrig); |
| 102 | db_bind_text(&ins, ":new", zName); |
| 103 | |
| 104 | if( rid==0 ){ |
| 105 | /* A new file */ |
| @@ -199,21 +198,21 @@ | |
| 198 | char *zNPath = mprintf("%s%s", g.zLocalRoot, zNew); |
| 199 | Blob delta; |
| 200 | undo_save(zNew); |
| 201 | blob_zero(&delta); |
| 202 | if( rid==0 ){ |
| 203 | db_ephemeral_blob(&q, 6, &delta); |
| 204 | blob_write_to_file(&delta, zNPath); |
| 205 | file_setexe(zNPath, isExec); |
| 206 | fossil_print("ADD %s\n", zNew); |
| 207 | }else if( isRemoved ){ |
| 208 | fossil_print("DELETE %s\n", zOrig); |
| 209 | file_delete(zOPath); |
| 210 | }else{ |
| 211 | Blob a, b, out, disk; |
| 212 | int isNewLink = file_islink(zOPath); |
| 213 | db_ephemeral_blob(&q, 6, &delta); |
| 214 | if( isNewLink ){ |
| 215 | blob_read_link(&disk, zOPath); |
| 216 | }else{ |
| 217 | blob_read_from_file(&disk, zOPath); |
| 218 | } |
| @@ -285,11 +284,11 @@ | |
| 284 | const char *zOrig = db_column_text(&q, 4); |
| 285 | const char *zNew = db_column_text(&q, 5); |
| 286 | char *zOPath = mprintf("%s%s", g.zLocalRoot, zOrig); |
| 287 | Blob delta; |
| 288 | if( rid==0 ){ |
| 289 | db_ephemeral_blob(&q, 6, &delta); |
| 290 | fossil_print("ADDED %s\n", zNew); |
| 291 | diff_print_index(zNew); |
| 292 | diff_file_mem(&empty, &delta, zNew, zDiffCmd, 0); |
| 293 | }else if( isRemoved ){ |
| 294 | fossil_print("DELETE %s\n", zOrig); |
| @@ -301,11 +300,11 @@ | |
| 300 | diff_print_index(zNew); |
| 301 | diff_file_mem(&delta, &empty, zOrig, zDiffCmd, 0); |
| 302 | }else{ |
| 303 | Blob a, b, disk; |
| 304 | int isOrigLink = file_islink(zOPath); |
| 305 | db_ephemeral_blob(&q, 6, &delta); |
| 306 | if( isOrigLink ){ |
| 307 | blob_read_link(&disk, zOPath); |
| 308 | }else{ |
| 309 | blob_read_from_file(&disk, zOPath); |
| 310 | } |
| 311 |