Fossil SCM
Fix --flat option
Commit
57fa3896f3b489cda51748e1ed834d2ebf1f2215
Parent
65dc40a1edeab13…
1 file changed
+11
-5
+11
-5
| --- src/import.c | ||
| +++ src/import.c | ||
| @@ -943,14 +943,18 @@ | ||
| 943 | 943 | }else{ |
| 944 | 944 | blob_append(&manifest, "C (no\\scomment)\n", 16); |
| 945 | 945 | } |
| 946 | 946 | blob_appendf(&manifest, "D %s\n", gsvn.zDate); |
| 947 | 947 | nBaseFilter = blob_size(&gsvn.filter); |
| 948 | - if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){ | |
| 949 | - blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk); | |
| 948 | + if( !gsvn.flatFlag ){ | |
| 949 | + if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){ | |
| 950 | + blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk); | |
| 951 | + }else{ | |
| 952 | + blob_appendf(&gsvn.filter, "%s%s/*", gsvn.zBranches, gsvn.zBranch); | |
| 953 | + } | |
| 950 | 954 | }else{ |
| 951 | - blob_appendf(&gsvn.filter, "%s%s/*", gsvn.zBranches, gsvn.zBranch); | |
| 955 | + blob_append(&gsvn.filter, "*", 1); | |
| 952 | 956 | } |
| 953 | 957 | db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter)); |
| 954 | 958 | nFilter = blob_size(&gsvn.filter)-1; |
| 955 | 959 | while( db_step(&qFiles)==SQLITE_ROW ){ |
| 956 | 960 | const char *zFile = db_column_text(&qFiles, 0); |
| @@ -1169,11 +1173,10 @@ | ||
| 1169 | 1173 | } |
| 1170 | 1174 | }else{ |
| 1171 | 1175 | gsvn.zBranch = fossil_malloc(lenBranch+1); |
| 1172 | 1176 | memcpy(gsvn.zBranch, zTemp, lenBranch); |
| 1173 | 1177 | gsvn.zBranch[lenBranch] = '\0'; |
| 1174 | - bHasFiles = 1; | |
| 1175 | 1178 | } |
| 1176 | 1179 | }else |
| 1177 | 1180 | if( strncmp(zPath, gsvn.zTrunk, gsvn.lenTrunk)==0 ){ |
| 1178 | 1181 | if( gsvn.zBranch!=0 ){ |
| 1179 | 1182 | if( strncmp(gsvn.zTrunk, gsvn.zBranch, gsvn.lenTrunk-1)!=0 ){ |
| @@ -1181,20 +1184,20 @@ | ||
| 1181 | 1184 | } |
| 1182 | 1185 | }else{ |
| 1183 | 1186 | gsvn.zBranch = fossil_malloc(gsvn.lenTrunk); |
| 1184 | 1187 | memcpy(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1); |
| 1185 | 1188 | gsvn.zBranch[gsvn.lenTrunk-1] = '\0'; |
| 1186 | - bHasFiles = 1; | |
| 1187 | 1189 | } |
| 1188 | 1190 | } |
| 1189 | 1191 | } |
| 1190 | 1192 | if( strncmp(zAction, "delete", 6)==0 |
| 1191 | 1193 | || strncmp(zAction, "replace", 7)==0 ) |
| 1192 | 1194 | { |
| 1193 | 1195 | db_bind_text(&delPath, ":path", zPath); |
| 1194 | 1196 | db_step(&delPath); |
| 1195 | 1197 | db_reset(&delPath); |
| 1198 | + bHasFiles = 1; | |
| 1196 | 1199 | } /* no 'else' here since 'replace' does both a 'delete' and an 'add' */ |
| 1197 | 1200 | if( strncmp(zAction, "add", 3)==0 |
| 1198 | 1201 | || strncmp(zAction, "replace", 7)==0 ) |
| 1199 | 1202 | { |
| 1200 | 1203 | if( zKind==0 ){ |
| @@ -1204,10 +1207,11 @@ | ||
| 1204 | 1207 | db_bind_int(&cpyPath, ":srcrev", srcRev); |
| 1205 | 1208 | db_bind_text(&cpyPath, ":path", zPath); |
| 1206 | 1209 | db_bind_text(&cpyPath, ":srcpath", zSrcPath); |
| 1207 | 1210 | db_step(&cpyPath); |
| 1208 | 1211 | db_reset(&cpyPath); |
| 1212 | + bHasFiles = 1; | |
| 1209 | 1213 | if( !gsvn.flatFlag ){ |
| 1210 | 1214 | if( strncmp(zPath, gsvn.zBranches, gsvn.lenBranches)==0 ){ |
| 1211 | 1215 | zTemp = zPath+gsvn.lenBranches+strlen(gsvn.zBranch); |
| 1212 | 1216 | if( *zTemp==0 ){ |
| 1213 | 1217 | gsvn.parent = srcRev; |
| @@ -1246,10 +1250,11 @@ | ||
| 1246 | 1250 | db_bind_int(&addHist, ":rid", rid); |
| 1247 | 1251 | db_bind_text(&addHist, ":path", zPath); |
| 1248 | 1252 | db_bind_text(&addHist, ":perm", zPerm); |
| 1249 | 1253 | db_step(&addHist); |
| 1250 | 1254 | db_reset(&addHist); |
| 1255 | + bHasFiles = 1; | |
| 1251 | 1256 | } |
| 1252 | 1257 | }else |
| 1253 | 1258 | if( strncmp(zAction, "change", 6)==0 ){ |
| 1254 | 1259 | int rid = 0; |
| 1255 | 1260 | if( zKind==0 ){ |
| @@ -1270,10 +1275,11 @@ | ||
| 1270 | 1275 | db_bind_int(&addHist, ":rid", rid); |
| 1271 | 1276 | db_bind_text(&addHist, ":path", zPath); |
| 1272 | 1277 | db_bind_text(&addHist, ":perm", zPerm); |
| 1273 | 1278 | db_step(&addHist); |
| 1274 | 1279 | db_reset(&addHist); |
| 1280 | + bHasFiles = 1; | |
| 1275 | 1281 | }else |
| 1276 | 1282 | if( strncmp(zAction, "delete", 6)!=0 ){ /* already did this above */ |
| 1277 | 1283 | fossil_fatal("Unknown Node-action"); |
| 1278 | 1284 | } |
| 1279 | 1285 | }else{ |
| 1280 | 1286 |
| --- src/import.c | |
| +++ src/import.c | |
| @@ -943,14 +943,18 @@ | |
| 943 | }else{ |
| 944 | blob_append(&manifest, "C (no\\scomment)\n", 16); |
| 945 | } |
| 946 | blob_appendf(&manifest, "D %s\n", gsvn.zDate); |
| 947 | nBaseFilter = blob_size(&gsvn.filter); |
| 948 | if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){ |
| 949 | blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk); |
| 950 | }else{ |
| 951 | blob_appendf(&gsvn.filter, "%s%s/*", gsvn.zBranches, gsvn.zBranch); |
| 952 | } |
| 953 | db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter)); |
| 954 | nFilter = blob_size(&gsvn.filter)-1; |
| 955 | while( db_step(&qFiles)==SQLITE_ROW ){ |
| 956 | const char *zFile = db_column_text(&qFiles, 0); |
| @@ -1169,11 +1173,10 @@ | |
| 1169 | } |
| 1170 | }else{ |
| 1171 | gsvn.zBranch = fossil_malloc(lenBranch+1); |
| 1172 | memcpy(gsvn.zBranch, zTemp, lenBranch); |
| 1173 | gsvn.zBranch[lenBranch] = '\0'; |
| 1174 | bHasFiles = 1; |
| 1175 | } |
| 1176 | }else |
| 1177 | if( strncmp(zPath, gsvn.zTrunk, gsvn.lenTrunk)==0 ){ |
| 1178 | if( gsvn.zBranch!=0 ){ |
| 1179 | if( strncmp(gsvn.zTrunk, gsvn.zBranch, gsvn.lenTrunk-1)!=0 ){ |
| @@ -1181,20 +1184,20 @@ | |
| 1181 | } |
| 1182 | }else{ |
| 1183 | gsvn.zBranch = fossil_malloc(gsvn.lenTrunk); |
| 1184 | memcpy(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1); |
| 1185 | gsvn.zBranch[gsvn.lenTrunk-1] = '\0'; |
| 1186 | bHasFiles = 1; |
| 1187 | } |
| 1188 | } |
| 1189 | } |
| 1190 | if( strncmp(zAction, "delete", 6)==0 |
| 1191 | || strncmp(zAction, "replace", 7)==0 ) |
| 1192 | { |
| 1193 | db_bind_text(&delPath, ":path", zPath); |
| 1194 | db_step(&delPath); |
| 1195 | db_reset(&delPath); |
| 1196 | } /* no 'else' here since 'replace' does both a 'delete' and an 'add' */ |
| 1197 | if( strncmp(zAction, "add", 3)==0 |
| 1198 | || strncmp(zAction, "replace", 7)==0 ) |
| 1199 | { |
| 1200 | if( zKind==0 ){ |
| @@ -1204,10 +1207,11 @@ | |
| 1204 | db_bind_int(&cpyPath, ":srcrev", srcRev); |
| 1205 | db_bind_text(&cpyPath, ":path", zPath); |
| 1206 | db_bind_text(&cpyPath, ":srcpath", zSrcPath); |
| 1207 | db_step(&cpyPath); |
| 1208 | db_reset(&cpyPath); |
| 1209 | if( !gsvn.flatFlag ){ |
| 1210 | if( strncmp(zPath, gsvn.zBranches, gsvn.lenBranches)==0 ){ |
| 1211 | zTemp = zPath+gsvn.lenBranches+strlen(gsvn.zBranch); |
| 1212 | if( *zTemp==0 ){ |
| 1213 | gsvn.parent = srcRev; |
| @@ -1246,10 +1250,11 @@ | |
| 1246 | db_bind_int(&addHist, ":rid", rid); |
| 1247 | db_bind_text(&addHist, ":path", zPath); |
| 1248 | db_bind_text(&addHist, ":perm", zPerm); |
| 1249 | db_step(&addHist); |
| 1250 | db_reset(&addHist); |
| 1251 | } |
| 1252 | }else |
| 1253 | if( strncmp(zAction, "change", 6)==0 ){ |
| 1254 | int rid = 0; |
| 1255 | if( zKind==0 ){ |
| @@ -1270,10 +1275,11 @@ | |
| 1270 | db_bind_int(&addHist, ":rid", rid); |
| 1271 | db_bind_text(&addHist, ":path", zPath); |
| 1272 | db_bind_text(&addHist, ":perm", zPerm); |
| 1273 | db_step(&addHist); |
| 1274 | db_reset(&addHist); |
| 1275 | }else |
| 1276 | if( strncmp(zAction, "delete", 6)!=0 ){ /* already did this above */ |
| 1277 | fossil_fatal("Unknown Node-action"); |
| 1278 | } |
| 1279 | }else{ |
| 1280 |
| --- src/import.c | |
| +++ src/import.c | |
| @@ -943,14 +943,18 @@ | |
| 943 | }else{ |
| 944 | blob_append(&manifest, "C (no\\scomment)\n", 16); |
| 945 | } |
| 946 | blob_appendf(&manifest, "D %s\n", gsvn.zDate); |
| 947 | nBaseFilter = blob_size(&gsvn.filter); |
| 948 | if( !gsvn.flatFlag ){ |
| 949 | if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){ |
| 950 | blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk); |
| 951 | }else{ |
| 952 | blob_appendf(&gsvn.filter, "%s%s/*", gsvn.zBranches, gsvn.zBranch); |
| 953 | } |
| 954 | }else{ |
| 955 | blob_append(&gsvn.filter, "*", 1); |
| 956 | } |
| 957 | db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter)); |
| 958 | nFilter = blob_size(&gsvn.filter)-1; |
| 959 | while( db_step(&qFiles)==SQLITE_ROW ){ |
| 960 | const char *zFile = db_column_text(&qFiles, 0); |
| @@ -1169,11 +1173,10 @@ | |
| 1173 | } |
| 1174 | }else{ |
| 1175 | gsvn.zBranch = fossil_malloc(lenBranch+1); |
| 1176 | memcpy(gsvn.zBranch, zTemp, lenBranch); |
| 1177 | gsvn.zBranch[lenBranch] = '\0'; |
| 1178 | } |
| 1179 | }else |
| 1180 | if( strncmp(zPath, gsvn.zTrunk, gsvn.lenTrunk)==0 ){ |
| 1181 | if( gsvn.zBranch!=0 ){ |
| 1182 | if( strncmp(gsvn.zTrunk, gsvn.zBranch, gsvn.lenTrunk-1)!=0 ){ |
| @@ -1181,20 +1184,20 @@ | |
| 1184 | } |
| 1185 | }else{ |
| 1186 | gsvn.zBranch = fossil_malloc(gsvn.lenTrunk); |
| 1187 | memcpy(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1); |
| 1188 | gsvn.zBranch[gsvn.lenTrunk-1] = '\0'; |
| 1189 | } |
| 1190 | } |
| 1191 | } |
| 1192 | if( strncmp(zAction, "delete", 6)==0 |
| 1193 | || strncmp(zAction, "replace", 7)==0 ) |
| 1194 | { |
| 1195 | db_bind_text(&delPath, ":path", zPath); |
| 1196 | db_step(&delPath); |
| 1197 | db_reset(&delPath); |
| 1198 | bHasFiles = 1; |
| 1199 | } /* no 'else' here since 'replace' does both a 'delete' and an 'add' */ |
| 1200 | if( strncmp(zAction, "add", 3)==0 |
| 1201 | || strncmp(zAction, "replace", 7)==0 ) |
| 1202 | { |
| 1203 | if( zKind==0 ){ |
| @@ -1204,10 +1207,11 @@ | |
| 1207 | db_bind_int(&cpyPath, ":srcrev", srcRev); |
| 1208 | db_bind_text(&cpyPath, ":path", zPath); |
| 1209 | db_bind_text(&cpyPath, ":srcpath", zSrcPath); |
| 1210 | db_step(&cpyPath); |
| 1211 | db_reset(&cpyPath); |
| 1212 | bHasFiles = 1; |
| 1213 | if( !gsvn.flatFlag ){ |
| 1214 | if( strncmp(zPath, gsvn.zBranches, gsvn.lenBranches)==0 ){ |
| 1215 | zTemp = zPath+gsvn.lenBranches+strlen(gsvn.zBranch); |
| 1216 | if( *zTemp==0 ){ |
| 1217 | gsvn.parent = srcRev; |
| @@ -1246,10 +1250,11 @@ | |
| 1250 | db_bind_int(&addHist, ":rid", rid); |
| 1251 | db_bind_text(&addHist, ":path", zPath); |
| 1252 | db_bind_text(&addHist, ":perm", zPerm); |
| 1253 | db_step(&addHist); |
| 1254 | db_reset(&addHist); |
| 1255 | bHasFiles = 1; |
| 1256 | } |
| 1257 | }else |
| 1258 | if( strncmp(zAction, "change", 6)==0 ){ |
| 1259 | int rid = 0; |
| 1260 | if( zKind==0 ){ |
| @@ -1270,10 +1275,11 @@ | |
| 1275 | db_bind_int(&addHist, ":rid", rid); |
| 1276 | db_bind_text(&addHist, ":path", zPath); |
| 1277 | db_bind_text(&addHist, ":perm", zPerm); |
| 1278 | db_step(&addHist); |
| 1279 | db_reset(&addHist); |
| 1280 | bHasFiles = 1; |
| 1281 | }else |
| 1282 | if( strncmp(zAction, "delete", 6)!=0 ){ /* already did this above */ |
| 1283 | fossil_fatal("Unknown Node-action"); |
| 1284 | } |
| 1285 | }else{ |
| 1286 |