Fossil SCM

Fix for copy on same branch causing a merge

baruch 2015-01-08 10:17 svn-import
Commit 06d3aa22d3a25b4989aeb223b7800110ecb62e0a
1 file changed +10 -12
+10 -12
--- src/import.c
+++ src/import.c
@@ -1228,15 +1228,16 @@
12281228
db_reset(&addRev);
12291229
} /* no 'else' here since 'replace' does both a 'delete' and an 'add' */
12301230
if( strncmp(zAction, "add", 3)==0
12311231
|| strncmp(zAction, "replace", 7)==0 )
12321232
{
1233
+ int srcRid = 0;
12331234
if( zKind==0 ){
12341235
fossil_fatal("Missing Node-kind");
12351236
}else if( strncmp(zKind, "dir", 3)==0 ){
12361237
if( zSrcPath ){
1237
- int srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1238
+ srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
12381239
" WHERE trev<=%d AND tbranch=%d",
12391240
srcRev, srcBranch);
12401241
if( srcRid>0 ){
12411242
db_bind_text(&cpyPath, ":path", zFile);
12421243
db_bind_int(&cpyPath, ":branch", branchId);
@@ -1245,33 +1246,23 @@
12451246
db_step(&cpyPath);
12461247
db_reset(&cpyPath);
12471248
db_bind_int(&addRev, ":branch", branchId);
12481249
db_step(&addRev);
12491250
db_reset(&addRev);
1250
- db_bind_int(&revSrc, ":parent", srcRid);
1251
- db_bind_int(&revSrc, ":rev", gsvn.rev);
1252
- db_bind_int(&revSrc, ":branch", branchId);
1253
- db_step(&revSrc);
1254
- db_reset(&revSrc);
12551251
}
12561252
}
12571253
}else{
12581254
int rid = 0;
12591255
if( zSrcPath ){
1260
- int srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1256
+ srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
12611257
" WHERE trev<=%d AND tbranch=%d",
12621258
srcRev, srcBranch);
12631259
rid = db_int(0, "SELECT rid FROM blob WHERE uuid=("
12641260
" SELECT uuid FROM xfoci"
12651261
" WHERE checkinID=%d AND filename=%Q"
12661262
")",
12671263
srcRid, zSrcFile);
1268
- db_bind_int(&revSrc, ":parent", srcRid);
1269
- db_bind_int(&revSrc, ":rev", gsvn.rev);
1270
- db_bind_int(&revSrc, ":branch", branchId);
1271
- db_step(&revSrc);
1272
- db_reset(&revSrc);
12731264
}
12741265
if( deltaFlag ){
12751266
Blob deltaSrc;
12761267
Blob target;
12771268
if( rid!=0 ){
@@ -1291,10 +1282,17 @@
12911282
db_step(&addFile);
12921283
db_reset(&addFile);
12931284
db_bind_int(&addRev, ":branch", branchId);
12941285
db_step(&addRev);
12951286
db_reset(&addRev);
1287
+ }
1288
+ if( zSrcPath && srcRid>0 && srcBranch!=branchId ){
1289
+ db_bind_int(&revSrc, ":parent", srcRid);
1290
+ db_bind_int(&revSrc, ":rev", gsvn.rev);
1291
+ db_bind_int(&revSrc, ":branch", branchId);
1292
+ db_step(&revSrc);
1293
+ db_reset(&revSrc);
12961294
}
12971295
}else
12981296
if( strncmp(zAction, "change", 6)==0 ){
12991297
int rid = 0;
13001298
if( zKind==0 ){
13011299
--- src/import.c
+++ src/import.c
@@ -1228,15 +1228,16 @@
1228 db_reset(&addRev);
1229 } /* no 'else' here since 'replace' does both a 'delete' and an 'add' */
1230 if( strncmp(zAction, "add", 3)==0
1231 || strncmp(zAction, "replace", 7)==0 )
1232 {
 
1233 if( zKind==0 ){
1234 fossil_fatal("Missing Node-kind");
1235 }else if( strncmp(zKind, "dir", 3)==0 ){
1236 if( zSrcPath ){
1237 int srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1238 " WHERE trev<=%d AND tbranch=%d",
1239 srcRev, srcBranch);
1240 if( srcRid>0 ){
1241 db_bind_text(&cpyPath, ":path", zFile);
1242 db_bind_int(&cpyPath, ":branch", branchId);
@@ -1245,33 +1246,23 @@
1245 db_step(&cpyPath);
1246 db_reset(&cpyPath);
1247 db_bind_int(&addRev, ":branch", branchId);
1248 db_step(&addRev);
1249 db_reset(&addRev);
1250 db_bind_int(&revSrc, ":parent", srcRid);
1251 db_bind_int(&revSrc, ":rev", gsvn.rev);
1252 db_bind_int(&revSrc, ":branch", branchId);
1253 db_step(&revSrc);
1254 db_reset(&revSrc);
1255 }
1256 }
1257 }else{
1258 int rid = 0;
1259 if( zSrcPath ){
1260 int srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1261 " WHERE trev<=%d AND tbranch=%d",
1262 srcRev, srcBranch);
1263 rid = db_int(0, "SELECT rid FROM blob WHERE uuid=("
1264 " SELECT uuid FROM xfoci"
1265 " WHERE checkinID=%d AND filename=%Q"
1266 ")",
1267 srcRid, zSrcFile);
1268 db_bind_int(&revSrc, ":parent", srcRid);
1269 db_bind_int(&revSrc, ":rev", gsvn.rev);
1270 db_bind_int(&revSrc, ":branch", branchId);
1271 db_step(&revSrc);
1272 db_reset(&revSrc);
1273 }
1274 if( deltaFlag ){
1275 Blob deltaSrc;
1276 Blob target;
1277 if( rid!=0 ){
@@ -1291,10 +1282,17 @@
1291 db_step(&addFile);
1292 db_reset(&addFile);
1293 db_bind_int(&addRev, ":branch", branchId);
1294 db_step(&addRev);
1295 db_reset(&addRev);
 
 
 
 
 
 
 
1296 }
1297 }else
1298 if( strncmp(zAction, "change", 6)==0 ){
1299 int rid = 0;
1300 if( zKind==0 ){
1301
--- src/import.c
+++ src/import.c
@@ -1228,15 +1228,16 @@
1228 db_reset(&addRev);
1229 } /* no 'else' here since 'replace' does both a 'delete' and an 'add' */
1230 if( strncmp(zAction, "add", 3)==0
1231 || strncmp(zAction, "replace", 7)==0 )
1232 {
1233 int srcRid = 0;
1234 if( zKind==0 ){
1235 fossil_fatal("Missing Node-kind");
1236 }else if( strncmp(zKind, "dir", 3)==0 ){
1237 if( zSrcPath ){
1238 srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1239 " WHERE trev<=%d AND tbranch=%d",
1240 srcRev, srcBranch);
1241 if( srcRid>0 ){
1242 db_bind_text(&cpyPath, ":path", zFile);
1243 db_bind_int(&cpyPath, ":branch", branchId);
@@ -1245,33 +1246,23 @@
1246 db_step(&cpyPath);
1247 db_reset(&cpyPath);
1248 db_bind_int(&addRev, ":branch", branchId);
1249 db_step(&addRev);
1250 db_reset(&addRev);
 
 
 
 
 
1251 }
1252 }
1253 }else{
1254 int rid = 0;
1255 if( zSrcPath ){
1256 srcRid = db_int(0, "SELECT trid, max(trev) FROM xrevisions"
1257 " WHERE trev<=%d AND tbranch=%d",
1258 srcRev, srcBranch);
1259 rid = db_int(0, "SELECT rid FROM blob WHERE uuid=("
1260 " SELECT uuid FROM xfoci"
1261 " WHERE checkinID=%d AND filename=%Q"
1262 ")",
1263 srcRid, zSrcFile);
 
 
 
 
 
1264 }
1265 if( deltaFlag ){
1266 Blob deltaSrc;
1267 Blob target;
1268 if( rid!=0 ){
@@ -1291,10 +1282,17 @@
1282 db_step(&addFile);
1283 db_reset(&addFile);
1284 db_bind_int(&addRev, ":branch", branchId);
1285 db_step(&addRev);
1286 db_reset(&addRev);
1287 }
1288 if( zSrcPath && srcRid>0 && srcBranch!=branchId ){
1289 db_bind_int(&revSrc, ":parent", srcRid);
1290 db_bind_int(&revSrc, ":rev", gsvn.rev);
1291 db_bind_int(&revSrc, ":branch", branchId);
1292 db_step(&revSrc);
1293 db_reset(&revSrc);
1294 }
1295 }else
1296 if( strncmp(zAction, "change", 6)==0 ){
1297 int rid = 0;
1298 if( zKind==0 ){
1299

Keyboard Shortcuts

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