Fossil SCM

Print a warning during "fossil rebuild" for each Manifest which has F-cards but no R-card. This violates the documentation!

jan.nijtmans 2013-08-23 21:00 UTC trunk
Commit 2549a3a51b1c61734cc4e78a1dd0353b62ab31bd
1 file changed +6
--- src/manifest.c
+++ src/manifest.c
@@ -99,10 +99,11 @@
9999
char *zUuid; /* UUID that the tag is applied to */
100100
char *zValue; /* Value if the tag is really a property */
101101
} *aTag; /* One for each T card */
102102
int nField; /* Number of J cards */
103103
int nFieldAlloc; /* Slots allocated in aField[] */
104
+ int noR;
104105
struct {
105106
char *zName; /* Key or field name */
106107
char *zValue; /* Value of the field */
107108
} *aField; /* One for each J card */
108109
};
@@ -900,10 +901,11 @@
900901
if( p->zTicketUuid ) SYNTAX("K-card in check-in");
901902
if( p->zWiki ) SYNTAX("W-card in check-in");
902903
if( p->zWikiTitle ) SYNTAX("L-card in check-in");
903904
if( p->zTicketUuid ) SYNTAX("K-card in check-in");
904905
if( p->zAttachName ) SYNTAX("A-card in check-in");
906
+ if( !p->zRepoCksum ) p->noR=1;
905907
p->type = CFTYPE_MANIFEST;
906908
}else if( p->nField>0 || p->zTicketUuid!=0 ){
907909
if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
908910
if( p->zWiki ) SYNTAX("W-card in ticket");
909911
if( p->zWikiTitle ) SYNTAX("L-card in ticket");
@@ -934,10 +936,14 @@
934936
if( p->zMimetype ) SYNTAX("N-card in tag");
935937
if( !seenZ ) SYNTAX("missing Z-card on tag");
936938
p->type = CFTYPE_CONTROL;
937939
}
938940
md5sum_init();
941
+ if (p->noR && p->nFile>0) {
942
+ const char *x = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
943
+ fossil_warning("Manifest lacking R-card: %s by %s\n", x, p->zUser);
944
+ }
939945
if( !isRepeat ) g.parseCnt[p->type]++;
940946
return p;
941947
942948
manifest_syntax_error:
943949
if( zErr ){
944950
--- src/manifest.c
+++ src/manifest.c
@@ -99,10 +99,11 @@
99 char *zUuid; /* UUID that the tag is applied to */
100 char *zValue; /* Value if the tag is really a property */
101 } *aTag; /* One for each T card */
102 int nField; /* Number of J cards */
103 int nFieldAlloc; /* Slots allocated in aField[] */
 
104 struct {
105 char *zName; /* Key or field name */
106 char *zValue; /* Value of the field */
107 } *aField; /* One for each J card */
108 };
@@ -900,10 +901,11 @@
900 if( p->zTicketUuid ) SYNTAX("K-card in check-in");
901 if( p->zWiki ) SYNTAX("W-card in check-in");
902 if( p->zWikiTitle ) SYNTAX("L-card in check-in");
903 if( p->zTicketUuid ) SYNTAX("K-card in check-in");
904 if( p->zAttachName ) SYNTAX("A-card in check-in");
 
905 p->type = CFTYPE_MANIFEST;
906 }else if( p->nField>0 || p->zTicketUuid!=0 ){
907 if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
908 if( p->zWiki ) SYNTAX("W-card in ticket");
909 if( p->zWikiTitle ) SYNTAX("L-card in ticket");
@@ -934,10 +936,14 @@
934 if( p->zMimetype ) SYNTAX("N-card in tag");
935 if( !seenZ ) SYNTAX("missing Z-card on tag");
936 p->type = CFTYPE_CONTROL;
937 }
938 md5sum_init();
 
 
 
 
939 if( !isRepeat ) g.parseCnt[p->type]++;
940 return p;
941
942 manifest_syntax_error:
943 if( zErr ){
944
--- src/manifest.c
+++ src/manifest.c
@@ -99,10 +99,11 @@
99 char *zUuid; /* UUID that the tag is applied to */
100 char *zValue; /* Value if the tag is really a property */
101 } *aTag; /* One for each T card */
102 int nField; /* Number of J cards */
103 int nFieldAlloc; /* Slots allocated in aField[] */
104 int noR;
105 struct {
106 char *zName; /* Key or field name */
107 char *zValue; /* Value of the field */
108 } *aField; /* One for each J card */
109 };
@@ -900,10 +901,11 @@
901 if( p->zTicketUuid ) SYNTAX("K-card in check-in");
902 if( p->zWiki ) SYNTAX("W-card in check-in");
903 if( p->zWikiTitle ) SYNTAX("L-card in check-in");
904 if( p->zTicketUuid ) SYNTAX("K-card in check-in");
905 if( p->zAttachName ) SYNTAX("A-card in check-in");
906 if( !p->zRepoCksum ) p->noR=1;
907 p->type = CFTYPE_MANIFEST;
908 }else if( p->nField>0 || p->zTicketUuid!=0 ){
909 if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
910 if( p->zWiki ) SYNTAX("W-card in ticket");
911 if( p->zWikiTitle ) SYNTAX("L-card in ticket");
@@ -934,10 +936,14 @@
936 if( p->zMimetype ) SYNTAX("N-card in tag");
937 if( !seenZ ) SYNTAX("missing Z-card on tag");
938 p->type = CFTYPE_CONTROL;
939 }
940 md5sum_init();
941 if (p->noR && p->nFile>0) {
942 const char *x = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
943 fossil_warning("Manifest lacking R-card: %s by %s\n", x, p->zUser);
944 }
945 if( !isRepeat ) g.parseCnt[p->type]++;
946 return p;
947
948 manifest_syntax_error:
949 if( zErr ){
950

Keyboard Shortcuts

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