Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch better-error-msgs Excluding Merge-Ins
This is equivalent to a diff from bf3db3d1 to 04723514
2014-10-22
| ||
19:52 | Try to provide better information on manifest errors. ... (check-in: e9bccd1c user: mistachkin tags: trunk) | |
19:30 | Merge updates from trunk. ... (Closed-Leaf check-in: 04723514 user: mistachkin tags: better-error-msgs) | |
13:54 | Proposed enhancements to the --tk diff viewer from Ramon Ribó. ... (check-in: cbd4dca6 user: drh tags: tk-diff-viewer) | |
12:52 | Improved error message handling on the server side of "sync" requests. ... (check-in: bf3db3d1 user: drh tags: trunk) | |
2014-10-21
| ||
22:12 | Avoid invoking fossil_error() in manifest_crosslink() while processing a push, even though such errors are suppose to be ignored. ... (Closed-Leaf check-in: 1d857968 user: drh tags: experimental) | |
03:58 | Fix missing blank line. ... (check-in: 29c2f70b user: mistachkin tags: better-error-msgs) | |
03:23 | Fix build break when the TH1 docs feature is enabled. ... (check-in: 6d4e5d80 user: mistachkin tags: trunk) | |
Changes to src/manifest.c.
︙ | ︙ | |||
359 360 361 362 363 364 365 366 367 368 369 370 371 372 | char cPrevType = 0; char cType; char *z; int n; char *zUuid; int sz = 0; int isRepeat, hasSelfRefTag = 0; static Bag seen; const char *zErr = 0; if( rid==0 ){ isRepeat = 1; }else if( bag_find(&seen, rid) ){ isRepeat = 1; | > | 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 | char cPrevType = 0; char cType; char *z; int n; char *zUuid; int sz = 0; int isRepeat, hasSelfRefTag = 0; Blob bUuid = BLOB_INITIALIZER; static Bag seen; const char *zErr = 0; if( rid==0 ){ isRepeat = 1; }else if( bag_find(&seen, rid) ){ isRepeat = 1; |
︙ | ︙ | |||
402 403 404 405 406 407 408 409 410 411 412 413 414 415 | /* Then verify the Z-card. */ if( verify_z_card(z, n)==2 ){ blob_reset(pContent); blob_appendf(pErr, "incorrect Z-card cksum"); return 0; } /* Allocate a Manifest object to hold the parsed control artifact. */ p = fossil_malloc( sizeof(*p) ); memset(p, 0, sizeof(*p)); memcpy(&p->content, pContent, sizeof(p->content)); p->rid = rid; | > > > > > | 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 | /* Then verify the Z-card. */ if( verify_z_card(z, n)==2 ){ blob_reset(pContent); blob_appendf(pErr, "incorrect Z-card cksum"); return 0; } /* Store the UUID (before modifying the blob) only for error ** reporting purposes. */ sha1sum_blob(pContent, &bUuid); /* Allocate a Manifest object to hold the parsed control artifact. */ p = fossil_malloc( sizeof(*p) ); memset(p, 0, sizeof(*p)); memcpy(&p->content, pContent, sizeof(p->content)); p->rid = rid; |
︙ | ︙ | |||
943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 | if( p->rDate<=0.0 ) SYNTAX("missing date on control"); if( p->zMimetype ) SYNTAX("N-card in control"); if( !seenZ ) SYNTAX("missing Z-card on control"); p->type = CFTYPE_CONTROL; } md5sum_init(); if( !isRepeat ) g.parseCnt[p->type]++; return p; manifest_syntax_error: if( zErr ){ blob_appendf(pErr, "line %d: %s", lineNo, zErr); }else{ blob_appendf(pErr, "unknown error on line %d", lineNo); } md5sum_init(); manifest_destroy(p); | > > > > > | 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 | if( p->rDate<=0.0 ) SYNTAX("missing date on control"); if( p->zMimetype ) SYNTAX("N-card in control"); if( !seenZ ) SYNTAX("missing Z-card on control"); p->type = CFTYPE_CONTROL; } md5sum_init(); if( !isRepeat ) g.parseCnt[p->type]++; blob_reset(&bUuid); return p; manifest_syntax_error: if(bUuid.nUsed){ blob_appendf(pErr, "manifest [%.40s] ", blob_str(&bUuid)); blob_reset(&bUuid); } if( zErr ){ blob_appendf(pErr, "line %d: %s", lineNo, zErr); }else{ blob_appendf(pErr, "unknown error on line %d", lineNo); } md5sum_init(); manifest_destroy(p); |
︙ | ︙ | |||
1732 1733 1734 1735 1736 1737 1738 | const char *zScript = 0; const char *zUuid = 0; if( (p = manifest_cache_find(rid))!=0 ){ blob_reset(pContent); }else if( (p = manifest_parse(pContent, rid, 0))==0 ){ assert( blob_is_reset(pContent) || pContent==0 ); | | > > > | > | 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 | const char *zScript = 0; const char *zUuid = 0; if( (p = manifest_cache_find(rid))!=0 ){ blob_reset(pContent); }else if( (p = manifest_parse(pContent, rid, 0))==0 ){ assert( blob_is_reset(pContent) || pContent==0 ); if( (flags & MC_NO_ERRORS)==0 ){ fossil_error(1, "syntax error in manifest [%s]", db_text(0, "SELECT uuid FROM blob WHERE rid=%d",rid)); } return 0; } if( g.xlinkClusterOnly && p->type!=CFTYPE_CLUSTER ){ manifest_destroy(p); assert( blob_is_reset(pContent) ); if( (flags & MC_NO_ERRORS)==0 ) fossil_error(1, "no manifest"); return 0; } if( p->type==CFTYPE_MANIFEST && fetch_baseline(p, 0) ){ manifest_destroy(p); assert( blob_is_reset(pContent) ); if( (flags & MC_NO_ERRORS)==0 ){ fossil_error(1, "cannot fetch baseline for manifest [%s]", db_text(0, "SELECT uuid FROM blob WHERE rid=%d",rid)); } return 0; } db_begin_transaction(); if( p->type==CFTYPE_MANIFEST ){ if( permitHooks ){ zScript = xfer_commit_code(); |
︙ | ︙ |
Changes to src/xfer.c.
︙ | ︙ | |||
199 200 201 202 203 204 205 | Th_AppendToList(pzUuidList, pnUuidList, blob_str(&hash), blob_size(&hash)); blob_reset(&hash); if( rid==0 ){ blob_appendf(&pXfer->err, "%s", g.zErrMsg); blob_reset(&content); }else{ if( !isPriv ) content_make_public(rid); | | | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | Th_AppendToList(pzUuidList, pnUuidList, blob_str(&hash), blob_size(&hash)); blob_reset(&hash); if( rid==0 ){ blob_appendf(&pXfer->err, "%s", g.zErrMsg); blob_reset(&content); }else{ if( !isPriv ) content_make_public(rid); manifest_crosslink(rid, &content, MC_NO_ERRORS); } assert( blob_is_reset(&content) ); remote_has(rid); } /* ** The aToken[0..nToken-1] blob array is a parse of a "cfile" line |
︙ | ︙ |