Fossil SCM

fix bug with multi-window svndiff

baruch 2014-10-28 12:19 UTC svn-import
Commit ea54a29848ba316ce7c7e61b01d053f1ce3170c0
1 file changed +2 -9
+2 -9
--- src/import.c
+++ src/import.c
@@ -1030,12 +1030,12 @@
10301030
u64 lenInst = svn_get_varint(&zDiff);
10311031
u64 lenData = svn_get_varint(&zDiff);
10321032
const char *zInst = zDiff;
10331033
const char *zData = zInst+lenInst;
10341034
u64 lenOld = blob_size(pOut);
1035
- blob_resize(pOut, lenOut);
1036
- zOut = blob_buffer(pOut) + lenOld;
1035
+ blob_resize(pOut, lenOut+lenOld);
1036
+ zOut = blob_buffer(pOut)+lenOld;
10371037
while( zDiff<zInst+lenInst ){
10381038
u64 lenCpy = (*zDiff)&0x3f;
10391039
const char *zCpy;
10401040
switch( (*zDiff)&0xC0 ){
10411041
case 0x00: zCpy = blob_buffer(pSrc)+offSrc; break;
@@ -1143,11 +1143,10 @@
11431143
if( rev>0 ){
11441144
db_multi_exec("INSERT INTO xfiles (trev, tpath, trid, tperm) "
11451145
"SELECT %d, tpath, trid, tperm FROM xfiles "
11461146
"WHERE trev=%d", rev, rev-1);
11471147
}
1148
-fossil_print("rev: %d\n", rev);
11491148
}else
11501149
if( zTemp = svn_find_header(rec, "Node-path") ){
11511150
const char *zPath = zTemp;
11521151
const char *zAction = svn_find_header(rec, "Node-action");
11531152
const char *zKind = svn_find_header(rec, "Node-kind");
@@ -1154,11 +1153,10 @@
11541153
const char *zSrcPath = svn_find_header(rec, "Node-copyfrom-path");
11551154
const char *zPerm = svn_find_prop(rec, "svn:executable") ? "x" : 0;
11561155
int deltaFlag = 0;
11571156
int srcRev = -1;
11581157
int rid = 0;
1159
-fossil_print("file: %s ...", zPath);
11601158
if( zTemp = svn_find_header(rec, "Text-delta") ){
11611159
deltaFlag = strncmp(zTemp, "true", 4)==0;
11621160
}
11631161
if( zSrcPath ){
11641162
zTemp = svn_find_header(rec, "Node-copyfrom-rev");
@@ -1228,24 +1226,20 @@
12281226
srcRev, zSrcPath);
12291227
}
12301228
if( deltaFlag ){
12311229
Blob deltaSrc;
12321230
Blob target;
1233
-fossil_print("diff-size: %d ", blob_size(&rec.content));
12341231
if( rid!=0 ){
12351232
content_get(rid, &deltaSrc);
12361233
}else{
12371234
blob_zero(&deltaSrc);
12381235
}
12391236
svn_apply_svndiff(&rec.content, &deltaSrc, &target);
1240
-fossil_print("real-size: %d ", blob_size(&target));
12411237
rid = content_put(&target);
12421238
}else if( rec.contentFlag ){
1243
-fossil_print("size: %d ", blob_size(&rec.content));
12441239
rid = content_put(&rec.content);
12451240
}
1246
-fossil_print("rid: %d ", rid);
12471241
db_bind_int(&insFile, ":rev", rev);
12481242
db_bind_int(&insFile, ":rid", rid);
12491243
db_bind_text(&insFile, ":path", zPath);
12501244
db_bind_text(&insFile, ":perm", zPerm);
12511245
db_step(&insFile);
@@ -1281,11 +1275,10 @@
12811275
}
12821276
}else{
12831277
fossil_fatal("Unknown record type");
12841278
}
12851279
svn_free_rec(&rec);
1286
-fossil_print("done\n");
12871280
}
12881281
if( !flatFlag ){
12891282
if( *zBranch ){
12901283
db_bind_text(&setBranch, ":branch", zBranch);
12911284
db_bind_int(&setBranch, ":rev", rev);
12921285
--- src/import.c
+++ src/import.c
@@ -1030,12 +1030,12 @@
1030 u64 lenInst = svn_get_varint(&zDiff);
1031 u64 lenData = svn_get_varint(&zDiff);
1032 const char *zInst = zDiff;
1033 const char *zData = zInst+lenInst;
1034 u64 lenOld = blob_size(pOut);
1035 blob_resize(pOut, lenOut);
1036 zOut = blob_buffer(pOut) + lenOld;
1037 while( zDiff<zInst+lenInst ){
1038 u64 lenCpy = (*zDiff)&0x3f;
1039 const char *zCpy;
1040 switch( (*zDiff)&0xC0 ){
1041 case 0x00: zCpy = blob_buffer(pSrc)+offSrc; break;
@@ -1143,11 +1143,10 @@
1143 if( rev>0 ){
1144 db_multi_exec("INSERT INTO xfiles (trev, tpath, trid, tperm) "
1145 "SELECT %d, tpath, trid, tperm FROM xfiles "
1146 "WHERE trev=%d", rev, rev-1);
1147 }
1148 fossil_print("rev: %d\n", rev);
1149 }else
1150 if( zTemp = svn_find_header(rec, "Node-path") ){
1151 const char *zPath = zTemp;
1152 const char *zAction = svn_find_header(rec, "Node-action");
1153 const char *zKind = svn_find_header(rec, "Node-kind");
@@ -1154,11 +1153,10 @@
1154 const char *zSrcPath = svn_find_header(rec, "Node-copyfrom-path");
1155 const char *zPerm = svn_find_prop(rec, "svn:executable") ? "x" : 0;
1156 int deltaFlag = 0;
1157 int srcRev = -1;
1158 int rid = 0;
1159 fossil_print("file: %s ...", zPath);
1160 if( zTemp = svn_find_header(rec, "Text-delta") ){
1161 deltaFlag = strncmp(zTemp, "true", 4)==0;
1162 }
1163 if( zSrcPath ){
1164 zTemp = svn_find_header(rec, "Node-copyfrom-rev");
@@ -1228,24 +1226,20 @@
1228 srcRev, zSrcPath);
1229 }
1230 if( deltaFlag ){
1231 Blob deltaSrc;
1232 Blob target;
1233 fossil_print("diff-size: %d ", blob_size(&rec.content));
1234 if( rid!=0 ){
1235 content_get(rid, &deltaSrc);
1236 }else{
1237 blob_zero(&deltaSrc);
1238 }
1239 svn_apply_svndiff(&rec.content, &deltaSrc, &target);
1240 fossil_print("real-size: %d ", blob_size(&target));
1241 rid = content_put(&target);
1242 }else if( rec.contentFlag ){
1243 fossil_print("size: %d ", blob_size(&rec.content));
1244 rid = content_put(&rec.content);
1245 }
1246 fossil_print("rid: %d ", rid);
1247 db_bind_int(&insFile, ":rev", rev);
1248 db_bind_int(&insFile, ":rid", rid);
1249 db_bind_text(&insFile, ":path", zPath);
1250 db_bind_text(&insFile, ":perm", zPerm);
1251 db_step(&insFile);
@@ -1281,11 +1275,10 @@
1281 }
1282 }else{
1283 fossil_fatal("Unknown record type");
1284 }
1285 svn_free_rec(&rec);
1286 fossil_print("done\n");
1287 }
1288 if( !flatFlag ){
1289 if( *zBranch ){
1290 db_bind_text(&setBranch, ":branch", zBranch);
1291 db_bind_int(&setBranch, ":rev", rev);
1292
--- src/import.c
+++ src/import.c
@@ -1030,12 +1030,12 @@
1030 u64 lenInst = svn_get_varint(&zDiff);
1031 u64 lenData = svn_get_varint(&zDiff);
1032 const char *zInst = zDiff;
1033 const char *zData = zInst+lenInst;
1034 u64 lenOld = blob_size(pOut);
1035 blob_resize(pOut, lenOut+lenOld);
1036 zOut = blob_buffer(pOut)+lenOld;
1037 while( zDiff<zInst+lenInst ){
1038 u64 lenCpy = (*zDiff)&0x3f;
1039 const char *zCpy;
1040 switch( (*zDiff)&0xC0 ){
1041 case 0x00: zCpy = blob_buffer(pSrc)+offSrc; break;
@@ -1143,11 +1143,10 @@
1143 if( rev>0 ){
1144 db_multi_exec("INSERT INTO xfiles (trev, tpath, trid, tperm) "
1145 "SELECT %d, tpath, trid, tperm FROM xfiles "
1146 "WHERE trev=%d", rev, rev-1);
1147 }
 
1148 }else
1149 if( zTemp = svn_find_header(rec, "Node-path") ){
1150 const char *zPath = zTemp;
1151 const char *zAction = svn_find_header(rec, "Node-action");
1152 const char *zKind = svn_find_header(rec, "Node-kind");
@@ -1154,11 +1153,10 @@
1153 const char *zSrcPath = svn_find_header(rec, "Node-copyfrom-path");
1154 const char *zPerm = svn_find_prop(rec, "svn:executable") ? "x" : 0;
1155 int deltaFlag = 0;
1156 int srcRev = -1;
1157 int rid = 0;
 
1158 if( zTemp = svn_find_header(rec, "Text-delta") ){
1159 deltaFlag = strncmp(zTemp, "true", 4)==0;
1160 }
1161 if( zSrcPath ){
1162 zTemp = svn_find_header(rec, "Node-copyfrom-rev");
@@ -1228,24 +1226,20 @@
1226 srcRev, zSrcPath);
1227 }
1228 if( deltaFlag ){
1229 Blob deltaSrc;
1230 Blob target;
 
1231 if( rid!=0 ){
1232 content_get(rid, &deltaSrc);
1233 }else{
1234 blob_zero(&deltaSrc);
1235 }
1236 svn_apply_svndiff(&rec.content, &deltaSrc, &target);
 
1237 rid = content_put(&target);
1238 }else if( rec.contentFlag ){
 
1239 rid = content_put(&rec.content);
1240 }
 
1241 db_bind_int(&insFile, ":rev", rev);
1242 db_bind_int(&insFile, ":rid", rid);
1243 db_bind_text(&insFile, ":path", zPath);
1244 db_bind_text(&insFile, ":perm", zPerm);
1245 db_step(&insFile);
@@ -1281,11 +1275,10 @@
1275 }
1276 }else{
1277 fossil_fatal("Unknown record type");
1278 }
1279 svn_free_rec(&rec);
 
1280 }
1281 if( !flatFlag ){
1282 if( *zBranch ){
1283 db_bind_text(&setBranch, ":branch", zBranch);
1284 db_bind_int(&setBranch, ":rev", rev);
1285

Keyboard Shortcuts

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