Fossil SCM

Fix logic error: look up mlink entries of the commit, not the parent.

joerg 2011-07-23 23:01 experimental
Commit 9a679370567c15445062235c2d4379ce934452d8
1 file changed +2 -6
+2 -6
--- src/export.c
+++ src/export.c
@@ -223,11 +223,10 @@
223223
int ckinId = db_column_int(&q, 1);
224224
const char *zComment = db_column_text(&q, 2);
225225
const char *zUser = db_column_text(&q, 3);
226226
const char *zBranch = db_column_text(&q, 4);
227227
char *zBr;
228
- int parent;
229228
230229
bag_insert(&vers, ckinId);
231230
db_bind_int(&q2, ":rid", ckinId);
232231
db_step(&q2);
233232
db_reset(&q2);
@@ -243,13 +242,11 @@
243242
printf(" %s +0000\n", zSecondsSince1970);
244243
if( zComment==0 ) zComment = "null comment";
245244
printf("data %d\n%s\n", (int)strlen(zComment), zComment);
246245
db_prepare(&q3, "SELECT pid FROM plink WHERE cid=%d AND isprim", ckinId);
247246
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)));
251248
db_prepare(&q4,
252249
"SELECT pid FROM plink"
253250
" WHERE cid=%d AND NOT isprim"
254251
" AND NOT EXISTS(SELECT 1 FROM phantom WHERE rid=pid)"
255252
" ORDER BY pid",
@@ -257,19 +254,18 @@
257254
while( db_step(&q4)==SQLITE_ROW ){
258255
printf("merge :%d\n", COMMITMARK(db_column_int(&q4,0)));
259256
}
260257
db_finalize(&q4);
261258
}else{
262
- parent = 0;
263259
printf("deleteall\n");
264260
}
265261
266262
db_prepare(&q4,
267263
"SELECT filename.name, mlink.fid, mlink.mperm FROM mlink"
268264
" JOIN filename ON filename.fnid=mlink.fnid"
269265
" WHERE mlink.mid=%d",
270
- parent
266
+ ckinId
271267
);
272268
while( db_step(&q4)==SQLITE_ROW ){
273269
const char *zName = db_column_text(&q4,0);
274270
int zNew = db_column_int(&q4,1);
275271
int mPerm = db_column_int(&q4,2);
276272
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button