Changes On Branch artifact_description
Not logged in

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));