Fossil SCM

Fix handling paths when branching to/from a subdir

baruch 2015-01-18 20:35 svn-import
Commit 261ff58e2302ba295e07899b03ec9ed92175593a
1 file changed +12 -2
+12 -2
--- src/import.c
+++ src/import.c
@@ -1200,19 +1200,19 @@
12001200
db_prepare(&addRev,
12011201
"INSERT OR IGNORE INTO xrevisions (trev, tbranch) VALUES(:rev, :branch)"
12021202
);
12031203
db_prepare(&cpyPath,
12041204
"INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1205
- " SELECT :path||substr(filename, length(:srcpath)+1), :branch, uuid, perm"
1205
+ " SELECT :path||:sep||substr(filename, length(:srcpath)+2), :branch, uuid, perm"
12061206
" FROM xfoci"
12071207
" WHERE checkinID=:rid"
12081208
" AND filename>:srcpath||'/'"
12091209
" AND filename<:srcpath||'0'"
12101210
);
12111211
db_prepare(&cpyRoot,
12121212
"INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1213
- " SELECT :path||filename, :branch, uuid, perm"
1213
+ " SELECT :path||:sep||filename, :branch, uuid, perm"
12141214
" FROM xfoci"
12151215
" WHERE checkinID=:rid"
12161216
);
12171217
db_prepare(&revSrc,
12181218
"UPDATE xrevisions SET tparent=:parent"
@@ -1309,16 +1309,26 @@
13091309
}else if( strncmp(zKind, "dir", 3)==0 ){
13101310
if( zSrcPath ){
13111311
if( srcRid>0 ){
13121312
if( zSrcFile[0]==0 ){
13131313
db_bind_text(&cpyRoot, ":path", zFile);
1314
+ if( zFile[0]!=0 ){
1315
+ db_bind_text(&cpyRoot, ":sep", "/");
1316
+ }else{
1317
+ db_bind_text(&cpyRoot, ":sep", "");
1318
+ }
13141319
db_bind_int(&cpyRoot, ":branch", branchId);
13151320
db_bind_int(&cpyRoot, ":rid", srcRid);
13161321
db_step(&cpyRoot);
13171322
db_reset(&cpyRoot);
13181323
}else{
13191324
db_bind_text(&cpyPath, ":path", zFile);
1325
+ if( zFile[0]!=0 ){
1326
+ db_bind_text(&cpyPath, ":sep", "/");
1327
+ }else{
1328
+ db_bind_text(&cpyPath, ":sep", "");
1329
+ }
13201330
db_bind_int(&cpyPath, ":branch", branchId);
13211331
db_bind_text(&cpyPath, ":srcpath", zSrcFile);
13221332
db_bind_int(&cpyPath, ":rid", srcRid);
13231333
db_step(&cpyPath);
13241334
db_reset(&cpyPath);
13251335
--- src/import.c
+++ src/import.c
@@ -1200,19 +1200,19 @@
1200 db_prepare(&addRev,
1201 "INSERT OR IGNORE INTO xrevisions (trev, tbranch) VALUES(:rev, :branch)"
1202 );
1203 db_prepare(&cpyPath,
1204 "INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1205 " SELECT :path||substr(filename, length(:srcpath)+1), :branch, uuid, perm"
1206 " FROM xfoci"
1207 " WHERE checkinID=:rid"
1208 " AND filename>:srcpath||'/'"
1209 " AND filename<:srcpath||'0'"
1210 );
1211 db_prepare(&cpyRoot,
1212 "INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1213 " SELECT :path||filename, :branch, uuid, perm"
1214 " FROM xfoci"
1215 " WHERE checkinID=:rid"
1216 );
1217 db_prepare(&revSrc,
1218 "UPDATE xrevisions SET tparent=:parent"
@@ -1309,16 +1309,26 @@
1309 }else if( strncmp(zKind, "dir", 3)==0 ){
1310 if( zSrcPath ){
1311 if( srcRid>0 ){
1312 if( zSrcFile[0]==0 ){
1313 db_bind_text(&cpyRoot, ":path", zFile);
 
 
 
 
 
1314 db_bind_int(&cpyRoot, ":branch", branchId);
1315 db_bind_int(&cpyRoot, ":rid", srcRid);
1316 db_step(&cpyRoot);
1317 db_reset(&cpyRoot);
1318 }else{
1319 db_bind_text(&cpyPath, ":path", zFile);
 
 
 
 
 
1320 db_bind_int(&cpyPath, ":branch", branchId);
1321 db_bind_text(&cpyPath, ":srcpath", zSrcFile);
1322 db_bind_int(&cpyPath, ":rid", srcRid);
1323 db_step(&cpyPath);
1324 db_reset(&cpyPath);
1325
--- src/import.c
+++ src/import.c
@@ -1200,19 +1200,19 @@
1200 db_prepare(&addRev,
1201 "INSERT OR IGNORE INTO xrevisions (trev, tbranch) VALUES(:rev, :branch)"
1202 );
1203 db_prepare(&cpyPath,
1204 "INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1205 " SELECT :path||:sep||substr(filename, length(:srcpath)+2), :branch, uuid, perm"
1206 " FROM xfoci"
1207 " WHERE checkinID=:rid"
1208 " AND filename>:srcpath||'/'"
1209 " AND filename<:srcpath||'0'"
1210 );
1211 db_prepare(&cpyRoot,
1212 "INSERT INTO xfiles (tpath, tbranch, tuuid, tperm)"
1213 " SELECT :path||:sep||filename, :branch, uuid, perm"
1214 " FROM xfoci"
1215 " WHERE checkinID=:rid"
1216 );
1217 db_prepare(&revSrc,
1218 "UPDATE xrevisions SET tparent=:parent"
@@ -1309,16 +1309,26 @@
1309 }else if( strncmp(zKind, "dir", 3)==0 ){
1310 if( zSrcPath ){
1311 if( srcRid>0 ){
1312 if( zSrcFile[0]==0 ){
1313 db_bind_text(&cpyRoot, ":path", zFile);
1314 if( zFile[0]!=0 ){
1315 db_bind_text(&cpyRoot, ":sep", "/");
1316 }else{
1317 db_bind_text(&cpyRoot, ":sep", "");
1318 }
1319 db_bind_int(&cpyRoot, ":branch", branchId);
1320 db_bind_int(&cpyRoot, ":rid", srcRid);
1321 db_step(&cpyRoot);
1322 db_reset(&cpyRoot);
1323 }else{
1324 db_bind_text(&cpyPath, ":path", zFile);
1325 if( zFile[0]!=0 ){
1326 db_bind_text(&cpyPath, ":sep", "/");
1327 }else{
1328 db_bind_text(&cpyPath, ":sep", "");
1329 }
1330 db_bind_int(&cpyPath, ":branch", branchId);
1331 db_bind_text(&cpyPath, ":srcpath", zSrcFile);
1332 db_bind_int(&cpyPath, ":rid", srcRid);
1333 db_step(&cpyPath);
1334 db_reset(&cpyPath);
1335

Keyboard Shortcuts

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