Fossil SCM
Fix logic error: look up mlink entries of the commit, not the parent.
Commit
9a679370567c15445062235c2d4379ce934452d8
Parent
2cfb415b238efab…
1 file changed
+2
-6
+2
-6
| --- src/export.c | ||
| +++ src/export.c | ||
| @@ -223,11 +223,10 @@ | ||
| 223 | 223 | int ckinId = db_column_int(&q, 1); |
| 224 | 224 | const char *zComment = db_column_text(&q, 2); |
| 225 | 225 | const char *zUser = db_column_text(&q, 3); |
| 226 | 226 | const char *zBranch = db_column_text(&q, 4); |
| 227 | 227 | char *zBr; |
| 228 | - int parent; | |
| 229 | 228 | |
| 230 | 229 | bag_insert(&vers, ckinId); |
| 231 | 230 | db_bind_int(&q2, ":rid", ckinId); |
| 232 | 231 | db_step(&q2); |
| 233 | 232 | db_reset(&q2); |
| @@ -243,13 +242,11 @@ | ||
| 243 | 242 | printf(" %s +0000\n", zSecondsSince1970); |
| 244 | 243 | if( zComment==0 ) zComment = "null comment"; |
| 245 | 244 | printf("data %d\n%s\n", (int)strlen(zComment), zComment); |
| 246 | 245 | db_prepare(&q3, "SELECT pid FROM plink WHERE cid=%d AND isprim", ckinId); |
| 247 | 246 | if( db_step(&q3) == SQLITE_ROW ){ |
| 248 | - parent = db_column_int(&q3, 0); | |
| 249 | - | |
| 250 | - printf("from :%d\n", COMMITMARK(parent)); | |
| 247 | + printf("from :%d\n", COMMITMARK(db_column_int(&q3, 0))); | |
| 251 | 248 | db_prepare(&q4, |
| 252 | 249 | "SELECT pid FROM plink" |
| 253 | 250 | " WHERE cid=%d AND NOT isprim" |
| 254 | 251 | " AND NOT EXISTS(SELECT 1 FROM phantom WHERE rid=pid)" |
| 255 | 252 | " ORDER BY pid", |
| @@ -257,19 +254,18 @@ | ||
| 257 | 254 | while( db_step(&q4)==SQLITE_ROW ){ |
| 258 | 255 | printf("merge :%d\n", COMMITMARK(db_column_int(&q4,0))); |
| 259 | 256 | } |
| 260 | 257 | db_finalize(&q4); |
| 261 | 258 | }else{ |
| 262 | - parent = 0; | |
| 263 | 259 | printf("deleteall\n"); |
| 264 | 260 | } |
| 265 | 261 | |
| 266 | 262 | db_prepare(&q4, |
| 267 | 263 | "SELECT filename.name, mlink.fid, mlink.mperm FROM mlink" |
| 268 | 264 | " JOIN filename ON filename.fnid=mlink.fnid" |
| 269 | 265 | " WHERE mlink.mid=%d", |
| 270 | - parent | |
| 266 | + ckinId | |
| 271 | 267 | ); |
| 272 | 268 | while( db_step(&q4)==SQLITE_ROW ){ |
| 273 | 269 | const char *zName = db_column_text(&q4,0); |
| 274 | 270 | int zNew = db_column_int(&q4,1); |
| 275 | 271 | int mPerm = db_column_int(&q4,2); |
| 276 | 272 |
| --- src/export.c | |
| +++ src/export.c | |
| @@ -223,11 +223,10 @@ | |
| 223 | int ckinId = db_column_int(&q, 1); |
| 224 | const char *zComment = db_column_text(&q, 2); |
| 225 | const char *zUser = db_column_text(&q, 3); |
| 226 | const char *zBranch = db_column_text(&q, 4); |
| 227 | char *zBr; |
| 228 | int parent; |
| 229 | |
| 230 | bag_insert(&vers, ckinId); |
| 231 | db_bind_int(&q2, ":rid", ckinId); |
| 232 | db_step(&q2); |
| 233 | db_reset(&q2); |
| @@ -243,13 +242,11 @@ | |
| 243 | printf(" %s +0000\n", zSecondsSince1970); |
| 244 | if( zComment==0 ) zComment = "null comment"; |
| 245 | printf("data %d\n%s\n", (int)strlen(zComment), zComment); |
| 246 | db_prepare(&q3, "SELECT pid FROM plink WHERE cid=%d AND isprim", ckinId); |
| 247 | if( db_step(&q3) == SQLITE_ROW ){ |
| 248 | parent = db_column_int(&q3, 0); |
| 249 | |
| 250 | printf("from :%d\n", COMMITMARK(parent)); |
| 251 | db_prepare(&q4, |
| 252 | "SELECT pid FROM plink" |
| 253 | " WHERE cid=%d AND NOT isprim" |
| 254 | " AND NOT EXISTS(SELECT 1 FROM phantom WHERE rid=pid)" |
| 255 | " ORDER BY pid", |
| @@ -257,19 +254,18 @@ | |
| 257 | while( db_step(&q4)==SQLITE_ROW ){ |
| 258 | printf("merge :%d\n", COMMITMARK(db_column_int(&q4,0))); |
| 259 | } |
| 260 | db_finalize(&q4); |
| 261 | }else{ |
| 262 | parent = 0; |
| 263 | printf("deleteall\n"); |
| 264 | } |
| 265 | |
| 266 | db_prepare(&q4, |
| 267 | "SELECT filename.name, mlink.fid, mlink.mperm FROM mlink" |
| 268 | " JOIN filename ON filename.fnid=mlink.fnid" |
| 269 | " WHERE mlink.mid=%d", |
| 270 | parent |
| 271 | ); |
| 272 | while( db_step(&q4)==SQLITE_ROW ){ |
| 273 | const char *zName = db_column_text(&q4,0); |
| 274 | int zNew = db_column_int(&q4,1); |
| 275 | int mPerm = db_column_int(&q4,2); |
| 276 |
| --- src/export.c | |
| +++ src/export.c | |
| @@ -223,11 +223,10 @@ | |
| 223 | int ckinId = db_column_int(&q, 1); |
| 224 | const char *zComment = db_column_text(&q, 2); |
| 225 | const char *zUser = db_column_text(&q, 3); |
| 226 | const char *zBranch = db_column_text(&q, 4); |
| 227 | char *zBr; |
| 228 | |
| 229 | bag_insert(&vers, ckinId); |
| 230 | db_bind_int(&q2, ":rid", ckinId); |
| 231 | db_step(&q2); |
| 232 | db_reset(&q2); |
| @@ -243,13 +242,11 @@ | |
| 242 | printf(" %s +0000\n", zSecondsSince1970); |
| 243 | if( zComment==0 ) zComment = "null comment"; |
| 244 | printf("data %d\n%s\n", (int)strlen(zComment), zComment); |
| 245 | db_prepare(&q3, "SELECT pid FROM plink WHERE cid=%d AND isprim", ckinId); |
| 246 | if( db_step(&q3) == SQLITE_ROW ){ |
| 247 | printf("from :%d\n", COMMITMARK(db_column_int(&q3, 0))); |
| 248 | db_prepare(&q4, |
| 249 | "SELECT pid FROM plink" |
| 250 | " WHERE cid=%d AND NOT isprim" |
| 251 | " AND NOT EXISTS(SELECT 1 FROM phantom WHERE rid=pid)" |
| 252 | " ORDER BY pid", |
| @@ -257,19 +254,18 @@ | |
| 254 | while( db_step(&q4)==SQLITE_ROW ){ |
| 255 | printf("merge :%d\n", COMMITMARK(db_column_int(&q4,0))); |
| 256 | } |
| 257 | db_finalize(&q4); |
| 258 | }else{ |
| 259 | printf("deleteall\n"); |
| 260 | } |
| 261 | |
| 262 | db_prepare(&q4, |
| 263 | "SELECT filename.name, mlink.fid, mlink.mperm FROM mlink" |
| 264 | " JOIN filename ON filename.fnid=mlink.fnid" |
| 265 | " WHERE mlink.mid=%d", |
| 266 | ckinId |
| 267 | ); |
| 268 | while( db_step(&q4)==SQLITE_ROW ){ |
| 269 | const char *zName = db_column_text(&q4,0); |
| 270 | int zNew = db_column_int(&q4,1); |
| 271 | int mPerm = db_column_int(&q4,2); |
| 272 |