Fossil SCM

fixes for various edge cases

baruch 2014-11-05 15:37 svn-import
Commit c9fb495e3d22433766aea793585877afbc40256b
2 files changed -2 +62 -38
-2
--- src/db.c
+++ src/db.c
@@ -286,12 +286,10 @@
286286
pStmt->pNext = db.pAllStmt;
287287
pStmt->pPrev = 0;
288288
if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
289289
db.pAllStmt = pStmt;
290290
va_end(ap);
291
- }else{
292
- db_reset(pStmt);
293291
}
294292
return rc;
295293
}
296294
297295
/*
298296
--- src/db.c
+++ src/db.c
@@ -286,12 +286,10 @@
286 pStmt->pNext = db.pAllStmt;
287 pStmt->pPrev = 0;
288 if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
289 db.pAllStmt = pStmt;
290 va_end(ap);
291 }else{
292 db_reset(pStmt);
293 }
294 return rc;
295 }
296
297 /*
298
--- src/db.c
+++ src/db.c
@@ -286,12 +286,10 @@
286 pStmt->pNext = db.pAllStmt;
287 pStmt->pPrev = 0;
288 if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
289 db.pAllStmt = pStmt;
290 va_end(ap);
 
 
291 }
292 return rc;
293 }
294
295 /*
296
+62 -38
--- src/import.c
+++ src/import.c
@@ -842,39 +842,45 @@
842842
}
843843
zLine = pRawProps;
844844
while( zLine<(pRawProps+nRawProps-10) ){
845845
char *eol;
846846
int propLen;
847
- if( zLine[0]!='K' ){
848
- fossil_fatal("svn-dump data format broken");
849
- }
850
- propLen = atoi(&zLine[2]);
851
- eol = strchr(zLine, '\n');
852
- zLine = eol+1;
853
- eol = zLine+propLen;
854
- if( *eol!='\n' ){
855
- fossil_fatal("svn-dump data format broken");
856
- }
857
- *eol = 0;
858
- rec->nProps += 1;
859
- rec->aProps = fossil_realloc(rec->aProps,
860
- sizeof(rec->aProps[0])*rec->nProps);
861
- rec->aProps[rec->nProps-1].zKey = zLine;
862
- zLine = eol+1;
863
- if( zLine[0]!='V' ){
864
- fossil_fatal("svn-dump data format broken");
865
- }
866
- propLen = atoi(&zLine[2]);
867
- eol = strchr(zLine, '\n');
868
- zLine = eol+1;
869
- eol = zLine+propLen;
870
- if( *eol!='\n' ){
871
- fossil_fatal("svn-dump data format broken");
872
- }
873
- *eol = 0;
874
- rec->aProps[rec->nProps-1].zVal = zLine;
875
- zLine = eol+1;
847
+ if( zLine[0]=='D' ){
848
+ propLen = atoi(&zLine[2]);
849
+ eol = strchr(zLine, '\n');
850
+ zLine = eol+1+propLen+1;
851
+ }else{
852
+ if( zLine[0]!='K' ){
853
+ fossil_fatal("svn-dump data format broken");
854
+ }
855
+ propLen = atoi(&zLine[2]);
856
+ eol = strchr(zLine, '\n');
857
+ zLine = eol+1;
858
+ eol = zLine+propLen;
859
+ if( *eol!='\n' ){
860
+ fossil_fatal("svn-dump data format broken");
861
+ }
862
+ *eol = 0;
863
+ rec->nProps += 1;
864
+ rec->aProps = fossil_realloc(rec->aProps,
865
+ sizeof(rec->aProps[0])*rec->nProps);
866
+ rec->aProps[rec->nProps-1].zKey = zLine;
867
+ zLine = eol+1;
868
+ if( zLine[0]!='V' ){
869
+ fossil_fatal("svn-dump data format broken");
870
+ }
871
+ propLen = atoi(&zLine[2]);
872
+ eol = strchr(zLine, '\n');
873
+ zLine = eol+1;
874
+ eol = zLine+propLen;
875
+ if( *eol!='\n' ){
876
+ fossil_fatal("svn-dump data format broken");
877
+ }
878
+ *eol = 0;
879
+ rec->aProps[rec->nProps-1].zVal = zLine;
880
+ zLine = eol+1;
881
+ }
876882
}
877883
}
878884
}
879885
880886
static int svn_read_rec(FILE *pIn, SvnRecord *rec){
@@ -911,10 +917,11 @@
911917
int nFilter;
912918
int rid;
913919
const char *zParentBranch = 0;
914920
Blob mcksum;
915921
922
+ blob_zero(&manifest);
916923
nBaseFilter = blob_size(&gsvn.filter);
917924
if( !gsvn.flatFlag ){
918925
if( gsvn.zBranch==0 ){ return; }
919926
if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){
920927
blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk);
@@ -925,12 +932,11 @@
925932
blob_append(&gsvn.filter, "*", 1);
926933
}
927934
if( db_int(0, "SELECT 1 FROM xhist WHERE trev=%d AND tpath GLOB %Q LIMIT 1",
928935
gsvn.rev, blob_str(&gsvn.filter))==0
929936
){
930
- blob_resize(&gsvn.filter, nBaseFilter);
931
- return;
937
+ goto skip_revision;
932938
}
933939
db_static_prepare(&insRev, "REPLACE INTO xrevisions (trev, tbranch, tuuid) "
934940
"VALUES(:rev, :branch, "
935941
" (SELECT uuid FROM blob WHERE rid=:rid))");
936942
db_static_prepare(&qParent, "SELECT tuuid, max(trev) FROM xrevisions "
@@ -947,29 +953,35 @@
947953
if( gsvn.parentRev<0 ){
948954
gsvn.parentRev =
949955
db_int(-1, "SELECT ifnull(max(trev),-1) FROM xrevisions");
950956
}
951957
gsvn.zParentBranch = gsvn.zBranch;
958
+ }else if( gsvn.zParentBranch==0 ){
959
+ gsvn.zParentBranch = mprintf("trunk");
952960
}
953
- db_bind_int(&insRev, ":rev", gsvn.rev);
961
+ /*db_bind_int(&insRev, ":rev", gsvn.rev);
954962
db_bind_text(&insRev, ":branch", gsvn.zBranch);
955963
db_bind_int(&insRev, ":rid", 0);
956964
db_step(&insRev);
957
- db_reset(&insRev);
965
+ db_reset(&insRev);*/
958966
}else{
959967
static int prevRev = -1;
960968
gsvn.parentRev = prevRev;
961969
gsvn.zParentBranch = gsvn.zBranch = "";
962970
prevRev = gsvn.rev;
963971
}
964
- blob_zero(&manifest);
972
+
965973
if( gsvn.zComment ){
966974
blob_appendf(&manifest, "C %F\n", gsvn.zComment);
967975
}else{
968976
blob_append(&manifest, "C (no\\scomment)\n", 16);
969977
}
970
- blob_appendf(&manifest, "D %s\n", gsvn.zDate);
978
+ if( gsvn.zDate ){
979
+ blob_appendf(&manifest, "D %s\n", gsvn.zDate);
980
+ }else{
981
+ goto skip_revision;
982
+ }
971983
nFilter = blob_size(&gsvn.filter)-1;
972984
db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter));
973985
while( db_step(&qFiles)==SQLITE_ROW ){
974986
const char *zFile = db_column_text(&qFiles, 0);
975987
int rid = db_column_int(&qFiles, 1);
@@ -977,11 +989,11 @@
977989
const char *zUuid;
978990
zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid);
979991
blob_appendf(&manifest, "F %F %s %s\n", zFile+nFilter, zUuid, zPerm);
980992
fossil_free(zUuid);
981993
}
982
- blob_resize(&gsvn.filter, nBaseFilter);
994
+ db_reset(&qFiles);
983995
if( gsvn.parentRev>=0 ){
984996
const char *zParentUuid;
985997
db_bind_int(&qParent, ":rev", gsvn.parentRev);
986998
db_bind_text(&qParent, ":branch", gsvn.zParentBranch);
987999
db_step(&qParent);
@@ -999,19 +1011,22 @@
9991011
zParentBranch = mprintf("%F", gsvn.zParentBranch);
10001012
}else{
10011013
zParentBranch = 0;
10021014
}
10031015
}
1016
+ db_reset(&qParent);
1017
+ db_reset(&qParent2);
10041018
}else{
10051019
blob_appendf(&manifest, "T *branch * trunk\n");
10061020
blob_appendf(&manifest, "T *sym-trunk *\n");
10071021
}
10081022
db_bind_int(&qTags, ":rev", gsvn.rev);
10091023
while( db_step(&qTags)==SQLITE_ROW ){
10101024
const char *zTag = db_column_text(&qTags, 0);
10111025
blob_appendf(&manifest, "T +sym-%s *\n", zTag);
10121026
}
1027
+ db_reset(&qTags);
10131028
blob_appendf(&manifest, "T +sym-svn-rev-%d *\n", gsvn.rev);
10141029
if( zParentBranch ) {
10151030
blob_appendf(&manifest, "T -sym-%s *\n", zParentBranch);
10161031
fossil_free(zParentBranch);
10171032
}
@@ -1028,10 +1043,14 @@
10281043
rid = content_put(&manifest);
10291044
db_bind_int(&insRev, ":rev", gsvn.rev);
10301045
db_bind_text(&insRev, ":branch", gsvn.zBranch);
10311046
db_bind_int(&insRev, ":rid", rid);
10321047
db_step(&insRev);
1048
+ db_reset(&insRev);
1049
+
1050
+skip_revision:
1051
+ blob_resize(&gsvn.filter, nBaseFilter);
10331052
if( gsvn.zParentBranch == gsvn.zBranch ){
10341053
gsvn.zParentBranch = 0;
10351054
}
10361055
if( gsvn.flatFlag ){
10371056
gsvn.zBranch = 0;
@@ -1179,11 +1198,14 @@
11791198
}
11801199
/* start new revision */
11811200
gsvn.rev = atoi(zTemp);
11821201
gsvn.zUser = mprintf("%s", svn_find_prop(rec, "svn:author"));
11831202
gsvn.zComment = mprintf("%s", svn_find_prop(rec, "svn:log"));
1184
- gsvn.zDate = date_in_standard_format(svn_find_prop(rec, "svn:date"));
1203
+ gsvn.zDate = svn_find_prop(rec, "svn:date");
1204
+ if( gsvn.zDate ){
1205
+ gsvn.zDate = date_in_standard_format(gsvn.zDate);
1206
+ }
11851207
gsvn.parentRev = -1;
11861208
gsvn.zParentBranch = 0;
11871209
gsvn.zBranch = 0;
11881210
bHasFiles = 0;
11891211
fossil_print("\rImporting SVN revision: %d", gsvn.rev);
@@ -1211,11 +1233,13 @@
12111233
}
12121234
}
12131235
if( !gsvn.flatFlag ){
12141236
if( (zTemp=svn_extract_branch(zPath))!=0 ){
12151237
if( gsvn.zBranch!=0 ){
1216
- if( strcmp(zTemp, gsvn.zBranch)!=0 ){
1238
+ if( strcmp(zTemp, gsvn.zBranch)!=0
1239
+ && strncmp(zAction, "delete", 6)!=0)
1240
+ {
12171241
fossil_fatal("Commit to multiple branches");
12181242
}
12191243
fossil_free(zTemp);
12201244
}else{
12211245
gsvn.zBranch = zTemp;
12221246
--- src/import.c
+++ src/import.c
@@ -842,39 +842,45 @@
842 }
843 zLine = pRawProps;
844 while( zLine<(pRawProps+nRawProps-10) ){
845 char *eol;
846 int propLen;
847 if( zLine[0]!='K' ){
848 fossil_fatal("svn-dump data format broken");
849 }
850 propLen = atoi(&zLine[2]);
851 eol = strchr(zLine, '\n');
852 zLine = eol+1;
853 eol = zLine+propLen;
854 if( *eol!='\n' ){
855 fossil_fatal("svn-dump data format broken");
856 }
857 *eol = 0;
858 rec->nProps += 1;
859 rec->aProps = fossil_realloc(rec->aProps,
860 sizeof(rec->aProps[0])*rec->nProps);
861 rec->aProps[rec->nProps-1].zKey = zLine;
862 zLine = eol+1;
863 if( zLine[0]!='V' ){
864 fossil_fatal("svn-dump data format broken");
865 }
866 propLen = atoi(&zLine[2]);
867 eol = strchr(zLine, '\n');
868 zLine = eol+1;
869 eol = zLine+propLen;
870 if( *eol!='\n' ){
871 fossil_fatal("svn-dump data format broken");
872 }
873 *eol = 0;
874 rec->aProps[rec->nProps-1].zVal = zLine;
875 zLine = eol+1;
 
 
 
 
 
 
876 }
877 }
878 }
879
880 static int svn_read_rec(FILE *pIn, SvnRecord *rec){
@@ -911,10 +917,11 @@
911 int nFilter;
912 int rid;
913 const char *zParentBranch = 0;
914 Blob mcksum;
915
 
916 nBaseFilter = blob_size(&gsvn.filter);
917 if( !gsvn.flatFlag ){
918 if( gsvn.zBranch==0 ){ return; }
919 if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){
920 blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk);
@@ -925,12 +932,11 @@
925 blob_append(&gsvn.filter, "*", 1);
926 }
927 if( db_int(0, "SELECT 1 FROM xhist WHERE trev=%d AND tpath GLOB %Q LIMIT 1",
928 gsvn.rev, blob_str(&gsvn.filter))==0
929 ){
930 blob_resize(&gsvn.filter, nBaseFilter);
931 return;
932 }
933 db_static_prepare(&insRev, "REPLACE INTO xrevisions (trev, tbranch, tuuid) "
934 "VALUES(:rev, :branch, "
935 " (SELECT uuid FROM blob WHERE rid=:rid))");
936 db_static_prepare(&qParent, "SELECT tuuid, max(trev) FROM xrevisions "
@@ -947,29 +953,35 @@
947 if( gsvn.parentRev<0 ){
948 gsvn.parentRev =
949 db_int(-1, "SELECT ifnull(max(trev),-1) FROM xrevisions");
950 }
951 gsvn.zParentBranch = gsvn.zBranch;
 
 
952 }
953 db_bind_int(&insRev, ":rev", gsvn.rev);
954 db_bind_text(&insRev, ":branch", gsvn.zBranch);
955 db_bind_int(&insRev, ":rid", 0);
956 db_step(&insRev);
957 db_reset(&insRev);
958 }else{
959 static int prevRev = -1;
960 gsvn.parentRev = prevRev;
961 gsvn.zParentBranch = gsvn.zBranch = "";
962 prevRev = gsvn.rev;
963 }
964 blob_zero(&manifest);
965 if( gsvn.zComment ){
966 blob_appendf(&manifest, "C %F\n", gsvn.zComment);
967 }else{
968 blob_append(&manifest, "C (no\\scomment)\n", 16);
969 }
970 blob_appendf(&manifest, "D %s\n", gsvn.zDate);
 
 
 
 
971 nFilter = blob_size(&gsvn.filter)-1;
972 db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter));
973 while( db_step(&qFiles)==SQLITE_ROW ){
974 const char *zFile = db_column_text(&qFiles, 0);
975 int rid = db_column_int(&qFiles, 1);
@@ -977,11 +989,11 @@
977 const char *zUuid;
978 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid);
979 blob_appendf(&manifest, "F %F %s %s\n", zFile+nFilter, zUuid, zPerm);
980 fossil_free(zUuid);
981 }
982 blob_resize(&gsvn.filter, nBaseFilter);
983 if( gsvn.parentRev>=0 ){
984 const char *zParentUuid;
985 db_bind_int(&qParent, ":rev", gsvn.parentRev);
986 db_bind_text(&qParent, ":branch", gsvn.zParentBranch);
987 db_step(&qParent);
@@ -999,19 +1011,22 @@
999 zParentBranch = mprintf("%F", gsvn.zParentBranch);
1000 }else{
1001 zParentBranch = 0;
1002 }
1003 }
 
 
1004 }else{
1005 blob_appendf(&manifest, "T *branch * trunk\n");
1006 blob_appendf(&manifest, "T *sym-trunk *\n");
1007 }
1008 db_bind_int(&qTags, ":rev", gsvn.rev);
1009 while( db_step(&qTags)==SQLITE_ROW ){
1010 const char *zTag = db_column_text(&qTags, 0);
1011 blob_appendf(&manifest, "T +sym-%s *\n", zTag);
1012 }
 
