Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch artifact_description Excluding Merge-Ins
This is equivalent to a diff from b120bc8b26 to 2e38bed49e
2011-08-31
| ||
14:34 | Improvements to artifact descriptions merged into trunk. check-in: 49402fc722 user: drh tags: trunk | |
14:28 | Show the branch name in artifact descriptions. Closed-Leaf check-in: 2e38bed49e user: drh tags: artifact_description | |
09:55 | Merge latest trunk. check-in: 40ed431ca5 user: dmitry tags: symlinks | |
09:00 | I fix the html related to the artifact description, about pairs of ul. I also disable the [view] link in the 'fdiff' ui page, because we already provide a link to the artifact in the h2 titles stating the artifacts compared. check-in: e55105e58f user: viriketo tags: artifact_description | |
08:24 | Trying to improve the ui artifact description to something easier to parse by the human eye. I'd still like to have the branch name of every checkin, but I still don't know how to get it. check-in: d34a1b9f3d user: viriketo tags: artifact_description | |
2011-08-30
| ||
21:46 | merge trunk before changes check-in: ffa3b1eaf6 user: venkat tags: venks-emacs | |
18:04 | Print an error message and quite if the --user option appears on a "fossil commit" command but specifies a username not found in the database. Ticket [3ed2e994e1750b] check-in: b120bc8b26 user: drh tags: trunk | |
17:39 | Display the last modification time of tickets using either localtime or UTC according to user preferences. check-in: 839f105098 user: drh tags: trunk | |
Changes to src/info.c.
774 774 Blob *pDownloadName /* Fill with an appropriate download name */ 775 775 ){ 776 776 Stmt q; 777 777 int cnt = 0; 778 778 int nWiki = 0; 779 779 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); 780 780 781 + char *prevName = 0; 782 + 781 783 db_prepare(&q, 782 784 "SELECT filename.name, datetime(event.mtime)," 783 785 " coalesce(event.ecomment,event.comment)," 784 786 " coalesce(event.euser,event.user)," 785 - " b.uuid" 787 + " b.uuid," 788 + " coalesce((SELECT value FROM tagxref" 789 + " WHERE tagid=%d AND tagtype>0 AND rid=mlink.mid),'trunk')" 786 790 " FROM mlink, filename, event, blob a, blob b" 787 791 " WHERE filename.fnid=mlink.fnid" 788 792 " AND event.objid=mlink.mid" 789 793 " AND a.rid=mlink.fid" 790 794 " AND b.rid=mlink.mid" 791 - " AND mlink.fid=%d", 792 - rid 795 + " AND mlink.fid=%d" 796 + " ORDER BY filename.name, event.mtime", 797 + TAG_BRANCH, rid 793 798 ); 799 + @ <ul> 794 800 while( db_step(&q)==SQLITE_ROW ){ 795 801 const char *zName = db_column_text(&q, 0); 796 802 const char *zDate = db_column_text(&q, 1); 797 803 const char *zCom = db_column_text(&q, 2); 798 804 const char *zUser = db_column_text(&q, 3); 799 805 const char *zVers = db_column_text(&q, 4); 800 - if( cnt>0 ){ 801 - @ Also file 802 - }else{ 803 - @ File 806 + const char *zBr = db_column_text(&q, 5); 807 + if( !prevName || fossil_strcmp(zName, prevName) ) { 808 + if( prevName ) { 809 + @ </ul> 810 + } 811 + @ <li>File 812 + if( g.okHistory ){ 813 + @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> 814 + }else{ 815 + @ %h(zName) 816 + } 817 + @ <ul> 818 + prevName = fossil_strdup(zName); 804 819 } 805 - if( g.okHistory ){ 806 - @ <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a> 807 - }else{ 808 - @ %h(zName) 809 - } 810 - @ part of check-in 820 + @ <li> 821 + hyperlink_to_date(zDate,""); 822 + @ - part of checkin 811 823 hyperlink_to_uuid(zVers); 812 - @ - %w(zCom) by 813 - hyperlink_to_user(zUser,zDate," on"); 814 - hyperlink_to_date(zDate,"."); 824 + if( zBr && zBr[0] ){ 825 + if( g.okHistory ){ 826 + @ on branch <a href="%s(g.zTop)/timeline?r=%T(zBr)">%h(zBr)</a> 827 + }else{ 828 + @ on branch %h(zBr) 829 + } 830 + } 831 + @ - %w(zCom) (user: 832 + hyperlink_to_user(zUser,zDate,""); 833 + @ ) 815 834 if( g.okHistory ){ 816 835 @ <a href="%s(g.zTop)/annotate?checkin=%S(zVers)&filename=%T(zName)"> 817 836 @ [annotate]</a> 818 837 } 819 838 cnt++; 820 839 if( pDownloadName && blob_size(pDownloadName)==0 ){ 821 840 blob_append(pDownloadName, zName, -1); 822 841 } 823 842 } 843 + @ </ul></ul> 844 + free(prevName); 824 845 db_finalize(&q); 825 846 db_prepare(&q, 826 847 "SELECT substr(tagname, 6, 10000), datetime(event.mtime)," 827 848 " coalesce(event.euser, event.user)" 828 849 " FROM tagxref, tag, event" 829 850 " WHERE tagxref.rid=%d" 830 851 " AND tag.tagid=tagxref.tagid" ................................................................................ 986 1007 blob_reset(&c2); 987 1008 if( !isPatch ){ 988 1009 style_header("Diff"); 989 1010 style_submenu_element("Patch", "Patch", "%s/fdiff?v1=%T&v2=%T&patch", 990 1011 g.zTop, P("v1"), P("v2")); 991 1012 @ <h2>Differences From 992 1013 @ Artifact <a href="%s(g.zTop)/artifact/%S(zV1)">[%S(zV1)]</a>:</h2> 993 - @ <blockquote><p> 994 - object_description(v1, 1, 0); 995 - @ </p></blockquote> 1014 + object_description(v1, 0, 0); 996 1015 @ <h2>To Artifact <a href="%s(g.zTop)/artifact/%S(zV2)">[%S(zV2)]</a>:</h2> 997 - @ <blockquote><p> 998 - object_description(v2, 1, 0); 999 - @ </p></blockquote> 1016 + object_description(v2, 0, 0); 1000 1017 @ <hr /> 1001 1018 @ <blockquote><pre> 1002 1019 @ %h(blob_str(&diff)) 1003 1020 @ </pre></blockquote> 1004 1021 blob_reset(&diff); 1005 1022 style_footer(); 1006 1023 } ................................................................................ 1105 1122 style_submenu_element("Shun","Shun", "%s/shun?shun=%s#addshun", 1106 1123 g.zTop, zUuid); 1107 1124 } 1108 1125 } 1109 1126 style_header("Hex Artifact Content"); 1110 1127 zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid); 1111 1128 @ <h2>Artifact %s(zUuid):</h2> 1112 - @ <blockquote><p> 1113 1129 blob_zero(&downloadName); 1114 1130 object_description(rid, 0, &downloadName); 1115 1131 style_submenu_element("Download", "Download", 1116 1132 "%s/raw/%T?name=%s", g.zTop, blob_str(&downloadName), zUuid); 1117 - @ </p></blockquote> 1118 1133 @ <hr /> 1119 1134 content_get(rid, &content); 1120 1135 @ <blockquote><pre> 1121 1136 hexdump(&content); 1122 1137 @ </pre></blockquote> 1123 1138 style_footer(); 1124 1139 } ................................................................................ 1254 1269 style_submenu_element("Shun","Shun", "%s/shun?shun=%s#addshun", 1255 1270 g.zTop, zUuid); 1256 1271 } 1257 1272 } 1258 1273 style_header("Artifact Content"); 1259 1274 zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid); 1260 1275 @ <h2>Artifact %s(zUuid)</h2> 1261 - @ <blockquote><p> 1262 1276 blob_zero(&downloadName); 1263 1277 object_description(rid, 0, &downloadName); 1264 1278 style_submenu_element("Download", "Download", 1265 1279 "%s/raw/%T?name=%s", g.zTop, blob_str(&downloadName), zUuid); 1266 1280 zMime = mimetype_from_name(blob_str(&downloadName)); 1267 1281 if( zMime ){ 1268 1282 if( fossil_strcmp(zMime, "text/html")==0 ){ ................................................................................ 1281 1295 }else{ 1282 1296 renderAsWiki = 1; 1283 1297 style_submenu_element("Text", "Text", 1284 1298 "%s/artifact/%s?txt=1", g.zTop, zUuid); 1285 1299 } 1286 1300 } 1287 1301 } 1288 - @ </p></blockquote> 1289 1302 @ <hr /> 1290 1303 content_get(rid, &content); 1291 1304 if( renderAsWiki ){ 1292 1305 wiki_convert(&content, 0, 0); 1293 1306 }else if( renderAsHtml ){ 1294 1307 @ <div> 1295 1308 cgi_append_content(blob_buffer(&content), blob_size(&content));