1013 blob_appendf(&manifest, "T +sym-svn-rev-%d *\n", gsvn.rev);
1014 if( zParentBranch ) {
1015 blob_appendf(&manifest, "T -sym-%s *\n", zParentBranch);
1016 fossil_free(zParentBranch);
1017 }
@@ -1028,10 +1043,14 @@
1028 rid = content_put(&manifest);
1029 db_bind_int(&insRev, ":rev", gsvn.rev);
1030 db_bind_text(&insRev, ":branch", gsvn.zBranch);
1031 db_bind_int(&insRev, ":rid", rid);
1032 db_step(&insRev);
 
 
 
 
1033 if( gsvn.zParentBranch == gsvn.zBranch ){
1034 gsvn.zParentBranch = 0;
1035 }
1036 if( gsvn.flatFlag ){
1037 gsvn.zBranch = 0;
@@ -1179,11 +1198,14 @@
1179 }
1180 /* start new revision */
1181 gsvn.rev = atoi(zTemp);
1182 gsvn.zUser = mprintf("%s", svn_find_prop(rec, "svn:author"));
1183 gsvn.zComment = mprintf("%s", svn_find_prop(rec, "svn:log"));
1184 gsvn.zDate = date_in_standard_format(svn_find_prop(rec, "svn:date"));
 
 
 
1185 gsvn.parentRev = -1;
1186 gsvn.zParentBranch = 0;
1187 gsvn.zBranch = 0;
1188 bHasFiles = 0;
1189 fossil_print("\rImporting SVN revision: %d", gsvn.rev);
@@ -1211,11 +1233,13 @@
1211 }
1212 }
1213 if( !gsvn.flatFlag ){
1214 if( (zTemp=svn_extract_branch(zPath))!=0 ){
1215 if( gsvn.zBranch!=0 ){
1216 if( strcmp(zTemp, gsvn.zBranch)!=0 ){
 
 
1217 fossil_fatal("Commit to multiple branches");
1218 }
1219 fossil_free(zTemp);
1220 }else{
1221 gsvn.zBranch = zTemp;
1222
--- src/import.c
+++ src/import.c
@@ -842,39 +842,45 @@
842 }
843 zLine = pRawProps;
844 while( zLine<(pRawProps+nRawProps-10) ){
845 char *eol;
846 int propLen;
847 if( zLine[0]=='D' ){
848 propLen = atoi(&zLine[2]);
849 eol = strchr(zLine, '\n');
850 zLine = eol+1+propLen+1;
851 }else{
852 if( zLine[0]!='K' ){
853 fossil_fatal("svn-dump data format broken");
854 }
855 propLen = atoi(&zLine[2]);
856 eol = strchr(zLine, '\n');
857 zLine = eol+1;
858 eol = zLine+propLen;
859 if( *eol!='\n' ){
860 fossil_fatal("svn-dump data format broken");
861 }
862 *eol = 0;
863 rec->nProps += 1;
864 rec->aProps = fossil_realloc(rec->aProps,
865 sizeof(rec->aProps[0])*rec->nProps);
866 rec->aProps[rec->nProps-1].zKey = zLine;
867 zLine = eol+1;
868 if( zLine[0]!='V' ){
869 fossil_fatal("svn-dump data format broken");
870 }
871 propLen = atoi(&zLine[2]);
872 eol = strchr(zLine, '\n');
873 zLine = eol+1;
874 eol = zLine+propLen;
875 if( *eol!='\n' ){
876 fossil_fatal("svn-dump data format broken");
877 }
878 *eol = 0;
879 rec->aProps[rec->nProps-1].zVal = zLine;
880 zLine = eol+1;
881 }
882 }
883 }
884 }
885
886 static int svn_read_rec(FILE *pIn, SvnRecord *rec){
@@ -911,10 +917,11 @@
917 int nFilter;
918 int rid;
919 const char *zParentBranch = 0;
920 Blob mcksum;
921
922 blob_zero(&manifest);
923 nBaseFilter = blob_size(&gsvn.filter);
924 if( !gsvn.flatFlag ){
925 if( gsvn.zBranch==0 ){ return; }
926 if( strncmp(gsvn.zBranch, gsvn.zTrunk, gsvn.lenTrunk-1)==0 ){
927 blob_appendf(&gsvn.filter, "%s*", gsvn.zTrunk);
@@ -925,12 +932,11 @@
932 blob_append(&gsvn.filter, "*", 1);
933 }
934 if( db_int(0, "SELECT 1 FROM xhist WHERE trev=%d AND tpath GLOB %Q LIMIT 1",
935 gsvn.rev, blob_str(&gsvn.filter))==0
936 ){
937 goto skip_revision;
 
938 }
939 db_static_prepare(&insRev, "REPLACE INTO xrevisions (trev, tbranch, tuuid) "
940 "VALUES(:rev, :branch, "
941 " (SELECT uuid FROM blob WHERE rid=:rid))");
942 db_static_prepare(&qParent, "SELECT tuuid, max(trev) FROM xrevisions "
@@ -947,29 +953,35 @@
953 if( gsvn.parentRev<0 ){
954 gsvn.parentRev =
955 db_int(-1, "SELECT ifnull(max(trev),-1) FROM xrevisions");
956 }
957 gsvn.zParentBranch = gsvn.zBranch;
958 }else if( gsvn.zParentBranch==0 ){
959 gsvn.zParentBranch = mprintf("trunk");
960 }
961 /*db_bind_int(&insRev, ":rev", gsvn.rev);
962 db_bind_text(&insRev, ":branch", gsvn.zBranch);
963 db_bind_int(&insRev, ":rid", 0);
964 db_step(&insRev);
965 db_reset(&insRev);*/
966 }else{
967 static int prevRev = -1;
968 gsvn.parentRev = prevRev;
969 gsvn.zParentBranch = gsvn.zBranch = "";
970 prevRev = gsvn.rev;
971 }
972
973 if( gsvn.zComment ){
974 blob_appendf(&manifest, "C %F\n", gsvn.zComment);
975 }else{
976 blob_append(&manifest, "C (no\\scomment)\n", 16);
977 }
978 if( gsvn.zDate ){
979 blob_appendf(&manifest, "D %s\n", gsvn.zDate);
980 }else{
981 goto skip_revision;
982 }
983 nFilter = blob_size(&gsvn.filter)-1;
984 db_bind_text(&qFiles, ":filter", blob_str(&gsvn.filter));
985 while( db_step(&qFiles)==SQLITE_ROW ){
986 const char *zFile = db_column_text(&qFiles, 0);
987 int rid = db_column_int(&qFiles, 1);
@@ -977,11 +989,11 @@
989 const char *zUuid;
990 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid);
991 blob_appendf(&manifest, "F %F %s %s\n", zFile+nFilter, zUuid, zPerm);
992 fossil_free(zUuid);
993 }
994 db_reset(&qFiles);
995 if( gsvn.parentRev>=0 ){
996 const char *zParentUuid;
997 db_bind_int(&qParent, ":rev", gsvn.parentRev);
998 db_bind_text(&qParent, ":branch", gsvn.zParentBranch);
999 db_step(&qParent);
@@ -999,19 +1011,22 @@
1011 zParentBranch = mprintf("%F", gsvn.zParentBranch);
1012 }else{
1013 zParentBranch = 0;
1014 }
1015 }
1016 db_reset(&qParent);
1017 db_reset(&qParent2);
1018 }else{
1019 blob_appendf(&manifest, "T *branch * trunk\n");
1020 blob_appendf(&manifest, "T *sym-trunk *\n");
1021 }
1022 db_bind_int(&qTags, ":rev", gsvn.rev);
1023 while( db_step(&qTags)==SQLITE_ROW ){
1024 const char *zTag = db_column_text(&qTags, 0);
1025 blob_appendf(&manifest, "T +sym-%s *\n", zTag);
1026 }
1027 db_reset(&qTags);
1028 blob_appendf(&manifest, "T +sym-svn-rev-%d *\n", gsvn.rev);
1029 if( zParentBranch ) {
1030 blob_appendf(&manifest, "T -sym-%s *\n", zParentBranch);
1031 fossil_free(zParentBranch);
1032 }
@@ -1028,10 +1043,14 @@
1043 rid = content_put(&manifest);
1044 db_bind_int(&insRev, ":rev", gsvn.rev);
1045 db_bind_text(&insRev, ":branch", gsvn.zBranch);
1046 db_bind_int(&insRev, ":rid", rid);
1047 db_step(&insRev);
1048 db_reset(&insRev);
1049
1050 skip_revision:
1051 blob_resize(&gsvn.filter, nBaseFilter);
1052 if( gsvn.zParentBranch == gsvn.zBranch ){
1053 gsvn.zParentBranch = 0;
1054 }
1055 if( gsvn.flatFlag ){
1056 gsvn.zBranch = 0;
@@ -1179,11 +1198,14 @@
1198 }
1199 /* start new revision */
1200 gsvn.rev = atoi(zTemp);
1201 gsvn.zUser = mprintf("%s", svn_find_prop(rec, "svn:author"));
1202 gsvn.zComment = mprintf("%s", svn_find_prop(rec, "svn:log"));
1203 gsvn.zDate = svn_find_prop(rec, "svn:date");
1204 if( gsvn.zDate ){
1205 gsvn.zDate = date_in_standard_format(gsvn.zDate);
1206 }
1207 gsvn.parentRev = -1;
1208 gsvn.zParentBranch = 0;
1209 gsvn.zBranch = 0;
1210 bHasFiles = 0;
1211 fossil_print("\rImporting SVN revision: %d", gsvn.rev);
@@ -1211,11 +1233,13 @@
1233 }
1234 }
1235 if( !gsvn.flatFlag ){
1236 if( (zTemp=svn_extract_branch(zPath))!=0 ){
1237 if( gsvn.zBranch!=0 ){
1238 if( strcmp(zTemp, gsvn.zBranch)!=0
1239 && strncmp(zAction, "delete", 6)!=0)
1240 {
1241 fossil_fatal("Commit to multiple branches");
1242 }
1243 fossil_free(zTemp);
1244 }else{
1245 gsvn.zBranch = zTemp;
1246

Keyboard Shortcuts

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