Key: Active Review Comment
Change # By Time Comment
1055 cpb 2011-Feb-18 13:43 (#823) MAX() isn't a good function to use on numeric values stored as text. "Force" fields to numbers first.
1054 cpb 2010-Nov-26 15:55 (#822) add a secondary sort by date as default. Adding a "Sort by date"/"Sort by Relevance" toggle should be trivial from here.
1053 cpb 2009-Dec-23 14:03 check for valid ticket and cn before trying to output anything
1052 cpb 2009-Dec-23 14:03 oops... make sure it's a valid ticket number
1051 cpb 2009-Dec-09 15:42 minor fixups to the RSS HTML, cleans up inspections a touch
1050 cpb 2009-Dec-06 15:57 (#789) searching on a ticket or checking number in the appropriate format will take the user directly to the appropriate page. Implemented =is_ticket()= and =is_chng()= functions to simplify the process and use them in /cvstrac/format.c as well.
1049 cpb 2009-Oct-24 11:23 (#810) identify milestones in the ticket history
1048 cpb 2009-Jun-19 13:56 (#802) oops, we don't use that yet, if ever.
1047 cpb 2009-Jun-04 16:42 (#800) end transaction when no GIT repo defined
1046 ono 2009-May-15 21:59 (#39) diff coloring using DIVs and stylesheets classes =diffx= where =x= is *h*eader, *c*hunk, *t*ext, *a*dded, *r*emoved
1045 ono 2009-May-15 13:55 (#797) make sure we get latest change date relative to specified directory
1044 ono 2009-May-15 12:32 *: Download tarball is now directory browse action, rather than separate link *: Tarball now contains version and subdirectory only if necessary *: Determines modification date using filechng table *: Subversion now fixed for UNIX environment, also supports pure =tar=, =tar.gz= and =tar.bz2= *: GIT implementation using =git archive=
1043 ono 2009-May-14 12:25 (#799) properly escape %%.
1042 ono 2009-May-14 12:11 (#534, #567) ensure we are not sending Content-Length with value of 0 (zero), that may happen on some actions and confuse browsers.
1041 ono 2009-May-14 12:01 (#798) Remove trailing spaces from rlog Author/Committer names, drop Commiter info if is the person as Author.
1040 ono 2009-May-14 11:48 (#797) download current folder as tarball feature, structure for all SCM, Subversion implementation trough =svntar=.
1039 ono 2009-May-14 11:22 (#740) take the SRCDIR path from the file placement, a do not hardcode SRCDIR anymore.
1038 cpb 2009-Mar-27 23:53 some style cleanups, get rid of unused variables, etc.
1037 cpb 2009-Mar-27 13:40 add support for incoming {link: InterTrac} links. This allows Trac sites to reference CVSTrac objects most naturally. Outgoing InterTrac links _from_ a CVSTrac install can be accomplished with custom markup, as in: {quote:<a href="<url>/intertrac/%k" title="Remote InterTrac %k">%x</a>} which would be referenced via something like: {quote:{<markup>: ticket:451 #451}} {quote:{trac: wiki:InterTrac InterTrac}}
1036 cpb 2009-Mar-14 02:07 (#791) fine tune the report RSS output. This makes it reasonably functional, although I'm not entirely happy with how dates are(n't) managed.
1035 cpb 2009-Mar-13 02:22 (#783) direct inspections to the appropriate positions in chngview from both the timeline, RSS, as well as after sumitting them.
1034 cpb 2009-Mar-13 02:00 (#783) when we append to a ticket we get bounced back to the ticket view. Might as well get bounced back to the anchor we just added.
1033 cpb 2009-Mar-10 03:06 (#791) first stab at a generic report RSS feed. Item titles need some fine tuning and there's no way to determine dates, but otherwise it seems sane.
1032 cpb 2009-Mar-10 01:19 the dashed-forms of the git commands have been removed in 1.6+
1031 cpb 2009-Mar-08 00:14 (#791) allow individual pages to have their own RSS feeds This means we need to allow generic RSS substitutions in the header. To that end, we add %R for the URL and %F for the title (a distinct feed needs a distinct title). Figuring out whether a page has its own RSS feed is done by looking for an "RSS" entry in the action bar. The title is built from the project name and the current page title. Then, to override the default (timeline) RSS feed on any given page, it's just a matter of doing something like: common_add_action_item(mprintf("tkthistory.rss?tn=%d",tn), "RSS"); and the header output logic will just pick it up.
1030 cpb 2009-Mar-07 00:42 (#231) ditch the opaque class names like "border2" and "bkgnd1" and replace with more meaningful class names, and related cleanups.
1029 cpb 2009-Mar-06 03:06 (#177) makes HTML entities _work_ in wiki markup and (maybe) other places In order to allow it to work in both normal web browsing and the encoding needed for RSS (where we _need_ to encode even entities), I modified htmlize (%h) to take an "allow entities" flag, and added a new %R formatting option which disables this flag. %R is used by the RSS formatter to do the final content generation. This means anywhere wiki content is allowed someone can write é and, apparently, it works. Keep in mind that I don't normally use anything except ASCII in my day-to-day environment, so someone who cares about this stuff should maybe test it out a bit more than myself.
1028 cpb 2009-Mar-02 00:07 (#787) append/add remarks should be hidden for users without ticket write permissions
1027 cpb 2009-Feb-25 02:04 (#786) ensure local attachments links from the {quote:{image:}} tags aren't broken in the RSS feed. This requires adding an appropriate page id to the formatting calls.
1026 cpb 2009-Feb-19 03:38 (#783) when dealing with remarks in the timeline, break them out separately and (try to) link directly to a new remark in the ticket. This won't work perfectly when dealing with direct edits to the remark field, but for normal use it should be fine.
1025 cpb 2009-Feb-19 03:23 (#783) generate the link to appended remarks by targetting what should be the anchor. Doing so from the timeline will be a little more complicated.
1024 cpb 2009-Feb-19 02:59 (#783) when appending a ticket comment, write an HTML anchor based on the change time so we can find it later.
1023 cpb 2009-Feb-19 02:33 (#781) don't run the external diff filter if the output is supposed to be _raw_
1022 cpb 2009-Jan-17 16:31 (#777) an index on filechng(vers) speeds the update quite a bit for larger projects.
1021 cpb 2008-Dec-28 15:03 (#774) make external tools work in reports
1020 cpb 2008-Nov-27 17:49 oops, that's supposed to be a call, not output
1019 cpb 2008-Nov-14 15:34 (#768) merge [1018] fix printf argument
1018 cpb 2008-Nov-14 15:33 (#768) printf argument needs escaping, and it's the wrong one anyways
1017 cpb 2008-Oct-29 18:46 (#766) merge [1016]: handle missing f parameter
1016 cpb 2008-Oct-29 18:45 (#766) handle missing f parameter
1015 cpb 2008-Oct-23 16:24 we need to armour the cookie value. Otherwise, it can contain values which aren't legal in a CGI parameter name.
1014 cpb 2008-Oct-21 02:05 add some CSRF ( prevention. It's a little over-engineered in places, but the patch itself is non-intrusive enough that this isn't a huge problem.
1013 cpb 2008-Oct-11 01:03 (#764) admin/setup permissions should also imply wiki.
1012 cpb 2008-Oct-11 01:02 (#764) _setup_ permissions should also imply wiki permissions. Simplify the Windows condition slightly.
1011 cpb 2008-Oct-09 22:59 (#764) merge [1010]: don't use CGI output stuff when we don't have a URL. This may not be needed in HEAD, but it certainly won't hurt.
1010 cpb 2008-Oct-09 19:57 (#764) don't try to use CGI methods when there's no URL.
1009 ono 2008-Sep-16 15:12 Carriage returns, line feeds and tabs in the command line may make the Windows command line incomplete.
1008 ono 2008-Sep-16 15:10 (#118) %c using owner when no contact specified was broken by 1.111 commit.
1007 cpb 2008-Sep-16 14:23 (#762) fix order of month/date in output.
1006 ono 2008-Sep-15 14:40 Update MinGW makefiles so they work fine with latest code.
1005 ono 2008-Sep-15 14:36 (#761) correct project name to correct case for case-insensitive Windows
1004 cpb 2008-Sep-15 13:12 In order to actually _apply_ a patchset, you really want to have the relative name in the context section. Some versions of patch don't seem to want to pick it up from Index. This is fine for shallow projects (i.e. all files in one directory) but it doesn't work for deep projects. So change the rcsdiff command line so we get full relative pathnames in the patch.
1003 cpb 2008-Jun-30 21:31 (#759) when putting the id in the hidden field for deletion, use the right formatting (%h vs %t).
1002 cpb 2008-Jun-08 15:11 (#758) patch from filodej to implement external filters for GIT diffs. Remove the File List interface for GIT since it's not applicable.
1001 cpb 2008-Apr-17 01:43 (#742) allow the report editor to enter a wiki description. An abbreviated version gets shown in the report list. It _doesn't_ get shown in embedded reports. This may or may not be desirable, depending on the context of the embedding.
1000 cpb 2008-Apr-17 01:20 (#749) a few formatting tweaks
999 cpb 2008-Apr-16 02:10 #749, #742: database schema changes, related UI changes *: add a "reason" field to the WIKI table to describe a change, add the corresponding text field to the wikiedit page and display the field in various places. Probably could be done in more places. *: add a "comment" field to the INSPECT table to hold wiki markup. Some more work needs to be done in here. *: add a "description" field to the REPORTFMT table to hold a wiki description of a report. No UI element yet, just a placeholder in the database.
998 cpb 2008-Apr-12 01:23 (#231) have a go at eliminating the use of <font> It was mostly in error output, so added a error class to the CSS and updated all the code. Mind you, error output really should be standardized in a single function somewhere. Only one <font> left in the table stuff in /cvstrac/view.c
997 cpb 2008-Apr-12 00:44 (#751) add a "safe ticket editting mode" similar to Trac's which _should_ prevent users from blindly stomping on each others changes. Basically, when a user starts editting a ticket (or appending a remark), the last "changetime" is embedded in the form. At submit time, CVSTrac checks to ensure that changetime is still good and refuses to proceed. The user still has all the change visible and can copy them elsewhere, but can't "finish" the change. A "force" checkbox might be useful here? By default, this is disabled.
996 cpb 2008-Apr-11 12:07 (#750) using the history entry date works better if we actually do use it.
995 cpb 2008-Apr-10 00:54 (#750) if we can't map a tag to a previous tag like the history suggests we should, just go with the date of the current history entry rather than dropping the tag entirely.
994 cpb 2008-Apr-10 00:50 (#744) use =strcasecmp()= and =strncasecmp()= (both POSIX standard calls) rather than the now non-public SQLite versions.
993 cpb 2008-Feb-18 11:25 Forgot why we did that. Comment it so I remember next time
992 cpb 2008-Jan-01 00:16 (#738) output the resulting row count at the end of the report
991 cpb 2007-Dec-19 22:36 (#734) explicitly check for IIS before trying to work around a bunch of IIS bugs. Note that we expose the g.isIIS even on non-Windows O/S. This won't affect performance, but makes the code clearer in places.
990 cpb 2007-Dec-19 02:23 (#733) fix header ordering here, too
989 cpb 2007-Dec-19 00:05 (#733) fix header ordering so browse.h is last
988 cpb 2007-Dec-19 00:04 (#734) SCRIPT_NAME _can_ be undefined in some servers
987 cpb 2007-Dec-16 22:45 (#732) always display ticket numbers with a 'hash'
986 ono 2007-Nov-07 12:41 Removing empty <tr></tr> #729
985 ono 2007-Nov-07 10:37 Allow specifying current document URL (without base) with %D in the template, so we can make links to other project same page using:
984 ono 2007-Nov-07 10:34 More HTML compatibility fixes #729: * common_add_nad_item, common_add_action_item shall not be escaped with entities (rollback) * some ijected URL parts needs to be formatted with %d * fixed empty <table> for checkings list * fixed </diff> -> </div>
983 ono 2007-Nov-06 15:33 Making HTML markup W3C compatible (#729) * removing duplicate timeline ID * escaping ampersands * moving <p> tags inside forms * changing hspace into margin * changing wrap="type" into class wraptype (this may be problematic) * adding DocType ... still we got Content-Type missing and warning with lists + <p> at Wiki
982 ono 2007-Nov-06 13:11 Make sure APPNAME has extension where it is needed (Windows).
981 ono 2007-Nov-06 13:10 Ignore local Makefile file.
980 ono 2007-Nov-06 11:59 Microsoft IIS REQUEST_URI was adding "?" (question mark) regardless of QUERY_STRING emptiness
979 ono 2007-Nov-05 17:10 Finalizing #624 - Windows support: * CVSTrac is checking now for IIS and applying fixes relatively * on IIS we force absolute redirects to fix cookie and other problems * more commens for Windows dependent code
978 ono 2007-Nov-03 02:03 Ignore autogenerated files.
977 ono 2007-Nov-03 02:00 Final Windows MinGW port: * pieces of code that are Windows specific marked with CVSTRAC_WINDOWS defines * variables that are different on UNIX and Windows using OS_VAL(unix,win) macro * added password synchronization option to Windows * moved away "mingw" -> "win32" + ""
976 ono 2007-Nov-03 01:32 Turn static functions into macros that are changed into -1 for unsupported functions.
975 ono 2007-Nov-03 00:35 More clean CSS + HTML, as in #716
974 ono 2007-Nov-02 18:59 UNIX header wrappers for Windows updated with English comments.
973 ono 2007-Oct-31 17:08 Defines CVSTRAC_WINDOWS and OS_VAL macro which is used to relatively choose UNIX or Windows value
972 ono 2007-Oct-31 17:07 Sed on Windows doesn't like empty line -> thinks it is some invalid command
971 ono 2007-Oct-31 17:06 MinGW (GCC on Windows) makefiles and UNIX wrappers
970 cpb 2007-Oct-21 15:54 (#724) more options for custom markup output handling *: add some documentation about markup output filtering *: add "trusted" options for program markups. No HTML filtering is done on their output. It's assumed that the markups aren't going to allow dangerous constructs through. *: Obviously, only external programs are able to do filtering so we don't have trusted versions of non-program markups.
969 cpb 2007-Oct-21 15:18 (#725) use =sqlite3_free()= rather than =free()= on SQLite 3 functions returning memory strings.
968 cpb 2007-Oct-21 15:15 fix warning: =zAuthor= cannot be NULL
967 cpb 2007-Sep-24 12:28 (#720) works better without the typo
966 cpb 2007-Sep-22 22:13 (#720) fix ETag *: entity tag is a =quoted-string=, and hence needs quotes *: Vary:* SHOULD be included when dealing with server-negotiated responses
965 cpb 2007-Aug-23 12:04 (#715) don't show extra fields with missing/empty descriptions *: This should catch both "NULL" descriptions and zero-length strings. *: Additionally, tighten up the setup page to always remove the old description before changing anything and check the new description before setting anything.
964 cpb 2007-Aug-22 23:34 (#713) remove stray quote from HTML tag
963 cpb 2007-Aug-22 23:33 (#714) ticket titles aren't wiki formatted, but still need HTML armouring
962 cpb 2007-Aug-22 00:40 (#712) tighten up error handling in initial =svnlook youngest= call.
961 cpb 2007-Aug-15 01:16 (#711) fix missing paren
960 cpb 2007-Aug-09 12:12 (#710) fix unclosed <form> Break the two separate conditions into separate <form> areas and loosen up the condition which create the setup_user link.
959 cpb 2007-Jun-29 01:01 rather than just selecting a few headers to export as HTTP_ environment variables, automatically pass them all through. This makes them available to scripts and is useful for debugging (via /test).
958 cpb 2007-Jun-28 02:05 (#704) merge [957]: drop dupe </li>
957 cpb 2007-Jun-28 02:03 (#704) drop duplicate </li>
956 cpb 2007-Jun-28 01:20 (#703) not the correct format for maxSummaryLength limit hit
955 cpb 2007-Jun-27 10:41 (#702) merge [954]: typo fix
954 cpb 2007-Jun-27 10:37 (#702) fix typo
953 cpb 2007-Jun-27 02:00 revert color scheme to something closer to CVSTrac original.
952 cpb 2007-Jun-27 02:00 (#231) added a fairly clean alternate CVSTrac stylesheet.
951 cpb 2007-Jun-27 01:38 Subdirectory for stylesheets. Add the =cvstrac-plus.css= stylesheet.
950 cpb 2007-Jun-24 01:12 In chngview, output a table of related check-ins extracted from the commit message. This is makes merges much more explicit (i.e. [553]). While you can follow a link, following each link in a complex merge to get an overview is rather annoying.
949 cpb 2007-Jun-24 00:23 (#476) handle GIT merges, kinda CVSTrac doesn't really have a way to track proper merges (which basically implies multiple CHNG.prevvers entries) but we _can_ reference merge source check-ins in the commit message. It's still not as easy as I'd like to follow GIT development, but this makes it clearer what things are merges and what commits are being pulled into the merge. *: we need to ingest the whole commit tree as we check refs, and we need to do it such that roots get the lowest CN numbers and are databased before anything which relies on them. This means making =git_ingest_commit_tree()= truly recursive. *: drop the temporary =ci= table, since we now need to do it all in one pass *: add a function to convert multiple parents into a merge list and update the check-in comment with something like "Merged [n1], [n2], ..." *: in order to _display_ merges, we need to use =git-diff= rather than =git-diff-tree=. *: add =pxHistoryReconstructPrep= and =pxHistoryRescanPrep= callbacks to =g.scm= so we can "do things" to SCM-specific tables and whatnot before a history reconstruct or rescan. In the case of GIT, a reconstruct requires removing all the refs milestones. Other SCMs may have similar requirements. This doesn't break database compatibility, but you _will_ have to do a reconstruct if you want to see merges properly. Unfortunately, a reconstruct may alter check-in numbers and break links in wiki text or manually created ticket cross-references.
948 cpb 2007-Jun-23 17:56 (#476) when diffing trees for output, expand the full commit ids.
947 cpb 2007-Jun-21 01:24 (#696) =git-cvsimport= doesn't deal with some of the cvs import tags all that well. The result is GIT refs which point to _empty_ commits. Well, CVSTrac assumes non-empty commits, so thigs throws things off. The main problem is that we end up trying to process these empty commits _each_ history update, and we create new commits _each_ history update, one for each of these kinds of tags. This slows things down tremendously, as you can imagine, and artificially increments the check-in counter. The fix is to detect the missing FILECHNG records and ensure we create the refs milestone anyways. Once we've got the refs milestone with an proper object reference, we'll never try to update those refs again.
946 cpb 2007-Jun-15 18:27 (#696, #698) where feasible, create an index on =chng(branch,directory)=. This makes the GIT history update run approximately 10x faster.
945 cpb 2007-Jun-09 03:18 move [Directory] to action menu
944 cpb 2007-Jun-09 03:03 (#698) clean up GIT refs milestone stuff Basically, we drop the TAGS and HEADS tables entirely and exploit the fact that GIT doesn't make _any_ use of the CHNG.branch and fields. CHNG.branch is meaningless since branches aren't static and a single commit might belong to any number of branches. is also meaningless because GIT operates on the entire tree in a single commit. So for GIT milestones, CHNG.branch=refs/* and This allows us to completely drop a couple tables (which may break reports) and simplifies a lot of queries and stuff. Because we've got other places to put things, the milestone message can also be shortened. To upgrade an existing database, something like: DROP TABLE heads; DROP TABLE tags; DELETE FROM chng WHERE milestone>0 AND message LIKE '%(%, commit %'; before any GIT history update will be fine. As an added bonus, we're no longer looking directly at files in the GIT repository. We just use command-line tools. So we're probably a lot more resiliant to changes in repository layouts.
943 cpb 2007-Jun-09 02:53 (#698) don't make missing directories links
942 cpb 2007-Jun-08 00:37 (#696) more refs/heads/tags fixes *: typo in the =git-for-each-ref= format appended a '2' to everything *: fix some indentation/formatting problems *: _delete_ refs which are no longer in use. Strictly speaking, this isn't necessary since it might be useful historical information. But who knows if the objects are still there, too? Unreacheable objects might get pruned when the refs all disappear.
941 cpb 2007-Jun-07 00:49 (#697) die with an error if the SQLite3 version switches from 3.3.7 to higher without a rebuild
940 cpb 2007-Jun-06 01:35 (#696) the culprit was actually =git_update_refs()=. We ran through the entire refs list rather than just the ones which changed. No big deal, except for each one in the list the REPLACE a milestone _into the chng_ table. At 20000 records without transactions, that's not so quick. Use another temp table to help prune the list down to the bare minimum. There's room for other improvements, too.
939 cpb 2007-Jun-05 23:25 (#696) rewrite the =git_read_refs()= to use =git-for-each-ref=. It's definitely cleaner, and hopefully a bit faster.
938 cpb 2007-Jun-04 03:04 Don't include a separate "Committer:" line in the message if the committer is the same as the author. It just clutters things up without adding useful information.
937 cpb 2007-Jun-03 19:41 just use the leading 8 chars for a printable version
936 cpb 2007-May-26 00:41 (#694) check for NULL username (CLI only)
935 cpb 2007-May-16 00:58 (#200) add a (untested) Solaris/GCC Makefile
934 root 2007-May-08 17:47 Do a unified diff rather that a context diff when showing differences.
933 cpb 2007-Apr-23 10:31 (#689) allow titles to be greater than 70 chars via (undocumented) max_ticket_summary config option
932 cpb 2007-Feb-12 19:38 (#637) =chng= and =inspect= records are viewable by people with wiki read permissions, not checkout. Missed that in the report authorizer.
931 drh 2007-Feb-11 10:22 Add the "attachdump.c" utility program used to upgrade a database from version 1.2.1 to 2.0.x. See
930 cpb 2007-Jan-31 23:46 (#575) merge [929]
929 cpb 2007-Jan-31 23:39 (#575) sqlite3_value_text() _may_ be doing an encoding conversion
928 chorlya 2007-Jan-31 18:18 merge [927]
927 chorlya 2007-Jan-31 18:15 [795] needlessly changed query string parameter name from =nxp= to =cnxp= and broken captcha redirection after successful test. Ticket #617
926 cpb 2007-Jan-30 12:15 (#684) finish up the transaction if no repository
925 rse 2007-Jan-29 21:58 Fix "uninitialized variable" issue as in "if( zTime==0 || (tm = parse_time(zTime))==0 )" the variable "tm" could be never initialized due to (fully valid and ISO C conforming) short-circuiting behaviour in the evaluation of a boolean expression -- i.e. in case zTime==0 (true) the second part of the expression never has to be evaluated as the expression as a whole already is true.
924 rse 2007-Jan-29 21:48 remove dead code
923 cpb 2007-Jan-29 19:42 bump version in HEAD
922 cpb 2007-Jan-28 23:04 final_release2_0_1
918 cpb 2007-Jan-28 22:50 merge [912]
917 cpb 2007-Jan-28 22:50 merge [911]
915 rse 2007-Jan-28 22:22 fix typo
914 rse 2007-Jan-28 21:56 use strict ISO C prototyping
913 rse 2007-Jan-28 21:54 plug three memory leaks
912 rse 2007-Jan-28 21:37 FlexeLint correctly complained "format_.c 1338 Warning 673: Possibly inappropriate deallocation (free) for 'modified' data" as the whitespace skipping on zCaption following by a free(zCaption) would lead to a crash. The obvious and 100% compatible fix would be something like this: --- format.c 30 Sep 2006 11:01:30 -0000 1.91 +++ format.c 28 Jan 2007 21:33:13 -0000 @@ -1323,8 +1323,9 @@ || (sMarkup.lenType==11 && strncmp(sMarkup.zType,"rightreport",11)==0) || (sMarkup.lenType==10 && strncmp(sMarkup.zType,"leftreport",10)==0) ){ - char *zCaption = mprintf("%.*s", sMarkup.lenArgs, sMarkup.zArgs); + char *zCaption, *zCaptionOrig; char *zAlign = 0; + zCaptionOrig = zCaption = mprintf("%.*s", sMarkup.lenArgs, sMarkup.zArgs); if( sMarkup.lenType==11 ){ zAlign = "align=\"right\""; }else if( sMarkup.lenType==10 ){ @@ -1335,7 +1336,7 @@ embed_view( atoi(sMarkup.zKey), (sMarkup.zArgs==sMarkup.zKey) ? "" : zCaption, zAlign ); - free(zCaption); + free(zCaptionOrig); zText += sMarkup.lenTotal; i = 0; wordStart = lineStart = paraStart = 0; But the whitespace skipping never can happen as the is_markup() call around the parsing code already skipped all leading whitespaces. Hence we fix the deallocation problem by just removing the unnecessary second whitespace skipping attempt.
911 rse 2007-Jan-28 20:45 Fix a deallocation problem by using an allocated string instead of a constant string in the special case. This fixes the FlexeLint error: "inappropriate deallocation (free) for 'constant' data".
910 rse 2007-Jan-28 20:41 cleanup code: '-0' is just '0' (detected via FlexeLint)
909 rse 2007-Jan-28 20:15 Use a more explicit "1+(c!=0?1:0)" instead of the "1+(c!=0)" as arithmetic with embedded boolean expressions is both confusing and partially unportable (AFAIK only "false" is guaranteed to be "0", but "true" is just "not 0" and not exactly "1").
908 rse 2007-Jan-28 18:43 remove useless ('always true') sub-expression as variable 'zName' is ensured to be *not NULL a few lines above (detected by FlexeLint)
907 cpb 2007-Jan-28 18:40 merge [906]
906 rse 2007-Jan-28 18:29 Fix compile-time warning: sqlite3_set_authorizer() expects a "void *" pointer and hence under strict compilation the "int" nAuthStack has to be casted from an integer to a pointer type.
905 cpb 2007-Jan-27 23:30 merge [892]
904 cpb 2007-Jan-27 23:29 merge [896]
903 cpb 2007-Jan-22 00:44 use %T, not %h, in URL
902 cpb 2007-Jan-21 02:32 merge [901]
901 cpb 2007-Jan-21 02:31 we don't really know if the memory for *cgi()* second parameter is static, so we probably shouldn't flag it as static.
900 cpb 2007-Jan-21 01:24 merge [899]
899 cpb 2007-Jan-21 01:23 tighten up checks for attachment file args
898 cpb 2007-Jan-21 01:12 merge [897]
897 cpb 2007-Jan-21 01:10 only the user and admin can manipulate attachments on a home page. This snuck past me in testing because none of my user names are CamelCase.
896 cpb 2007-Jan-20 21:21 Make more/better use of the SQLite authorizer. Currently, we're using the authorizer to enforce restrictions on report statements. Since, internally, CVSTrac distinguishes between query and execute styles of commands, it makes some sense to add similar authorizer facilities to some of these functions as well. This patch introduces the concept of an authorizer stack to which we can push and pop from (otherwise, interactions between query and the existing report authorizer are impossible to manage) and uses it in all the query-style functions. As a side-effect we also need to create a separate =db_execute_callback()= function. A define, USE_STRICT_AUTHORIZER, is created to "help" CVSTrac developers avoid using the from query/execute call. The goals are multiple: to defang potential SQL injections, inadvertant data leaks, and (eventually) privledge escalations such as are currently blocked in reports. Eventually, it may also get used to help enforce protections should we implement embedded scripting. It also introduces a framework for preventing silly mistakes (i.e. CREATE/DROP table outside of schema and history updates, deleting rather than updating things, etc).
895 rse 2007-Jan-17 09:34 fix compilation by returning error code for non-void function
894 cpb 2007-Jan-01 00:51 (#283) add support for multiple modules (or just more complicated repository filters) by allowing regular expressions in the CVS module filters. Note that this is CVS-only. Trying it with Subversion would leave holes in the check-in numbers, and I don't even want to think about what would happen with GIT revision chains...
893 cpb 2006-Dec-31 03:23 (#545) At high detail levels, include a list of changed files in check-ins. This is extremely helpful when dealing with larger projects.
892 cpb 2006-Dec-30 15:22 (#676) add an OpenBSD makefile template, and fix the vanilla BSD makefile.
891 cpb 2006-Dec-23 15:38 (#637) when [841] made check-ins viewable to more users, forgot to push that logic to the RSS feed. Fix it so <link> tags are now available for users with *read* rather than *checkin* permissions.
890 cpb 2006-Dec-14 03:38 (#231) make the timeline options fieldsets just a little tighter.
889 cpb 2006-Dec-14 00:57 a version bump might be helpful
888 cpb 2006-Dec-14 00:47 merge [874] to 2.0.1
887 cpb 2006-Dec-14 00:45 merge [873] to 2.0.1
886 cpb 2006-Dec-14 00:35 merge [869] to 2.0.1
885 cpb 2006-Dec-14 00:34 merge [868] to 2.0.1
884 cpb 2006-Dec-14 00:33 merge [867] to 2.0.1
883 cpb 2006-Dec-14 00:30 merge [866] to 2.0.1
882 cpb 2006-Dec-14 00:29 merge [865] to 2.0.1
881 cpb 2006-Dec-14 00:27 merge [864] to 2.0.1
880 cpb 2006-Dec-14 00:24 merge [863] to 2.0.1
879 cpb 2006-Dec-14 00:24 merge [862] to 2.0.1
878 cpb 2006-Dec-14 00:23 merge [861] to 2.0.1
877 cpb 2006-Dec-14 00:19 merge [858] to 2.0.1
875 cpb 2006-Dec-03 01:47 (#231) tweak the timeline options. Still getting some glitches, but better.
874 cpb 2006-Dec-03 01:38 tighten up the prefix text field layout
873 cpb 2006-Dec-03 01:33 an empty value string is a legitimate value for most controls
872 cpb 2006-Dec-03 01:29 (#231) fix timeline layout when dt=0. It's not quite as nice as I'd like, but everything fits okay at reasonable font sizes. Also fixes a problem with milestone dividers being blank at dm=1.
871 cpb 2006-Nov-30 01:13 (#231) drop the =overflow= directives. They were basically doing weird things which would have called for one of those "clearfix" hacks. They were also creating scrollbars where not needed.
870 cpb 2006-Nov-09 02:10 (#670) fix some URL manipulations *: base URL calculations were still kinda broken. We really need to move it into the main area so we have some idea if the project name is in there somewhere. Also, it's a lot easier to just concatenate environment variables like =SCRIPT_NAME= than rip apart the =REQUEST_URI=. This probably needs testing with more web servers. *: fix problem with not having a trailing / after the project name. Basically, because we output relative links, this meant that the browser was sending users to places like http://host/tktview?tn=9 rather than http://host/project/tktview?tn=9.
869 rse 2006-Oct-30 21:34 <string.h> is not used required under WIN32. It is also required under Unix to get the prototypes for strlen(3) and others. So, include it unconditionally (it is a standard header anyway)
868 rse 2006-Oct-30 21:33 CVSTrac uses crypt(3) and this requires the inclusion of the non-standard header <crypt.h> on at least Linux and Sun Solaris platforms to get the correct prototype (else an implicit prototype is assumed by the compiler). As CVSTrac does not have any Autoconf build environment, we have to use some hard-coded feature tests as a workaround.
867 rse 2006-Oct-30 21:31 Fix segfaults under 64-bit platforms where sizeof(int) != sizeof(void *), because the variable argument function cgi_optionmenu() expects a null-terminating _pointer_ and passing "0" to such a variable argument function passes an integer (which is usually a smaller integral type than a pointer on 64-bit platforms) and not a pointer on the stack. As a result, the function grabs garbage from the stack and segfaults.
866 cpb 2006-Oct-30 00:50 (#668) handle the =SQLITE_FUNCTION= authorizer option. At the moment, there's really no reason to restrict function calls. Tested against SQLite HEAD as of about 15 minutes ago.
865 rse 2006-Sep-30 11:12 GCC 4.2.0 20060923 is correct in stating... common_.c:399: warning: the address of 'azLink' will always evaluate as 'true' common_.c:415: warning: the address of 'azAction' will always evaluate as 'true' ..for the following code lines... [...] if( nLink && azLink ){ [...] if( nAction && azAction ){ [...] we have... static const char *azLink[50]; static const char *azAction[50]; ...and ISO-C always implicitly makes the name of the array variable to be a pointer to the array and as the array is a static array it _always_ is a valid pointer and hence always "true" in boolean context. OTOH we don't need the comparison here at all as the nLink and nAction check is really sufficient to know whether the array contain content. So, remove the warning by removing the useless parts from the boolean expression.
864 rse 2006-Sep-30 11:01 Cleanup the CVSTrac sources so they again pass GCC 4.1.1 (and 4.2.0 20060923 except for one special issue) under option set "-O2 -Wall -Wno-long-long -Wpointer-arith -Wcast-align -Winline -Wmissing-prototypes -Wmissing-declarations -Wnested-externs" without any warnings. For the sign and "const" related issues (where usually multiple solutions exists to resolve), I've resolved them by using as less as possible evil "casts".
863 rse 2006-Sep-29 21:02 The logout procedure luckily works, but not really as intended. It has two defects: first the cookie row from the "cookies" table is incorrectly deleted via the name of the cookie instead of the value of the cookie. Second, the usual way to perform a clean logout is not to just re-set the cookie to an invalid value, but to set it to this value with an expiry time in the past. This way the browser really immediately kicks out the cookie from its own database (so people really see that the logout cookie is gone) more or less at the same time CVSTrac removes the cookie from its database. Keep in mind that passing 0 to cgi_set_cookie as the time is NOT the right thing to do here.
862 cpb 2006-Sep-28 16:13 (#664) remove extra comment from query
861 cpb 2006-Sep-14 22:36 (#643) tickets in reports (outside of wiki text) now rn as second argument (again)
860 cpb 2006-Sep-12 00:51 (#497) oops... get the build rules for =css.c= right. We need to be able to build from another directory, for one thing, and we want to rebuilt when =cvstrac.css= changes.
859 cpb 2006-Sep-11 01:01 (#655) make wiki entry area size/wrap mode configurable. *: Loosely based on {link: setup_diffs.tar.gz}, *: create =cgi_wikitext= and =cgi_textarea= function to control output *: =cgi_wikitext= allows the caller to determine _relative_ height compared to the configured _maximum_. For example, a short wiki text area might be 20% of the maxmimum height. *: /setup_interface allows the wiki area width and maximum height to be specified.
858 cpb 2006-Sep-04 03:10 (#652) requests which result in server-side changes really should use POST, not GET.
857 cpb 2006-Sep-04 03:03 (#231) merge =css-patches= to HEAD. The conversion to CSS isn't complete, but it's functional and I'm having some trouble getting much further with it at the moment. So rather than try to develop two trees in parallel it's easier (for me) to merge it back to HEAD, fix some other functional problems that are _really_ bothering me, and finish the CSS migration at a more leisurely pace. Not the most ideal situation, but we'll just have to work with it...
876 cpb 2006-Sep-04 03:03 release2_0_1
921 cpb 2006-Sep-04 03:03 final_release2_0_1
855 cpb 2006-Sep-03 20:15 (#497) include default =cvstrac.css= in binary For distribution, it's not reasonable to expect a separate stylesheet file to ship with the binary. It's also necessary for the original version to be available to admins who want to revert or study the original. *: create a =makecss.c= program to turn /cvstrac/cvstrac.css into =css.c= *: =css.c= implements two web pages: /cvstrac.css and /cvstrac_default.css *: /cvstrac.css returns the latest /cvstrac.css attached to /setup_style. Failing that (i.e. doesn't exist), it falls back to /cvstrac_default.css *: /cvstrac_default.css always outputs the original build-time stylesheet. *: /setup_style mentions this *: default header now references =cvstrac.css= and (why not) =cvstrac_default.css= as an alternate.
856 cpb 2006-Sep-03 20:15 file makecss.c was initially added on branch css-patches.
854 cpb 2006-Aug-24 12:42 (#650) merge [853] to HEAD
853 cpb 2006-Aug-24 12:40 (#650) =bout()= always NUL terminates; _if_ it's called, and _if_ there's enough space. However, it's only called when there's something to write. Make sure the buffer _starts_ NUL terminated.
852 cpb 2006-Aug-16 23:02 (#645) merge [850] and [851] into HEAD.
851 cpb 2006-Aug-16 23:00 (#645) clarify the comment describing how =is_eow()= actually works.
850 cpb 2006-Aug-16 13:48 (#645) tighten up the check in =is_repository_file()= so it actually uses the %q formatter rather than relying on %s.
849 cpb 2006-Aug-10 21:33 merge [848] to css-patches
848 cpb 2006-Aug-10 21:33 should probably mention the other SCMs
847 cpb 2006-Jul-14 13:08 (#231) don't wrap navigation/action text
846 cpb 2006-Jul-13 01:34 (#231) wrap more diffs with 'diff' class
845 cpb 2006-Jul-13 01:15 (#231) fix timeline indentation
844 cpb 2006-Jul-05 01:17 merge [843] from HEAD
843 cpb 2006-Jul-05 01:16 (#636) differentiate between file and directories in search results by adding an extra case.
842 cpb 2006-Jul-05 01:08 merge [841] from HEAD
841 cpb 2006-Jul-05 01:06 (#637) make links to /chngview if the user has "read" permissions, not "checkout". Note that this _doesn't_ introduce any security issue that wasn't already there; users have always been able to manually enter /chngview?cn=<cn> since /chngview itself only checks for =g.okRead=.
840 cpb 2006-Jun-30 23:41 (#231) drop the <hr> between the timeline and its options. We can use a =border-top= styling to get the same effect and it lets us do other interesting things...
839 cpb 2006-Jun-30 02:09 merge [838] from HEAD
838 cpb 2006-Jun-30 02:07 don't do extra wiki markup when outputting raw report data.
837 cpb 2006-Jun-30 01:49 (#231) CSS-ify the index and remove the hardcoded  's from the setup index. That's what =white-space: nowrap= is supposed to take care of.
836 cpb 2006-Jun-30 00:54 (#633) merge [829] from HEAD
835 cpb 2006-Jun-30 00:53 (#635) merge [834] from HEAD.
834 cpb 2006-Jun-30 00:52 (#635) URI handling fixes *: handle initial project name in URL's better *: handle leading/multiple/trailing slashes better *: map index.html to index so URL's of the form =project/= will get the index when the browser/web server automagically tacks on =index.html=. Tested with as many configs as possible, but this could break configurations which do substantial URL aliasing/rewriting.
833 cpb 2006-Jun-29 02:58 (#231) try the timeline layout with definition lists. It still needs floats, but it drops the nested list nastiness and the non-CSS output is a little more intuitive.
832 cpb 2006-Jun-29 02:24 (#231) slightly better timeline layout. I don't particularly like overusing floats like this, but I don't want to spend my life fighting with browser bugs and whatnot...
831 cpb 2006-Jun-28 01:53 (#231) oops, those widths are a bit short
830 cpb 2006-Jun-28 01:46 (#231) a bunch more CSS work *: not sure how I didn't get it working before, but managed to get the standard header to look sane _without_ having to add gratuitous <div> sections or fall back to tables. Which means it _should_ lay out okay with junky browsers like IE. Also didn't have to resort to nonsense like clearfix, yet. *: attempt at the timeline layout. It's _mostly_ there, except for some differences in how long timeline entries wrap (Konqueror indents nicely, Firefox doesn't). *: /setup done. Less critical since only admins see it.
829 cpb 2006-Jun-27 12:40 (#633) fix C++ism
828 cpb 2006-Jun-15 18:01 (#630) another merge from HEAD
827 chorlya 2006-Jun-15 17:50 We don't need assert.h here anymore.
826 chorlya 2006-Jun-15 17:43 Check for SQLite version at build-time, rather then at runtime.
825 cpb 2006-Jun-15 17:20 (#630) merge from HEAD
824 chorlya 2006-Jun-15 17:03 *: ( #630 ) Pick-up copies of repository root directory *: Replace a JOIN in svn.c with correlated subquery to enhance performance. This bumps the requirement for SQLite to version 3.1 or newer. *: Make sure we have SQLite 3.1 or newer
823 cpb 2006-Jun-15 02:34 (#231) oops, can't use =printable_vers()= there anymore.
822 cpb 2006-Jun-15 02:20 (#231) more CSS *: icons. require =:before= content syntax, so won't work with IE, but icons are largely cosmetic. Changed how icons work so that we specify the _meaning_ instead of the look. I.e. we can set a "ticket status fixed" icon. *: diff gets a class *: did a bit of timeline markup *: =printable_vers()= returns HTML, with a =vers= class. This allows us to create a span title which pops up, useful for things like GitTrac where we actually _do_ prune the version back. *: wiki history box CSS-ified. *: timeline options CSS-ified, although the positioning needs more work.
821 cpb 2006-Jun-13 23:48 (#231) more CSS *: differentiate between events and releases for milestones *: "convert" rlog. Still using table markup, however.
820 cpb 2006-Jun-13 14:45 (#231, #391) put directory breadcrumbs back, but leave off in the default stylesheet.
818 cpb 2006-Jun-13 02:12 (#231) first cut at bringing CSS compliancy to CVSTrac. *: two things are covered: wiki markup and the page header *: wiki markup is fairly straightforward. Mostly the addition of class or id tags plus a bit of code cleanup to facilitate it. The *bold* markup got the biggest beating, I'd say. *: the page header... The main problem there is faithfully reproducing the table-driven layout, which basically turned into adding a couple extra wrapper <div>'s and using =display: table-row= in places. The end result looks about the same, except where it may actually eliminate some minor display glitches. *: added a =cvstrac.css=, which contains these defaults. Eventually they might get placed verbatim into config.h, but right now it's a handy place to work.
819 cpb 2006-Jun-13 02:12 file cvstrac.css was initially added on branch css-patches.
817 cpb 2006-Jun-03 19:09 (#625) clean up the check-in/milestone handling even more. Rather than integer lists, use string lists (what we normally get from database queries), tokenize in a separate function, and let the database sort out which are milestones and which aren't. We can also drop the hidden =cl= and =ml= stuff.
816 cpb 2006-Jun-03 02:47 (#545) more RSS fixes *: at highest detail level, don't truncate messages. Ever. Not sure if this is entirely sane, but it looks gorgeous in a good RSS reader. *: allow the user to _decrease_ the detail level from the admin default using a =rss=<n>= option. The user isn't allowed to increase the level beyond the default. See previous list item for reasoning. *: minor date fix
815 cpb 2006-Jun-03 02:27 (#545) /timeline.rss only accepts =d=, =px= and =e= as CGI params, and I'd rather pass on =e= as part of the defaults. The rest of the parameters are ignored, so let's not include them in the RSS link.
814 cpb 2006-Jun-03 02:12 (#625) don't allow users without at least checkout permissions to be able to change the milestone/check-in associations of a ticket. Some care is taken to ensure that users who login with the form open don't lose the xref's.
813 cpb 2006-Jun-03 01:49 (#623) allow for quoting of the | character in a table by using the =is_markup()= function to detect markups like {quote:{quote}} and count the entire markup length as part of the cell. It also makes the table parsing code a lot more readable.
812 cpb 2006-Jun-02 23:07 (#564) oops, remove that #ifdef. The problem with using too many #ifdef's around code is that you need to build with all the #ifdef's enabled at some point or another or you miss trivial compile errors. Which is why, for example, we don't have big =#ifdef SVNTRAC= statements everywhere.
811 cpb 2006-Jun-02 22:58 add some locale-specific versions of =length()= and =substr()= when =CVSTRAC_I18N= is set and we're not using UTF-8. From {link: attach_get/176/cvstrac-stringfunc.patch}.
810 cpb 2006-Jun-02 22:53 Avoid splitting {link: attach_get/176/cvstrac-stringfunc.patch UTF-8 characters} by scanning past high bits.
809 cpb 2006-Jun-02 22:49 add a global =useUTF8= flag. It's only set when running in a UTF-8 codeset (although one could argue that it should be default with SvnTrac), but it should eliminate some =#ifdef= stuff
808 cpb 2006-Jun-02 22:31 Add support for a {link: attach_get/174/cvstrac-customrlog.patch custom rlog} command useful for LocalizationOfCvstrac
807 cpb 2006-Jun-02 11:26 (#627) when in preview, put the formatting hints on a separate page. We really don't want them on the same page because it becomes too difficult to pick out the previewed content.
806 chorlya 2006-Jun-02 11:18 ( #626 ) Fix a premature list termination for parameters to CVS filelist command.
805 chorlya 2006-Jun-01 21:51 ( #620 ) Preserve manually added ticket-chng associations when editing chng/milestone.
804 cpb 2006-Jun-01 21:43 (#599) implement report column sorting. Works/looks about the same as the dirview column sorting.
803 chorlya 2006-Jun-01 20:06 ( #569 ) Don't collapse ticket/wiki edits that cross the day boundary.
802 cpb 2006-Jun-01 02:55 (#556) don't notify on missing tickets and fix a NULL dereference
801 cpb 2006-Jun-01 02:51 (#556) don't call =ticket_notify()= if we're not attaching to a ticket
800 cpb 2006-Jun-01 02:29 (#611) make search output a bit nicer *: format tickets and check-ins using the =format_(ticket|chng)= function so we get things like link titles and strike font (and, eventually, CSS support) *: don't search attachments to ticket #0 *: when outputting attachments, also output a link to the ticket/page they're on.
799 cpb 2006-Jun-01 02:27 (#611) make =is_integer= public
798 cpb 2006-May-30 00:15 (#608) make the various file access functions in /cvstrac/history.c actually check the =g.okCheckout= access control before outputting any files. This ensures that source code is protected if someone screws up permission management elsewhere.
797 drh 2006-May-26 14:19 Bug fix in cgi_redirect() logic.
796 cpb 2006-May-26 13:34 (#618) add a *Content-disposition* for /getfile, attachment downloads, and patchsets.
795 chorlya 2006-May-25 08:20 ( #617 ) Instead of redirecting back to =/captcha= after login, redirect back to page that redireted us to =/captcha= in the first place.
794 chorlya 2006-May-24 22:34 ( #613 ) Preserve sorting in =/dirview= for as long as you keep drilling up and down the tree.
793 cpb 2006-May-24 13:03 (#615) Ticket counts report needs column names on the _first_ SELECT now.
792 cpb 2006-May-23 22:51 release2_0_0
791 cpb 2006-May-23 22:49 can't free a static string
789 cpb 2006-May-23 00:34 *setup* doesn't get a home page, so don't create a login link to one.
788 cpb 2006-May-23 00:29 bump the version to 2.0.0
787 cpb 2006-May-23 00:28 update COMPILING docs to reflect SQLite 3.
786 cpb 2006-May-22 23:42 (#509) remove more dangling links
785 cpb 2006-May-22 23:38 (#509) remove a couple dangling links
784 cpb 2006-May-22 23:16 (#509) strip down the admin documentation to the minimum. Most of the /setup_* pages are reasonably self-explanatory so there's really no point trying to duplicate those. We really only _need_ to include things like the HomePage which are really not obvious.
783 cpb 2006-May-22 23:13 (#226) setup should always be able to delete user pages
782 cpb 2006-May-22 21:27 (#551) Avoid the use of "%.*q". We can safely get away with it here because we already filter the strings in other places (=is_wiki_name()=, =isalpha()=, =is_eow()=).
781 cpb 2006-May-22 16:14 admins _should_ be able to lock a home page, if necessary
780 cpb 2006-May-22 15:31 for some comments, formatting
779 cpb 2006-May-21 15:01 add a max filename length parameter to =write_to_temp()= instead of hardcoding it to 200 bytes.
778 cpb 2006-May-21 14:49 =zTail= should be =const=
777 cpb 2006-May-21 14:47 should be returning an int
776 cpb 2006-May-19 23:56 (#174) when a user is deleted, remove the default assignment if it was that user. Some way to warn the admin about this might be a good idea, or maybe just redirecting to /setup_newtkt would be enough of a hint?
775 cpb 2006-May-17 17:40 make sure both "/" characters in http:// are preserved. Do this by simply bypassing the protocol entirely rather than keying on ":" characters within the URL.
774 cpb 2006-May-17 02:29 wrong header file
773 cpb 2006-May-17 01:49 =z= is already declared
772 cpb 2006-May-17 01:11 remove unused/redeclared variables
771 cpb 2006-May-17 01:01 clean up some indices and make a bunch of =db_open()= calls look like the others (i.e. without the transient =pDb= instances).
770 cpb 2006-May-17 00:51 cleanup some suspect memory use
769 cpb 2006-May-15 23:00 (#609) actually, it's better to do this _after_ the schema upgrade check.
768 cpb 2006-May-15 22:49 (#609) put a five minute alarm on all HTTP and CGI requests to avoid lingering CVSTrac instances for whatever reason. 30 or 60 seconds would, probably, be a bit short for those (ahem) with slower connections. An actual SIG_ALRM handler isn't really necessary since the default behaviour is to halt the application.
767 cpb 2006-May-15 22:31 (#610) Remove double 'your'. Insert chewing gum pun here.
766 cpb 2006-May-15 22:29 minor fixes to some function definitions and a couple of extra =malloc()= result checks
765 cpb 2006-May-15 22:27 eliminate a potential (i.e. someone makes sloppy code changes) NULL derefence
764 cpb 2006-May-13 15:10 fix a C++ism
763 drh 2006-May-10 22:43 Fix a bug in cgi_redirect: make sure both "/" characters in http:// are preserved.
762 cpb 2006-May-05 23:51 (#545) fix the hr's in setup_timeline
761 cpb 2006-May-05 15:20 (#606) drop the uid==0 check before the =chroot()= and assume that the operating system will be smart about it.
760 cpb 2006-May-05 13:08 (#562) don't need to =free()= a static string.
759 cpb 2006-Apr-27 23:30 (#545) more RSS fixing *: allow both =zMsg= and =zWiki= to be allowed in the description. This allows us to combine something like a ticket header with the ticket contents nicely. *: drop =zTktTitle=. =zMsg= can now be used in its place *: use the RSS detail level. At the lowest level, we basically only generate empty descriptions. At mid level, we add check-in comments and ticket titles. At the highest level, we include any applicable wiki content. We can also put things like Wiki diffs at that level, maybe?
758 cpb 2006-Apr-27 23:27 (#545) enable the RSS detail level toggles. Default it to 5, and we'll ensure that 5 is something in the neighbourhood of the current values.
757 cpb 2006-Apr-27 10:55 (#545) we don't _really_ need the userid in there.
756 cpb 2006-Apr-27 03:43 (#545) put the initial ticket description into the RSS item, too.
755 cpb 2006-Apr-27 03:29 (#545) add the contents of an added/appended remark to the RSS output.
754 cpb 2006-Apr-27 01:39 (#605) you can't use NULL to end a list of varargs _and_ allow zero as a valie leading value. So switch the accesskey (char) with the value (char*) since the value should never be NULL. Change both fieldset convenience functions for consistency. We also don't really need the extra checks before processing... This is an internal API call and if the caller passes empty lists, they'd better be doing testing.
753 cpb 2006-Apr-24 02:18 hey, we have a valid =tn= there...
752 cpb 2006-Apr-24 02:16 a bunch of minor fixes/cleanups. Style fixes, a bit tighter permission controls on attachment viewing, removing %s and other bad formatting, etc.
751 cpb 2006-Apr-24 01:04 (#278) try to abstract the ScmTrac stuff a bit more. Basically, we create a structure under =struct Global= which contains SCM "capabilities", callbacks, etc. The inidividual SCM's export a single =init_<scm>= function to fill the structure. Then everything interacts solely with that structure rather than having "if this, else that" behaviour all over the place. At least, that's the idea. There's still a lot of CVS-isms...
750 cpb 2006-Apr-24 00:11 clean up some queries. Use =db_exists()= in more places. It's usually faster and we don't have to play memory games.
749 cpb 2006-Apr-24 00:10 we don't actually _use_ =zAnonCap= anywhere, so why the query?
748 cpb 2006-Apr-22 18:07 (#577) add keyword-based WikiSpam filtering *: change the calling conventions of =is_edit_allowed()= to return the error message (reason). *: add a keyword list and max score to the abuse setup page *: using the handy *search()* function from #514 (two birds, one stone), check the keyword list and text and forbid any edits that exceed the limit. Tweak the throttler levels when it happens.
747 cpb 2006-Apr-22 17:55 (#514) oops, got the parameter order wrong in the documentation. Add a scoring table to the help page, too.
746 cpb 2006-Apr-22 17:16 (#514) make the *search()* function a global SQL function. This allows for arbitrary search techniques in reports.
745 cpb 2006-Apr-22 16:56 (#603) include the ticket title in the deletion message and make the ticket number a /tktview link
744 cpb 2006-Apr-22 16:52 (#603) more (some) information about what user/report is being deleted.
743 cpb 2006-Apr-22 16:40 (#183) merge external tools into HEAD.
742 cpb 2006-Apr-22 16:20 (#183) merge HEAD to external-tools-branch
741 chorlya 2006-Apr-12 19:15 ( #600, #265 ) Add =cgi_href()= to handle <a> tags. Not all attributes of <a> are supported, but everything we use should be there.
740 chorlya 2006-Apr-12 16:37 ( #584 ) Make ticket title on /tktappend stand out a bit more by turning it into a link to /tktview.
739 chorlya 2006-Apr-12 15:01 *: ( #569 ) Count consecutive ticket changes with same timestamp as a single edit. *: Remove unused variables.
738 chorlya 2006-Apr-12 14:39 ( #584 ) Display ticket title, unobtrusively, on /tktappend.
737 chorlya 2006-Apr-12 07:41 ( #569 ) Collapse consecutive ticket edits in one timeline/rss item.
736 chorlya 2006-Apr-11 14:39 Fix some obscure errors in /timeline that are probably a result of some copy & paste action in the past.
735 chorlya 2006-Apr-11 14:12 Continuing work on #600: *: Introduced =cgi_input_elem()= to handel all <input> elements we use. *: Wrapper functions around =cgi_input_elem()= for each element type. *: Changed =*_fieldset()= so it wraps all elements in <fieldset> only if title is present. *: Replaced all <input> elements with calls to new functions in /timeline.
734 chorlya 2006-Apr-11 09:22 *: (#600) Apply class to =<fieldset>= *: Dummy up an id if one is not passed, because <label> won't work without id in IE. *: Add accesskey to =cgi_radio_fieldset()=
733 cpb 2006-Apr-11 01:24 add some meta navigation links. This probably doesn't do anything in many browsers, but where it works it's a handy set of shortcuts.
732 cpb 2006-Apr-11 00:46 (#572) make sure table row is always terminated, even when =!okRead=.
731 chorlya 2006-Apr-10 13:50 *: (#265, #572) Add =cgi_radio()= and =cgi_radio_fieldset()= to deal with radio buttons in HTML forms *: (#562) Add \ line continuation to =translate=
730 cpb 2006-Apr-10 13:20 (#265) remove the <MAP> from the nav/action bars for now. While it obviously works in some browsers, it doesn't work in all. Looks like the problem is that the HTML 4.0 <MAP> takes _block_ elements. <NOBR> and a list of <A> tags don't count as block elements. Eventually, with better CSS support, we'll use <UL> and <LI> elements which _does_ qualify as a block element.
729 chorlya 2006-Apr-09 13:49 Some initial work on #265: *: Wrap navigation bar and action bar in <map> *: Group timeline options in <fieldset>
728 chorlya 2006-Apr-07 15:40 *: (#545) Add option to set detail level for RSS feed. _Not used right now_ *: (#572) Wrap checkboxes and radio buttons in =<label>=
727 chorlya 2006-Apr-07 09:13 Remove =isdir()= SQL function and document =path()/dirname()/basename()= functions (#595).
726 cpb 2006-Apr-06 01:23 (#537) can't call =free()= on a static string.
725 cpb 2006-Apr-05 01:34 after a ticket undo, should go to /tkthistory rather than /tktview.
724 cpb 2006-Apr-04 22:05 (#597) works even better without the free.
723 cpb 2006-Apr-04 22:04 (#597) dunno why I made it so complicated. Just =REQUEST_URI= works fine.
722 cpb 2006-Apr-04 02:23 (#535) make =output_trim_message()= change list elements to just "+" and spaces. Otherwise, with the newline gone, the {quote: *:} markup turns into boldface and makes things a bit nasty looking. I'd rather use {quote:{quote:*:}}, but adding extra characters isn't feasible without moving the whole buffer around.
721 cpb 2006-Apr-04 01:59 (#499) user deletion fixes *: confirm user deletion. This could maybe be done better, but it fits the existing code. *: add "Cancel" and "Delete" options to the action menu.
720 cpb 2006-Apr-04 01:12 (#452) only do a ticket notification if a tktchng record would have been created (i.e. not for just xref changes).
719 cpb 2006-Apr-04 00:45 (#284) support showC==3 in the RSS feed, too.
718 cpb 2006-Apr-04 00:42 (#284) add a toggle to only show trunk checkins. Note that I kept showC==2 as the "show all" value so as to not break existing bookmarks and links.
717 cpb 2006-Apr-03 02:16 (#594) add a _very_ simple table markup.
716 cpb 2006-Apr-03 01:24 (#419) actually, it wasn't an off-by-one. We just weren't using =is_eow()= correctly
715 cpb 2006-Apr-03 01:17 (#419) Fix off-by-one in calculating repository filename length, which meant that filenames followed by punctuation weren't working correctly.
714 cpb 2006-Apr-02 05:09 (#183) and another merge back from HEAD...
713 cpb 2006-Apr-02 04:57 (#509) merge the current manual support back into HEAD. This includes: *: having a [Help] button on pages with a corresponsing wiki page *: a link to CvstracDocumentation on the /index *: a beefed up wikiinit.c (run =cvstrac wikiinit ?dir? ?project?= to pick this up). Admin documentation is still woefully incomplete.
712 cpb 2006-Apr-02 04:43 (#509) more manual stuff. *: user documentation largely complete, if a bit terse in places. Admin docs are mostly incomplete. *: Fixed most of the documentation to correspond to the current state of HEAD. I hope. *: [Help] link no longer shown if target wiki page is missing
711 cpb 2006-Apr-02 04:40 (#509) merge HEAD back into the manual-patches branch.
710 cpb 2006-Apr-02 04:19 render links to missing wiki pages slightly differently (with <em>, in this case... yes, it should be in <span>).
709 cpb 2006-Apr-02 00:27 (#593) provide some kind of hint as to why the engine things there may be multiple SQL statements.
707 cpb 2006-Apr-02 00:16 (#183) merge 2.1 schema stuff from HEAD. Move some tool functions to tools.c. Note that if you've been running stuff from this branch, [706] is going to be a problem. You'll need something like the following to not lose tool configuration: sqlite3 <project.db> create table old_tool AS select * from tool; drop table tool; UPDATE config SET value='2.0' WHERE name='schema'; cvstrac update <?dir?> <?project?> sqlite3 <project.db> REPLACE INTO tool SELECT * FROM old_tool; drop table old_tool;
708 cpb 2006-Apr-02 00:16 file tools.c was initially added on branch external-tools-branch.
706 cpb 2006-Apr-01 15:31 (#537) make /dirview faster *: do a schema upgrade which adds a _lastfn_ field to FILE. *: update repository modules to ensure that _lastcn_ is up-to-date *: simplify the living daylights out of the /dirview query
705 cpb 2006-Apr-01 15:29 clean up some of the SQL functions. Keep sqlite_value_*() results in variables, check for NULL results in more places, make sure everything fits in 80 columns, etc.
704 chorlya 2006-Apr-01 11:15 Add ticket title to RSS items (#545).
703 chorlya 2006-Mar-30 18:00 *: Remove annoying new line in /tktappend *: Change text on report delete button
702 cpb 2006-Mar-28 01:38 (#495) test database tweaks *: don't generate nearly as many directories. More like 500 rather than 3000. This tightens up the tree and increases the number of revisions per given file, which is really what we want for testing. *: fix a bug which created checkins with no files. *: setup password should be initialized to "setup", since we're supposed to start as a 1.0 schema (i.e. plain text passwords).
701 cpb 2006-Mar-28 00:43 (#590) remove an extraneous </p> and add a missing </form> in the /login page.
700 cpb 2006-Mar-27 22:15 (#183) fix NULL dereference
699 chorlya 2006-Mar-25 19:07 Append .db to filename when making test databases to be compatible with cvstrac commands
698 cpb 2006-Mar-25 04:56 (#495) wrote a simple program to populate a fairly complex CVSTrac database with dummy entries. Using is as simple as: make maketestdb ./maketestdb project ./cvstrac update `pwd` project ./cvstrac server 8008 `pwd` project Obviously, there's no content for the repository. The DummyTrac approach would still be best for that...
697 cpb 2006-Mar-23 22:36 (#577) oops, that external link logic was a bit messed up.
696 cpb 2006-Mar-17 23:37 (#588) when the thing being tagged is another revision, the tag name is in the fourth field. So do a query on it to discover a date.
695 cpb 2006-Mar-12 02:00 (#573) put rel="nofollow" into the report links in the report list and the embedded reports. There's unlikely to be any sane situation where you'd want _all_ the reports on your site indexed. If there _are_ reports that should be indexed, explicitly link to them from a wiki page. Embedded reports, of course, have their contents embedded in whatever page gets indexed...
694 cpb 2006-Mar-11 14:34 (#587) add more useful output when 'svnlook youngest' fails. This is the first command used when updating the SvnTrac history so if there's any problems with paths or repositories or whatnot, this'll be the place.
693 cpb 2006-Mar-11 14:08 (#183) =external_tools_3.patch=: Handle issues of wiki timestamps. We basically only want to track them in URLs when the user has explicitly selected a version, not just the latest. Otherwise things get... confusing.
692 cpb 2006-Mar-11 14:06 (#183) commit external_tools_2.patch: Further refinements. Now all the various CVSTrac objects (except inspections) have external tool options. If there's no output from a tool, we just redirect back to the appropriate "View" page.
691 cpb 2006-Mar-11 14:04 (#183) commit external_tools.patch as a separate branch: Add ability to run external programs on most CVSTrac objects in a content-sensitive fashion.
690 cpb 2006-Mar-11 13:56 external-tools-branch
689 cpb 2006-Mar-08 01:34 (#569) display a count of wiki edits, collapsing multiples into a single RSS/timeline item.
688 cpb 2006-Mar-04 02:55 (#226) oops, can't %h =format_user()= output.
687 cpb 2006-Mar-03 23:14 (#586) actually, the real problem was that the %b substitution was leaving the %b when there was no markup content. This led to some confusion...
686 cpb 2006-Mar-03 23:06 (#585) *cgi()* now takes a second argument, used as the default value if the CGI parameter is missing from the query
685 cpb 2006-Mar-03 02:18 (#226) add user home pages. These are just wiki pages, but they're generally only edittable by the owner. User names is various places will be turned into links to these pages if they exist. This is intended to be combined with embedded reports to create a kind of home page/bio page/scratchpad page. How they work in practice...
684 cpb 2006-Mar-03 02:10 (#582) when showing wiki edits in the timeline, include a (diff) link.
683 cpb 2006-Mar-03 01:06 (#583) use =getpwuid= rather than trying to use the defunct =COPY= operator on =/etc/passwd=.
682 cpb 2006-Mar-03 00:31 (#515) distinguish between wiki and non-wiki content in timeline. We take an approach similar to the RSS feed where wiki messages go in =zWiki= and non-wiki messages in =zMsg=. This ensures that ticket titles aren't treated as wiki format. Also, explicitly wrap wiki page names with {quote:{wiki:}}. This is necessary for #226, but may be handy for other reasons.
681 cpb 2006-Mar-02 02:08 (#581) add SQL function to control display format of report columns. In a nutshell, we create the *wiki()*, *tkt()* and *chng()* functions. Each causes whatever it wraps to be displayed as the given type. So a checkin could be displayed as a link using something like: chng(cn) AS 'Checkin' While you could show a checkin comment, without the underscore formatting, using something like: wiki(substr(message,0,140)) AS 'Comment' This, obviously, is all backwards compatible with existing report formats. Also, prevent recursion caused by embedded reports being triggered from wiki markup and, of course, document this stuff.
680 cpb 2006-Mar-02 00:19 (#580) replace =sqlite3OsTempFileName()= with =mkstemp()=. Catch =diff= errors.
679 cpb 2006-Mar-01 03:54 (#476) I could swear the the status character for added files was 'N'. Seems to have changed to 'A' at some point.
678 cpb 2006-Mar-01 03:36 (#476) some cosmetic cleanups *: use =db_exists()= where is simplifies things (i.e. gets rid of otherwise unused variables). *: when I wrote =git.c=, I think my terminal window was too wide. Reformat to fit 80 columns.
677 cpb 2006-Mar-01 02:22 (#476) some GitTrac cleanups/changes *: support both local and bare GIT repositories. The repository root is now defined as wherever the git files exist, either =/path/to/project/.git= for local repositories or =/path/to/project.git= for bare repos. *: make =insert_file()= use the =db_exists()= call. Less ambiguity there... *: fix the recursive =git_ingest_commit_tree()= to only do recursive when we actually encounter multi-parent commits. Most of the time, we just loop. Otherwise, importing extremely active projects will just blow the stack (when the commit chain hits around 600 items on my memory-starved system). *: ensure there's a "HEAD" file in the configured repository. Just a sanity check. We don't actually use it for anything, but gitweb does it too.
676 cpb 2006-Mar-01 01:32 (#465 and #542) make the file revisions in the /chngview links to the fileview pages for each version. Additionally, make the little -> in between a link to the _diff_. Not exactly what #542 was asking for (i.e. it links to another page, not to a section of the current page) but it should be just as effective.
675 cpb 2006-Feb-28 20:50 (#441) forgot to remove an =abort()= after I got the SQLite 3 stuff working. #579 would have been a lot more obvious otherwise...
674 cpb 2006-Feb-28 20:22 (#579) *now()* function is an internal SQL function. Use a cutoff variable instead.
673 cpb 2006-Feb-28 01:51 make the cvs_ user command bail if it's not CVS
672 cpb 2006-Feb-26 01:46 (#569) don't hide subsequent wiki edits when the editor is anonymous and the throttler is enabled.
671 cpb 2006-Feb-24 00:54 (#401) while we're tweaking the WikiSpam controls, make the captcha functionality optional.
670 cpb 2006-Feb-23 23:54 (#577) when a user exceeds the maximum number of links in a single edit, we do two things: 1: adjust the throttler counter up. Currently, we adjust up by half the limit. This means the second attempt will exceed limits if the attempt is made too quickly. 2: clear the captcha cookie. This forces the user to go through a second captcha test.
669 cpb 2006-Feb-23 02:49 (#577) add option to limit the maximum number of external links which may be inserted into a single Wiki edit. This limit only applies to anonymous users. If the limit is exceeded, a nastygram is printed. Some tweaking to throttle limits might also be a handy idea, just to prevent "trial and error" attacks.
668 cpb 2006-Feb-23 01:53 (#573) make the nofollow stuff optional. Change the /setup_throttle to a generic "abuse control" setup page. More to come on this topic.
667 cpb 2006-Feb-22 14:47 (#575) hopefully this is just my attachment table... Looks like more than a few attachments are being decoded a bit short. Several k, in some cases. This may just be truncated uploads that aren't properly caught or some property of =blob_encode()= which I haven't caught onto. Or maybe something to do with the SQLite 2 to 3 database dump? In any case, just ensure that the extra bytes are zeroed and continue on. It's not like we can recover bytes that aren't there in the first place...
666 cpb 2006-Feb-22 01:57 (#573) put rel="nofollow" in some more places, including the action bar.
665 cpb 2006-Feb-22 01:50 (#573) put rel="nofollow" into external links. This, basically, trashes any benefit from spamming a wiki since it causes search engines to ignore the external reference.
664 cpb 2006-Feb-22 00:25 (#575) convert all attachments to SQLite 3 blobs *: remove blob.c... the =blob_decode()= function is the only part of that we'll need anymore and that can be a static function in /cvstrac/db.c *: introduce a schema 2.0 change which decodes all attachments and saves them as blobs. *: change the attachment retrieval to use a callback query in order to extract the blob. The regular =db_query()= call can't handle embedded NUL's.
663 cpb 2006-Feb-21 23:28 (#576) we were missing a parameter for the =db_execute()= call, which meant we weren't deleting attachments associated with a ticket. Which attachments we _were_ deleting, I have no idea.
662 cpb 2006-Feb-21 02:06 (#441) no longer any database imposed size limits on attachment sizes.
661 cpb 2006-Feb-21 01:48 (#441) switch to SQLite 3 API This is going to break compatibility, so I definitely need to write some sort of CvstracUpgrading page. What we've got here is a straight conversion from the SQLite 2 API to the SQLite 3 equivalent. No other fancy stuff is attempted such as handling UTF-8 and such. We're also not doing any changes to schemas or queries.
660 cpb 2006-Feb-20 15:12 (#571) forgot to change the type to 8 on one of the inspection queries.
659 cpb 2006-Feb-16 03:10 (#571) include attachments in RSS output
658 cpb 2006-Feb-16 02:48 (#533) add an option to not show any ticket information in the timeline
657 cpb 2006-Feb-15 01:10 (#570) generate a useful message when search doesn't find anything
656 cpb 2006-Feb-15 01:02 (#568) update =ticket.changetime= when appending remarks.
655 cpb 2006-Feb-14 14:13 (#566) oops... that's not how to use precision with %h and %T.
654 cpb 2006-Feb-13 22:14 (#566) properly escape repository pathnames/rlog urls using %T and %h.
653 cpb 2006-Feb-07 15:44 (#565) add a {quote: {wiki: PAGENAME TITLE}} markup for linking to wiki pages.
652 cpb 2006-Jan-31 02:31 (#537) avoid the "ugly and slow hack" path when we're not doing any sorting. Clean things up a touch by moving the row output code into a common function.
651 cpb 2006-Jan-30 02:55 (#537) that column header should have a class, not just a color
650 cpb 2006-Jan-30 02:01 use =cgi_printf()= to avoid adding whitespace when we generate a ticket or checkin formatting. Purely an annoyance, but since my normal convention is commits with "(#tn)" it's a frequent annoyance.
649 cpb 2006-Jan-30 01:39 (#537) add column sorting to /dirview.
648 cpb 2006-Jan-28 15:38 (#546) put the snippet for RSS feed auto-discovery into the default header.
647 cpb 2006-Jan-28 02:45 (#231) don't need to escape these
646 cpb 2006-Jan-28 02:42 Contents should go in the action bar
645 cpb 2006-Jan-28 02:39 (#231) sorry, I meant id=
644 cpb 2006-Jan-28 02:37 (#231) put the main body and default footer into <div> sections.
643 cpb 2006-Jan-28 02:23 (#481) add the %D and %R substitutions to the ticket notify so that users can get the description and remarks field as HTML rather than Wiki markup.
642 cpb 2006-Jan-28 02:14 (#481, #545) try to output absolute rather than relative links in things like RSS. *: define a =g.zLinkURL= which prefixes all relative links output from the wiki formatter. Normally, this would be =NULL=. *: create a =format_link()= function in /cvstrac/format.c to turn handle formatting of links and prefixing with =g.zLinkURL=. So far, only links generated from wiki formatting need this treatment. *: change /cvstrac/rss.c to actually set the link URL (to =g.zBaseURL=, obviously).
641 cpb 2006-Jan-27 03:33 (#507) try to make the wikiinit update not update pages that haven't changed. Not sure how well this will work the first time because of how newlines are/were handled.
640 cpb 2006-Jan-27 03:04 (#6) make some nicer navigation... add a little history, some idea of where we are. I'm not showing, however, all the possible set of results. That's usually not necessary as long as the user can tell that there's more available on the next page.
639 cpb 2006-Jan-26 22:31 (#561) oops, code from another patch snuck through.
638 cpb 2006-Jan-26 22:00 (#561) add a *cgi* SQL function for getting a given CGI parameter. This allows for nifty things like: SELECT sdate(-invtime) AS 'When', who AS 'By', ipaddr AS 'At' FROM wiki WHERE name=cgi('p') ORDER BY invtime
637 cpb 2006-Jan-26 21:37 (#6) add paging to the search. Nothing fancy, just a "More..." link down at the bottom of the page which takes you to the next batch of results.
636 cpb 2006-Jan-26 01:01 (#560) update FormattingWikiPages with the {quote:{report: rn}} markup. And not, I don't particularly enjoy the explanation about how to get the report number...
635 cpb 2006-Jan-26 00:52 (#560) add a {quote:{report: rn <caption>}} markup, allowing a full report to be embedded in a wiki page. As with {quote:{image:}}, {quote:{leftreport: rn}} and {quote:{rightreport: rn}} are also available for layout purposes.
634 cpb 2006-Jan-26 00:46 (#560) have =db_restrict_access()= track and return the last state of the authorizer so we can safely use it recursively.
633 cpb 2006-Jan-24 22:36 (#548 and #554) update *option()* documentation
632 cpb 2006-Jan-24 22:34 (#548 and #554) enhancements to the *option* function *: expanded the results structure for the standard query callback to count the number of columns in the results. *: created a common =db_err()= function *: =f_option()= now includes the column counts in the output *: the first column of the first row is always the default value. Users can adjust the default by changing the ordering of the query results *: if two columns are returned, the second column is considered the "description" while the first is the value. This allows for things like: WHERE assignedto=option('User',"select id,name from user")
631 cpb 2006-Jan-24 00:56 (#553) when generating the login url, do a better job of grabbing the query parameters.
630 cpb 2006-Jan-18 15:15 the list of things in the navigation bar and the list of things on the /index page should be a bit more in sync.
629 cpb 2006-Jan-18 15:13 hide wiki and attachment checkboxes if the user doesn't have permissions for either of them.
628 cpb 2006-Jan-17 01:23 (#556) ticket notify patch *: call notify when attachments are added (%h substitution) *: provide substibutions for ticket change row ids to prevent races *: update /setup_chng page
627 cpb 2006-Jan-11 16:38 (#418) *CELLSPACING* wasn't on the list of allowed attributes
626 cpb 2006-Jan-10 20:21 (#547) That seems to run a little faster than my approach.
625 cpb 2006-Jan-10 19:02 (#547) handle empty log messages
623 drh 2006-Jan-10 01:25 Version 1.2.1
624 drh 2006-Jan-10 01:23 Fix minor compiler warnings.
622 cpb 2006-Jan-08 15:48 (#522) specific versions of wiki text rarely change _and_ have usable timestamps.
621 cpb 2006-Jan-08 15:03 (#492) fix up some comments/formatting
620 cpb 2006-Jan-08 04:27 (#522) patchsets have datestamps, too
619 cpb 2006-Jan-08 03:27 (#522) add support for the HTTP/1.0 *If-Modified-Since* conditional request. This is useful for a bunch of reasons: *: being an HTTP/1.0 construct it's more widely support than entity tags. *: it allows us to check for a cache hit _before_ we actually generate any content. In the case of /getfile, _before_ we do an expensive =popen()= to snarf the contents from the repository. *: one of the side-effects of [613] is to add a constantly changing timestamp to the RSS output; this defeats the content-based hashing ETag scheme that we're using.
618 cpb 2006-Jan-07 22:19 update copyright year
617 cpb 2006-Jan-07 22:15 do the link/checkin ok checks in the same place all that other stuff is done rather than when we're outputting the header.
616 cpb 2006-Jan-07 22:02 use a dynamic buffer in =check_cache_control=...
615 cpb 2006-Jan-07 21:44 (#544) another =zGetFile= rewrite
614 cpb 2006-Jan-07 21:05 handle a missing description a little more gracefully.
613 cpb 2006-Jan-07 15:50 (#492) upgrade RSS feed to 2.0 *: include a <pubDate> tag with every item *: include <pubDate> and, optionally, <lastBuildDate> tags in the header *: output a *Last-Modified* HTTP header if we've got a build date *: variable RSS TTL now available
612 cpb 2006-Jan-07 15:32 (#543) remove some excess whitespace
611 cpb 2006-Jan-06 19:03 (#544) =zGetFile= has already been urlized.
610 cpb 2006-Jan-05 01:29 (#418) add some attribute filtering to HTML restrictions. This should help reduce various types of HTML hacking (JavaScript injections, style manipulations), although it creates trouble with custom markups which use restricted HTML elements... Might need to add a "trusted" flag to markups or something similar.
609 cpb 2006-Jan-04 23:11 (#541) forgot a '%'
608 cpb 2006-Jan-02 18:29 (#540) make the ETag digest copy a little clearer
607 cpb 2006-Jan-01 16:25 (#540) use =appendf()= to build up the search query
606 cpb 2006-Jan-01 15:02 (#540) =bprintf()=, on the other hand, _does_ support %h.
605 cpb 2006-Jan-01 05:22 (#540) allowing =appendf()= take a NULL for the length counter makes it a bit more versatile in that we can use it like a safe formatting =strcat()=.
604 cpb 2006-Jan-01 05:15 (#540) implement a =appendf()= function to cleanly handle the situation where we're appending formatted strings onto a growing buffer. Besides being safer, we're also not continuously having to do =strlen()= calls and keeping track of length ourselves.
603 cpb 2006-Jan-01 05:00 (#540) more s/sprintf/bprintf/. Again, we're not quite done timeline.c.
602 cpb 2006-Jan-01 04:35 (#540) s/sprintf/bprintf/. rss.c doesn't have all the sprintf()s converted... Got a better plan for that.
601 cpb 2006-Jan-01 04:09 (#540) s/sprintf/bprintf/.
600 drh 2006-Jan-01 03:53 Bug fixes in the new wiki delete logic.
599 cpb 2006-Jan-01 03:50 (#540) add a =bprintf()= function. Basically works like =snprintf()= (which we should be using instead of =sprintf()=) but uses the more advanced formatting abilities of =vxprintf()= (which in turn is the core of =mprintf()=).
598 cpb 2006-Jan-01 03:07 don't show the "New report" action item if the user doesn't have query permissions.
597 cpb 2006-Jan-01 02:41 oops, %h doesn't work in =sprintf()=
596 cpb 2006-Jan-01 02:36 (#540) replace a whole bunch of %s with %h/%t/%t or, better yet, %d.
595 drh 2006-Jan-01 02:14 More pedantic %s to %h/%t/%q changes. Asserts added to verify that fixed sized buffers never get close to overflowing.
594 drh 2006-Jan-01 01:24 Add new privileges Delete and Query. Users with Delete privilege can erase content added by anonymous within the past 24 hours. User with Query privilege can create and edit report formats.
593 cpb 2005-Dec-31 22:12 (#540) don't use '%s' where just a %d is more appropriate.
592 cpb 2005-Dec-31 21:58 (#540) some more format string changes. For the most part, problems here would imply something broken in the history file... Or someone using the history file to try to crack CVSTrac...
591 cpb 2005-Dec-31 20:21 (#540) more format string changes, mostly related to =zPage=. We normally verify that =zPage= is either a ticket number (numeric) or a wiki page (CamelCase), but there's no guarantee that won't change in the future.
590 cpb 2005-Dec-31 19:44 Bump version to 1.2.1
589 cpb 2005-Dec-31 18:05 (#469) /dirview needs =printable_vers()= calls on those revisions or things get pretty crowded in GitTrac.
588 drh 2005-Dec-31 17:18 More changes of %s to %h and friends - all for an extra layer of safety. No holes found.
587 cpb 2005-Dec-31 16:41 (#520) run the *option()* query through the report SQL statement verifier.
586 drh 2005-Dec-31 16:35 Use %h instead of %s even when not necessary. Just to be paranoid.
585 cpb 2005-Dec-31 16:25 For some reason, /rlog has never had a common_footer() call.
584 drh 2005-Dec-31 15:52 Correct some overzealousness in the previous checking.
583 drh 2005-Dec-31 15:32 Fix a problem in database initialization with schema version 1.9. Change some %s formatting to %h or %T or %t just to be paranoid.
582 cpb 2005-Dec-28 22:42 (#270) add link titles
581 cpb 2005-Dec-28 12:32 (#539) need to restrict what sorts of queries we'll check...
580 cpb 2005-Dec-28 12:29 (#539) validate report queries _before_ saving the report. This just extends the normal "not too many SELECTs" test to include a full query check.
579 cpb 2005-Dec-28 02:40 (#197) add OS X make rules
578 cpb 2005-Dec-28 01:51 (#270) make the "Logged in" message a link to /logout, too. This is probably nowhere near as useful as a login link for anonymous users, but consistency is always good.
577 cpb 2005-Dec-27 23:47 (#276) add support for user-defined fields in ticket notification (using %1 through %5).
576 cpb 2005-Dec-27 23:41 (#270) make the "Not logged in" text in the menubar a link to a login page. This ensures that a login link is available one every CVSTrac page for anonymous users.
575 cpb 2005-Dec-27 22:50 (#229) separate the displayed *aux* and *option* names from the CGI parameters. For one thing, we need to restrict the character set used by the CGI parameter (no spaces or other magic characters).
574 cpb 2005-Dec-27 03:21 (#298) be a bit more aggressive about newlines in enum descriptions
573 cpb 2005-Dec-27 03:02 (#204) force the revision comparison to be string based. Most other places don't have this problem so it seems like it's probably a side-effect of the temporary table.
572 cpb 2005-Dec-27 01:58 (#174) when a current default status or type is removed from the enumeration list, update the default to be something actually from the new list.
571 cpb 2005-Dec-26 19:28 (#538) add a /wiki.txt page to get a plain-text dump of the raw Wiki markup.
570 cpb 2005-Dec-26 15:31 (#469) some slight adjustments to column layout and free up query memory.
569 cpb 2005-Dec-24 14:29 (#469) add a "long view" option to browse mode. *: create a /dirview option which does a long/detail view of a directory. This shows age, user, revision and the last commit message for each file with links to all the appropriate CVSTrac pages. *: add an option for the admin to specify the default browse style (long or short). Defaults to short. *: add a cookie so the users last browse style is retained during navigation. *: add a _default_browse_url()_ function to figure out what's best and uses it anywhere a "dir" browse link is used. This gives the user a consistent browse experience. *: tighten up the /setup_interface layout a bit
568 cpb 2005-Dec-24 14:17 (#531) oops, milestone logic not quite right
567 cpb 2005-Dec-20 14:02 (#534) some HTTP header fixes *: only output a *Date* header when we're acting as a standalone HTTP server *: don't generate a *Content-Length* for a 304... we're not sending content.
566 cpb 2005-Dec-20 00:36 (#531) don't retrieve event milestones when milestones disabled. We _do_ need release milestones, however, in order to divide up the timeline when requested.
565 cpb 2005-Dec-14 13:15 (#520) add a single param variant of *option*. This (like the single param version of *aux*) allows the user to re-use an option field in an expression, such as: SELECT * FROM ticket WHERE owner=option('User','SELECT id FROM user') OR assignedto=option('User')
564 cpb 2005-Dec-14 02:42 (#520) implement a SQL *option* function to provide a dropdown menu similar to how the *aux* function generates a textfield form. This allows reports using expressions like: SELECT tn FROM ticket WHERE owner=option('User','SELECT id FROM user') Which pretty much works as expected. Also added *aux* and *option* documentation to /rptedit and /rptnew pages.
563 cpb 2005-Dec-12 00:34 (#497) clarify attachments a bit more.
562 cpb 2005-Dec-12 00:30 (#497) add better support for "style" objects *: /setup_header page now more general /setup_style *: added option to restore the style from the default *: add a %B (base URL) substitution, so we can generate URL's like "%B/cvstrac.css". *: adds the ability to attach files to the setup_style page by basically saying that ticket zero (which isn't a valid ticket number) is that page. This is a little hackish, but it means that the administrator has a "private" attachment playground for all the various files that need to be uploaded. *: maps URLs of the form http://<cvstrac path>/<filename> to ticket zero attachments, by name, meaning that stylesheet elements don't need to guess at things like attachment numbers and stuff. To add a logo, for example, you can just use <img src="%B/logo.gif">. If the same filename exists multiple times, the most recent attachment is chosen. *: handles/hacks around the constant/expiry/caching issues for #522.
561 cpb 2005-Dec-11 23:53 (#464) add timeline cookies *: minor fix to cookie lifetime handling *: clicking "Show Timeline" will save settings to a cookie and viewing the timeline will extract the settings and apply them. This can always be overridden. *: add a /setup_timeline to handle this and, eventually, some RSS 2.0 options.
560 cpb 2005-Dec-11 15:16 (#522) fix some comments
559 cpb 2005-Dec-11 02:22 (#522) patchsets are constant, too.
558 cpb 2005-Dec-11 01:33 (#522) for constant output, send an *Expires* header. By default, we're going with 7 days. We're assuming that when something sets the *g.isConst* flag, it's serious about it...
557 cpb 2005-Dec-11 01:17 (#522) do a bit of work on HTTP response cacheability *: output from /attach_get always includes a *Last-Modified* header. We should modify this to handle the *If-Modified-Since* condition, too. *: Output of specific versions of /getfile (which generates the raw file contents) is flagged as being "constant" since it'll never change. We don't really do anything with the constant flag at the moment, but we should look at using expiry. Unfortunately, the stuff that's often flagged as constant really isn't that constant. *: when generating CGI replies, calculate an entity tag using the MD5 hash on the buffer. This is included in all responses as the *ETag* header. *: additionally, when we generate the *ETag* we also check it against the *If-None-Matches* request header and, if it's there, we're about to return a 304 response without sending the contents. Even though we still have to _generate_ the page content, sending a 300 byte rather than 100k /timeline is still a rather large bandwidth savings. This also works _invisibly_ with _every_ page we generate, including attachments, RSS output, etc. *: drop the *Pragma: no-cache* and replace it with a bit of cache control. *Pragma: no-cache* wasn't really doing much because there wasn't any other cache control headers that would have confused a cache into thinking that it could actually keep the stuff anyways. For cache control, all we really need to do is distinguish between public and private data (i.e. anon vs logged in users). *: remove the response header stuff from =main.c=. Everything else like that was already being done in =cgi_reply()= anyways...
556 cpb 2005-Dec-04 00:08 (#521) add an RFC 822 date formatter. The time zone is hardcoded to GMT as required by HTTP.
555 cpb 2005-Dec-02 13:36 _tktnew_ needs a cancel action somewhere
554 cpb 2005-Dec-02 13:34 (#470) description preview title needs to be broken out
553 cpb 2005-Dec-02 02:46 (#470) merge [552] into the *manual-patches* branch so I can keep working on this without changing browsers.
552 cpb 2005-Dec-02 02:41 (#470) put a textarea on the same page as the preview area. Besides working around some browser issues (I'm not sure how well defined large tracts of text in hidden fields are), it makes the edit/preview/edit cycle must faster. Those of use working over dial-up connections appreciate any reduction in clicks.
551 cpb 2005-Dec-01 22:12 (#510) put an "Edit" button in the _chngview_ action bar. I'll leave the little "edit" link next to the comment, however, since people are probably used to it.
550 cpb 2005-Dec-01 22:08 (#512) confirm report delete actions.
549 cpb 2005-Dec-01 21:52 (#517) submitting a report form now sends to the _rptview_ page.
548 cpb 2005-Nov-25 02:08 (#509) add reports, attachments and inspections.
547 cpb 2005-Nov-25 00:46 (#264) fix typo in date function docs
546 cpb 2005-Nov-24 23:58 (#511) make the report query authorization stricter: *: restrict *access_load* to setup users *: anonymous users can't see contact information *: RdWiki permission to read wiki. Mind you, you also need that to see reports in the first place, but... *: Checkout permission to read *chng*, *filechng* and *file* *: Read permission to see *ticket* columns
545 cpb 2005-Nov-24 15:12 (#509) we already had a minimal CvstracDocumentation page so rather than created a new parallel page, just take that one over.
544 cpb 2005-Nov-24 02:59 (#509) finish check-in documentation, add wiki and milestones.
543 cpb 2005-Nov-23 19:28 (#444) when searching filenames, search for attachments as well as repository files. Also fix labels on filename output.
542 cpb 2005-Nov-23 01:40 (#509) that wasn't supposed to be in there
541 cpb 2005-Nov-23 01:24 (#509) initial cut at writing and integrating an online manual. Putting this in a branch since it's not going to happen _too_ quickly. *: create a =common_add_help_item()= function which takes a wiki page as an argument and ensures that a *Help* link to that page goes somewhere appropriate. Currently, "appropriate" is defined as the navigation menu. *: ensure that every page which does something "interesting" has one of these help items. *: add a "Help" item to the main index page. *: start writing some content for this manual. This is going to be slow going, to say the least, but I've identified which pages need to be written and started on a few, including the main manual page, the admin page, the ticket page, and the check-in page. Others will follow...
540 cpb 2005-Nov-20 23:49 manual-patches
537 cpb 2005-Nov-19 23:49 (#507) use the *setup* userid when updating Wiki pages. It makes for a saner display where the userid is displayed.
536 cpb 2005-Nov-11 00:09 (#507) some wiki fixes *: [271] fixed an inverse timestamp problem in =makewikiinit.c=, but that fix never got back into =wikiinit.c= for some reason. Fixed. *: change the fonts section heading to just *Fonts*. *: add a command-line "wikiinit" option which just updates the Wiki content to whatever's currently in /cvstrac/wikiinit.c. The normal "history" behaviour will ensure that whatever content that was already in the wiki will still be available.
535 cpb 2005-Nov-03 21:16 (#444) add "Filenames" to the list of searchable things in the index.
534 cpb 2005-Oct-19 16:13 (#496) fix some SQL syntax errors, plus get a combination of flags right.
533 cpb 2005-Oct-19 13:25 (#496) show inspections in timeline(.rss). They'll show up in all the same places as checkins.
532 cpb 2005-Oct-18 19:08 (#463) add an "associated milestones" field to tickets. There's probably some optimizations that can be done in there, but it's functional enough.
531 cpb 2005-Sep-29 01:24 (#315) chorlya: update documentation on minimum SQLite version required. Fix some typos.
530 cpb 2005-Sep-28 13:48 (#486) sanely handle empty versions. GitTrac doesn't really have a (fixed) concept of head, so don't try to "guess" the best filename, just disable the behaviour entirely (by linking to /rlog).
529 cpb 2005-Sep-28 13:41 (#486) fix SvnTrac behaviour when an empty revision is provided. By not passing -r to _svnlook_, we always get the most recent revision.
528 cpb 2005-Sep-28 01:34 (#486) an empty version is an acceptable value. What version is actually output is, however, dependent on how the SCM-specific =dump_version()= function is implemented. Works for CVS, anyhow.
527 cpb 2005-Sep-28 01:20 (#486) fix NULL dereference in =printable_vers()=.
526 cpb 2005-Sep-26 23:01 (#463) add support for tickets and milestone association. *: Related milestones are now shown in /tktview. Moved the actual checkin/milestone display code to a separate shared function *: expanded the text entry area in the msnew/msedit pages
525 cpb 2005-Sep-26 01:50 if the timeline is restricted to a prefix and that prefix is a directory, create a /dir link in the action bar.
524 cpb 2005-Sep-26 01:39 rather than override the normal "Timeline" behaviour, create an action bar link called "Activity" which invokes the timeline and filters on the directory.
523 cpb 2005-Sep-26 01:38 make a copy of the string, which gets rid of a warning.
522 cpb 2005-Sep-22 21:55 (#483) add a "are you sure" page to milestone deletion.
521 cpb 2005-Sep-22 18:48 okay, delete is really picky about the arguments.
520 cpb 2005-Sep-22 18:44 when adding a new milestone, you do need to figure out the cn before redirecting the user...
519 cpb 2005-Sep-22 18:33 fix the labelling when viewing milestones (i.e. use Milestone rather than Check-in) and display the _type_ of milestone.
518 cpb 2005-Sep-22 18:22 some fixes to how milestone editting works: *: after changing a milestone, redirect to /chngview rather than /index. /index is fine for a milestone deletion, but when you make a change it's nice to be able to confirm the change. *: put Cancel and Delete items in the action bar
517 cpb 2005-Sep-22 03:20 okCheckin is too restrictive. /taghints itself uses okRead.
516 cpb 2005-Sep-21 02:03 (#476) read somewhere than git commits may not always have an "author" line. In that event, fall back to using committer.
515 cpb 2005-Sep-21 01:59 (#476) when both ndel and nins are zero, don't bother displaying them. This is a cosmetic nicety for things like GitTrac where we don't gather than information.
514 cpb 2005-Sep-21 01:29 add an "RSS" action item to the /timeline view. Most people aren't even aware of the RSS feed capability since it's mostly undocumented and there's no existing link actually leading to it.
513 cpb 2005-Sep-16 16:13 (#480) redirect rcs program output to /dev/null
507 cpb 2005-Sep-14 01:22 remove some unused variables.
506 cpb 2005-Sep-14 01:21 (#170) it's not really an error if we can't dump a binary file.
505 cpb 2005-Sep-14 01:07 (#278 and #170) replace a bunch of code with a couple common functions *: =output_pipe_as_html()= takes an input stream and a "force" flag and outputs it as HTML. If force is used or the input is plain text, it just gets wrapped with <pre> tags. If it's detected to be HTML, it'll be passed through unchanged. This logic was being duplicated in a bunch of places. *: =common_dumpfile()= handles all the permutations of getfile filtering and the bRaw flag to implement the basic logic needed to output a particular version of a file. SCM's just fill in the function needed in a =popen()= call to write the file to stdout.
504 cpb 2005-Sep-14 00:38 (#278 #170) filter/diff tweaks *: add the %RP substitution that things like svn and git require *: unify how all three SCM's take parameters *: allow either HTML or plain text output from the file filter to make the diff behaviour.
512 drh 2005-Sep-13 21:27 Version 1.2.0
503 cpb 2005-Sep-13 21:27 (#375) remove all the image files since they're no longer referenced in the code itself.
502 cpb 2005-Sep-13 14:33 (#476) add a note on building GitTrac
501 cpb 2005-Sep-13 13:59 bump version number to 1.2.0
500 cpb 2005-Sep-13 13:57 config.h doesn't get copied into build directory.
499 cpb 2005-Sep-12 23:56 add the output of the makemake.tcl change
498 cpb 2005-Sep-12 23:49 make =config.h= a dependency for all the .o files
497 cpb 2005-Sep-12 02:30 some cosmetic stuff *: add an alternating (grey) background to the /rlog display. This isn't much of an issue for short commit logs, but once the logs get larger it becomes quite hard to tell one commit from another. *: move some hardcoded bgcolor values into config.h. In this case, BG5=#dddddd is added for branches.
496 cpb 2005-Sep-12 01:27 (#476) more git stuff *: use INSERT's for the FILECHNG records, not REPLACE. *: need to extract the date from the committer record, not the author. Otherwise... Well, cg-update on cogito just blew the ordering all to bits. *: make sure some buffers are properly zeroed.
495 cpb 2005-Sep-11 21:15 more /dir things *: don't replace the Timeline if we're in the root directory *: do drop the Browse from the nav menu, but add a "Top" option in actions menus of the subdirectories.
494 cpb 2005-Sep-11 20:46 *: make /tktundo user interface use an actual form with proper buttons rather than just links. *: add a Cancel button to the /tktundo action bar
493 cpb 2005-Sep-11 20:32 [248] broke the behaviour where, when in the /dir page, clicking on the timeline would restrict the search to the specified directory. Restore that behaviour. Mind you, given that it's been broken for 2.5 years I'm not sure anyone really missed it...
492 cpb 2005-Sep-11 18:59 (#476) handle tagging in git As it turns out, you can't count on just the .git/refs/heads references to build an accurate picture of the revision tree. For example, my test case {link:;a=summary cogito} seems to have commits under the tags references that don't appear in a tree from either of the heads. Not sure why this is, but the gist of it is that we need to treat tags as heads for the purposes of building a full commit tree. This patch cleans up a lot of stuff so we can actually make that work. And it does, although importing {link:;a=summary cogito} is now around 6 minutes rather than 2.5. There's probably some SQLite optimizations that could be done there... One interesting consequence is that tags and heads are automatically turned into milestones, which means the timeline always has, as the latest entry, a milestone for every head. Based on my understanding of git development patterns, that not entirely a Bad Thing.
491 cpb 2005-Sep-11 18:52 (#476) make =common_readfile()= more, uh, common.
490 cpb 2005-Sep-10 13:54 (#476) _why_ do we need to explicitly get GIT_DIR if CVSTrac automagically does =chdir()= into the repository directory? I don't know either.
489 cpb 2005-Sep-10 13:12 (#444) adjust some =common_standard_menu()= calls *: toggle f=1 for /dir, /rlog, /fileview, etc search defaults *: "Browse" should be available in /dir. Particularly when we get deeper in the tree since it's the fastest way to get back to the root.
488 cpb 2005-Sep-10 02:06 (#476) create a =printable_vers()= function to generate briefer revision numbers for things like GitTrac where 40 char long object hashes can really trash the layout.
487 cpb 2005-Sep-10 01:40 (#278 and #476) both GitTrac and SvnTrac shared a copy of =is_file_available()=. Merge them into /cvstrac/history.c and just have CVS with it's own implementation.
486 cpb 2005-Sep-10 01:27 move the /taghints to the action bar and make it CVS-only. Also make it permissions dependent. Had to fudge the table layout a bit to fill in the resulting lack of text. #231 would be nice right now...
485 cpb 2005-Sep-10 01:06 (#278 #476 #357) replace the extra =patchset_chng()= method with just a flag for =diff_chng()=. This cuts down on duplication and is one less SCM entry point. Also, don't display Patchset or Inspection if the user doesn't have the permissions to use them.
484 cpb 2005-Sep-10 00:22 (#278) merge chorlya's 20050909 diff, with some fixes *: log messages now variable length. This works nicely for Subversion because it actually indicates length before the message *: tree copies and deletes now handled sanely *: fixed some memory management issues in the patch *: skip =svn_did_repository_change()= check if historysize reset to zero. *: assorted other minor changes and optimizations.
483 cpb 2005-Sep-10 00:18 (#278 and #476) only CVS knows about modules. That might change later.
482 cpb 2005-Sep-09 22:51 (#476) include =limits.h=
481 cpb 2005-Sep-09 19:52 (#444) when only filename is checked, after the search all the boxes are toggled on. That's not quite right.
480 cpb 2005-Sep-09 11:41 (#476) more git fixes *: hopefully fix the timestamp problems *: just store the commit id for the files. It's not as handy as the blob for dumping specific versions, but we really need the tree and since a commit is a treeish...
479 cpb 2005-Sep-09 02:56 (#476) missed a =pclose()=
478 cpb 2005-Sep-09 02:25 (#476) first cut at a GitTrac implementation. *: It works against a _git_ working directory, but it's not ready for production use *: file diffs aren't implemented because, oddly enough, there doesn't seem to be anything like _git-diff-blob_. Something to fix, I guess. *: documentation to follow. To try it out: make APPNAME=gittrac ./gittrac init </path/to/working/directory> <project> ./gittrac server 8008 </path/to/working/directory> <project> login as setup/setup, change repository to /path/to/working/directory go to timeline
477 cpb 2005-Sep-09 01:07 (#474) we need the transition offered by the 1.8 schema stuff or an attempt to create a _new_ SvnTrac setup is going to fail.
476 cpb 2005-Sep-06 13:24 (#474) *: minor bug in ordering of records. Most users wouldn't see this unless multiple commits to a single file showed up with the same cn. You don't even _want_ to know how I manage that. *: break out of the search loop sooner. That knocks about 15% off the schema upgrade time with my setup (50000 filechng records, many branches, manual changes to revision numbers).
475 cpb 2005-Sep-06 11:26 (#460) we don't need _svnlastupdate_ in CVS...
474 cpb 2005-Sep-06 02:26 (#460) need to update _svnlastupdate_ when nothing's changed, too.
473 cpb 2005-Sep-06 02:20 *: (#474) we only need to set the schema once *: (#460) things work better when it's not always zero
472 cpb 2005-Sep-06 00:57 (#459) only display the CVSROOT/ change notes in /useredit if we're actually configured to read/write to CVSROOT/*.
471 cpb 2005-Sep-06 00:51 (#459) try to make the /useredit page make a bit more sense in Subversion. It doesn't quite work unless we can properly fix #448.
470 cpb 2005-Sep-06 00:35 update copyright date
469 cpb 2005-Sep-06 00:04 (#459) make various CVS specific documentation more generic *: add a =g.zSCMName= field to the global structure and initialize it to the human-readable name of the SCM. i.e. "CVS" or "Subversion". *: adjust various pages (except, notably, the user/passwd stuff) to be less CVS-specific or to have non-CVS options, depending on what's appropriate. This includes outputting %s(g.zSCMName) and using less specific terms (i.e. "repository" rather than "CVSROOT/history file").
468 cpb 2005-Sep-05 18:25 (#474) _now_ we can use FILECHNG.prevvers directly in queries.
467 cpb 2005-Sep-05 18:03 (#474) fix the CVS prevvers/chngtype performance problem. In a nutshell, the prevvers/chngtype calculation needs to be a glorified table copy. That makes the whole thing about 100x faster. This introduces a 1.9 schema version, but removes the whole 1.8 thing since it ends up basically being a NOP. Care is taken to not break existing 1.8 schemas.
466 cpb 2005-Sep-04 02:35 (#474) can't use CHNG.prevvers directly in CVS because we don't actually build the entire history until _previous_version()_ is called.
465 cpb 2005-Sep-04 02:23 (#473) document available *.mk files. (#278) describe how to build Subversion support
464 cpb 2005-Sep-04 02:20 (#473) add a BSD makefile template
463 cpb 2005-Sep-04 02:19 (#473) fix a variety of C++isms introduced by the captcha and svn stuff.
462 cpb 2005-Sep-03 13:49 (#318) move show/omit milestones into the action menubar.
461 cpb 2005-Aug-31 01:05 reclassify "Directory" as an action rather than navigation item since it's relative to the currently viewed page.
460 cpb 2005-Aug-31 00:49 (#278) make the added/removed messages relative to version numbers so they make a little more sense.
459 cpb 2005-Aug-31 00:37 (#468) do a VACUUM after a schema update or a repository reread/reconstruct.
458 cpb 2005-Aug-31 00:30 (#278) use FILECHNG.chngtype to generate labels *: we were treating any 1.1 version as a new file. This obviously only works for CVS *: flag added and removed files appropriately and always mention the file version.
457 cpb 2005-Aug-29 14:40 (#455) changed remarks and description are now run through diff. *: Moved the wiki diff logic to a =diff_strings()= function. Allow a caller defined context. This would be a good candidate for a section in /setup_diff *: handle changed remarks and description by running them through =diff_strings()= Note that because the ticket history has moved to a separate /tkthistory page (#378) the diff only runs when people actually explicitly want to see histories. But even without that, the decrease in ticket history sizes would still be a win since CPU time is usually cheaper than bandwidth.
456 cpb 2005-Aug-29 00:43 (#170) that was supposed to be a comment.
455 cpb 2005-Aug-28 22:40 (#460) handle both fsfs and bdb database backends. Note that it's not the end of the world if both of these fails, it's just a shortcut.
454 cpb 2005-Aug-28 22:16 (#170) always nice if you can actually _delete_ the filter...
453 cpb 2005-Aug-28 22:03 (#460) checking the path works better if you have a root.
452 cpb 2005-Aug-28 21:59 (#170) add support for "pretty printing" files in HTML. This basically means the /fileview page. /getfile is and always will be raw. *: define a =get_filefilter()= to setup a pipeline for optional filtering. This handles the filename and version substitutions. *: change =*_dump_version()= to use a filter if available. *: add a setup for the filter to /setup_diff. In the process, update it to make sense for SvnTrac (#459).
451 cpb 2005-Aug-28 20:26 (#466) don't pass the built-up query string directly. Use a "%s" formatter instead.
450 cpb 2005-Aug-28 20:05 (#460) tweak things a bit in case svnlook runs fast enough and ensure that we do an svnlook every hour or so.
449 cpb 2005-Aug-28 19:07 (#170) add basic support for dumping files in some "markup" format. Right now, this means straight HTML <pre> tags. *: add a "raw" flag to =dump_version()= so we can still use it for regular /getfile retrieval. *: change =cvs_dump_version()= and =svn_dump_version()= to try to do something useful with the flag. This is where a filter would be used. *: add a /fileview URL as the default browse file display. It has, of course, the option to display the "raw" bits. A useful side effect is that file display is faster in Konqueror and other browsers which handle HTML better than straight "text/plain". *: /fileview will inline known image formats into the page. *: /getfile still works as expected.
448 cpb 2005-Aug-28 15:26 (#462) only offer patchsets for checkins (chng.type==0).
447 cpb 2005-Aug-28 15:08 (#458) run =g.zExtra= through =dehttpize()= after we extract it. This is done automagically for CGI parameters, but some things will look at =g.zExtra= too.
446 cpb 2005-Aug-28 14:49 (#460) avoid excess _svnlook_ calls by checking file modification times in the repository directory. This is a bit hackish and not reliable (the files are all touched even with read-only operations), but definitely smoothes things out.
445 cpb 2005-Aug-28 02:00 (#394) be smarter about updating ticket/chng cross references when a chng message gets editted. Not only do we need to add xref entries, we also need to remove them. Note that this will remove any _manually_ created associations.
444 cpb 2005-Aug-28 01:31 (#278) merge =svntrac-patches= into HEAD. This change includes: *: Subversion support via =svn.c= *: upgrades the database schema to 1.8 *: an assortment of little fixes and tweaks to make all of the above actually work
443 cpb 2005-Aug-28 00:54 (#278) "svnlook" assumes that $CWD is the repository. Which means that because CVSTrac first does a chdir() into the repository directory (as given by the command line), the first login by "setup" will cause a repository import. It's usually a good idea if the admin has a chance to set things up first...
442 cpb 2005-Aug-27 22:11 (#445) when encountering the results of "svn copy", use "svnlook tree" to fill out the file hierarchy. "svnlook changed" will show the top of the tree and anything in the copy that's not "original", but it won't actually provide a list of copied files. This does mean that any directory add results in a slower code path.
441 cpb 2005-Aug-27 14:49 (#278) remove a =free()= call on a NULL pointer.
440 cpb 2005-Aug-26 00:57 (#457) more markup substitution changes: *: add %u (user) and %c (capabilities) substitutions *: alter how the markup substitution function works to make it much easier (i.e. two lines) to add new substitutions.
439 cpb 2005-Aug-25 18:08 (#454) include "derived from" in the /tktnew field list.
438 cpb 2005-Aug-25 18:04 (#456) Delete button was taking us to /tktview rather than /tktedit.
437 cpb 2005-Aug-23 22:44 (#202) don't accept empty user ids
436 cpb 2005-Aug-23 22:32 (#184) move =cgi.h= include to the bottom like most of the others.
435 cpb 2005-Aug-23 20:59 (#444) add the ability to search for filenames. We don't search file _contents_, although that _could_ eventually be enabled on an SCM with a particularly efficient content searching mechanism... or an SCM hosted on a system with efficient file-based searching (Spotlight?)
434 cpb 2005-Aug-19 17:55 (#447) should do a =ticket_notify()= when remarks are appended.
433 cpb 2005-Aug-19 17:50 (#448) add support for handling Subversion user files. Also fixed some tabdamage.
432 cpb 2005-Aug-15 00:43 (#446) change _insert_file()_ to correctly handle being given /-terminated directory names.
431 cpb 2005-Aug-14 02:11 (#419) automatically turn pathnames to repository files (i.e. /cvstrac/format.c) into rlog links.
430 cpb 2005-Aug-14 00:14 (#278) last cut at the schema 1.8 upgrade thing. There doesn't appear to be a reasonable way to get performance on 50000 _filechng_ records to be acceptable, so just do the 1.8 upgrade and then do the _prevvers_ and _chngtype_ determination on demand, when _previous_version()_ or _is_dead_revision()_ are called. There are only called infrequently and usually on just a handful of files, so performance should be fine and eventually _filechng_ will be populated, at least for the popular files.
429 cpb 2005-Aug-13 22:15 (#443) ensure the diff buffer is NUL terminated.
428 cpb 2005-Aug-12 23:39 (#440) report deletion doesn't work without the "del" CGI parameter. Looks like that used to be provided for free when deletion was trigger through a form submission.
427 cpb 2005-Aug-12 16:04 (#278) fix the ordering, change the schema init to make testing easier. 50000 _filechng_ updates still takes a while, but it's a lot faster _and_ it appears to be complete.
426 cpb 2005-Aug-12 16:03 (#278) move the schema stuff into a separate =check_schema()= function and have the "update" server command call it. This allows for somewhat less painful updates.
425 cpb 2005-Aug-12 16:01 (#278) sanely handle "broken" version numbers (without periods).
424 cpb 2005-Aug-12 01:02 (#278) try to get some better performance from the schema v1.8 update algorithm. 15-20 minutes to churn through 48000 _filechng_ entries seems a bit too much...
423 cpb 2005-Aug-11 02:07 (#278) clean up a bunch of database queries. Use _db_short_query()_ in more places and actually free some results and stuff. This appears to speed up the 1.8 schema update considerably.
422 cpb 2005-Aug-11 01:47 (#278) don't need a svntrac target. Just go make all APPNAME='svntrac'
421 cpb 2005-Aug-11 01:43 (#278) Subversion update
420 cpb 2005-Aug-11 01:37 (#278) quote version in _previous_history()_ query.
419 cpb 2005-Aug-11 01:36 (#278) quote revision in query
418 cpb 2005-Aug-11 01:36 (#278) don't do prevvers chaining for anything other than CVS. Also quote revision.
417 cpb 2005-Aug-11 01:32 (#437) fix a couple SQL statements where we're not quoting what we get from CGI parameters. The one in wiki.c requires admin privs while the one in timeline.c should require admin privs (the submit button only shows for admins), but only checks for write perms when processing the form.
416 cpb 2005-Aug-11 01:30 (#437) fix a couple SQL statements where we're not quoting what we get from CGI parameters. The one in _wiki.c_ requires admin privs while the one in _timeline.c_ _should_ require admin privs (the submit button only shows for admins), but only checks for write perms when processing the form.
415 cpb 2005-Aug-11 01:00 (#278) comments to clarify what happens when _cvs_previous_version()_ fails to work because <cough> someone messed with CVS revision numbers. In a nutshell, it breaks diffing but is otherwise currently benign. That may change if we make heavier use of the _prevvers_ chaining and the _chngtype_ "add" value.
414 cpb 2005-Aug-11 00:58 (#278) _is_dead_revision()_ only needs the database so it doesn't need to be buried in _cvs.c_.
413 cpb 2005-Aug-10 11:31 (#278) note to self. This works as long as people don't mess with CVS revision numbers, but woe to those like myself...
412 cpb 2005-Aug-10 03:27 (#278) need to set _chngtype_ and _prevvers_ during _cvs_update_history()_ too. This isn't as nice as I'd like, but it seems to work okay.
411 cpb 2005-Aug-10 03:03 (#278) with _prevvers_ in the _filechng_ table, we don't actually _need_ SCM-specific versions of _previous_version()_.
410 cpb 2005-Aug-10 02:40 (#278) _is_dead_revision()_ is much, much less horrible when you don't need to run external programs...
409 cpb 2005-Aug-10 02:35 (#278) changes to the _filechng_ table. *WARNING* this is hairy stuff. *: This updates the schema to 1.8, adding the _prevvers_ and _chngtype_ fields to the _filechng_ table. *: change _cvs_previous_version()_ to check the _prevvers_ field rather than just making assumptions about things. This is _much_ nicer. *: the hairy part is found in _db.c_ in the _db_upgrade_schema_8()_ function. In a nutshell, we want to take what we know about the old _filechng_ tables and populate the _prevvers_ and _chngtype_ fields. *Be warned* that I haven't tested this on a repository with weird version number increments.
408 cpb 2005-Aug-09 23:04 (#278) add core Subversion support *: s/diff_chng/patchset_chng/ *: _diff_chng()_ now defined to dump a HTML-ized diff *: _svn.c_ now fleshed out with something which supposedly works ;)
407 cpb 2005-Aug-09 22:42 (#278) Make sure we always have '/' in zFile, otherwise link to parent directory won't work for file in repository root.
406 cpb 2005-Aug-08 23:38 (#433) put an "Append Remarks" link at the bottom of the remarks section as well.
405 cpb 2005-Aug-08 23:31 (#278, #357) add a _chng_diff()_ function and enable the */patchset* page. I'm using the term *Patchset* because *Diff* in CvsTrac always seems to imply an HTML page, not a raw diff. That might not be the best choice of words... The CVS version still hasn't been as well tested as I'd like. The patch _looks_ good, but how it applies is a different story.
404 cpb 2005-Aug-08 17:17 (#278) oops... that built at home. Weird.
403 cpb 2005-Aug-08 02:18 (#278) _svn_ needs a filename for the previous version and, quite frankly, _cvs_ _should_ be using one as well because right now, there's a major problem if someone goes manually mucking with version numbers (via "cvs commit -r <n>", for example) since _cvs_previous_version()_ doesn't even check the file history...
401 cpb 2005-Aug-08 01:39 (#278) add skeleton for Subversion support. Currently doesn't do anything, of course. Update makefile so it should just be a matter of make svntrac
402 cpb 2005-Aug-08 01:39 file svn.c was initially added on branch svntrac-patches.
400 cpb 2005-Aug-08 01:28 (#278) add support for dynamic SCM detection from the executable name. In a nutshell, we look for _<blah>trac_ in =argv[0]= and set the =zSCM= variable in the =Global= structure to _<blah>_. Modified a few places to actually check the =g.zSCM= value before blindly doing something CVS-like.
399 cpb 2005-Aug-08 00:59 (#278) move all the CVS-specific code into =cvs.c= except the user import stuff. *Note* that this is all in the _svntrac-patches_ branch. *: a set of common function calls goes in =history.c= which can be dispatched to whatever SCM subsystem is approriate. *: anything that deals directory with the CVS repository (including the =history= file and the genuine ,v files is abstracted behind this API. Nothing else sees files, just filenames in the database. *: added some additional error handling so the content side of things can gracefully handles failures in the repository access code. *: moved =xref_checkin_comment= to =db.c=
398 cpb 2005-Aug-07 23:39 (#278) s/history_update/cvs_history_update/
397 cpb 2005-Aug-07 23:38 (#278) update and =makemake.tcl= for =cvs.c=
396 cpb 2005-Aug-07 23:36 (#278) keep history.c, actually. That's where the "SCM dispatch" logic can go.
395 cpb 2005-Aug-07 23:23 (#278) rename =history.c= to =cvs.c=. We'll push more of the CVS-specific stuff into there.
394 cpb 2005-Jun-17 00:18 (#424) remove trailing whitespace on all lines in =remove_blank_lines=.
393 cpb 2005-Jun-16 23:56 (#425) path parsing eats the leading / characters so don't look for one when checking for robots.txt.
392 cpb 2005-May-19 01:17 (#418) do better bounds checking in =output_restricted_html=. The preparatory scan before isAllowed wasn't checking the indices and while this isn't a problem (i.e. I can't prove there's a vulnerability) with current use patterns, it could become a problem down the road.
391 cpb 2005-May-17 22:03 (#421) add support for a "checkin_time_window" config option. By default, we'll stick with 30 seconds, but obviously it can be increased for a particular project. _Most_ CVSTrac users aren't going to hit the number of locking conflicts that I get.
390 cpb 2005-May-17 01:43 (#418) handle the empty "html" tag faster. An =isAllowed= call with an empty string happens with things like "a <= b", for example.
389 cpb 2005-May-16 23:46 (#420) make tktnew and tktedit enforce the 70 character title limit using _maxlength_ as well as _size_.
388 cpb 2005-May-15 01:03 (#417) I'm thinking that fixing #418 will involve a smarter HTML scrubber. The line-by-line filtering that I was doing won't cut it... a proper HTML filter needs to look at the entire filtered block, not discrete lines. Hence we use =common_readfp()= to pull in the full output from the block and then we run it through =output_restricted_html()=.
387 cpb 2005-May-15 01:01 (#417) be a _little_ clearer about how we make room for the terminating NUL.
386 cpb 2005-May-15 00:58 (#417) define a =common_readfp()= function to read from a file descriptor into a chunk of memory.
385 cpb 2005-May-13 23:56 (#417) the HTML generated by custom markups needs to be sanitized like all other HTML which CVSTrac generates. Remove the <DIV> tag stuff from =output_restricted_html()= (it's only needed in &lt;HTML&gt; sections) and use it to filter any HTML coming from a custom markup.
384 cpb 2005-May-12 03:26 (#417) export =write_to_temp= function.
383 cpb 2005-May-12 03:26 (#417) implement custom blocks. *: a block is a markup which handles all contents in between {quote:{markup}} and {quote:{endmarkup}}. Only one definition is needed. The contents of the block are in the %b substitution. *: terminology change. Straight markups are called "Markups" or "Program Markups". Blocks are called "Blocks" or "Program Blocks". The latter is basically just an external filter. *: Created a pipe_block() function to handle the filtering stuff. It also includes the previous external program functionality. Some of the guts were stolen from the path in #353 at
382 cpb 2005-May-12 01:48 (#416) fix ticket parsing in xref_checkin_comment(): *: export ndigit() and is_eow() functions from format.c *: make xref_checkin_comment() use them
381 cpb 2005-May-11 03:15 (#415) add { and } nesting to the =is_markup()= function. This is simple enough, in that we increment the nest count at each { and decrement at }. When we reach nest==0, we can bail. This obviously doesn't handle the case where someone wants to have unbalanced {'s or }'s in a markup. In that case, using the HTML character entities { and } (wrapped in <HTM L> and </HT ML> markup) should work.
380 cpb 2005-May-09 02:16 (#414) identify external links with icons. Basically, it looks something like: <html><font color="#a0a0a0">¤</font> <a href=""></a><br><font color="#a0a0a0">¤</font><a href="">Some other page</a></html>
379 cpb 2005-May-02 01:31 (#408) oops. Besides being completely reserved logic, that's not how you check if zMsg is "empty".
378 cpb 2005-May-01 23:56 (#408) there's no point including links backs to pages that the user doesn't have the credentials to actually look at.
377 cpb 2005-Apr-28 20:29 (#411) check the xref table for an existing entry before adding another. This eliminates duplication in ticket and chng lists.
376 cpb 2005-Apr-23 00:26 (#408) put a limit (if a large one) on wiki page sizes in the output. There doesn't seem to be limits to wiki page name sizes elsewhere, so it seems possible for someone to create a page name large enough to blow a buffer.
375 cpb 2005-Apr-23 00:20 (#408) RSS items (including the header) now define links back to the relevant items. i.e. A ticket change to /tktview, a check-in to /chngview. This requires some magic to calculate absolute URLs and may not work in all configurations (where hostname information doesn't make it down to CVSTrac, for example). Most such web servers would be considered broken, so no big worry.
374 cpb 2005-Apr-19 22:21 (#404) ensure that redirections are applied to the document root by stripping off whatever is in g.zExtra.
373 cpb 2005-Apr-19 21:52 (#406) when getting the markup list from the database, get it ordered.
372 cpb 2005-Apr-19 01:22 (#405) document additional substitutions and what environment variables are available to program formatters.
371 cpb 2005-Apr-19 01:21 (#405) add %x and %r markup substitutions *: %x is useful to implement markups where the arguments provide "optional" descriptions. For example, {quote:{getfile: filename} would produce a link like {link: filename filename} while {quote:{getfile: filename description}} would produce something like {link: filename description} using one formatter, {quote: <a href="%k">%x</a>}. *: %r is useful for program formatters which need to know where to find the sqlite database (along with the %n substitution, of course).
370 cpb 2005-Apr-18 02:22 (#404) prevent cgi_redirect from cycling. This just blocks redirections when the url is the same as the current page (comparing only up to ? and/or #). If they are the same, it generates a 500 error code with the following message: Cyclic redirection in /wiki/test/login?nxp=/wiki/test/login%3Fnxp%3D/wiki/test/test Or whatever the URL is. This handily blocks all the various unauthenticated user login cycles as well as the getfile/blah/blah/blah.c cycle. There might be a more elegant solution, but I can't think of it.
369 cpb 2005-Apr-18 01:08 (#301) add a page for managing custom wiki markups.
368 cpb 2005-Apr-18 01:07 (#301) add a {quote: {markups}} to the end of FormattingWikiPages.
367 cpb 2005-Apr-18 01:06 (#301) implement custom markup rules. This involves the following: *: add a special {quote: {markups}} markup which outputs the descriptions for the available list of custom rules. This sort of thing is useful for FormattingWikiPages where we need to be able to list the server-specific rules. *: in order to do custom markups we need to do argument substitutions. markup_substitution is a function which takes a custom markup format, does the argument substitution, and feeds back the string for further processing. *: in the case of "internal" rules, that just means the substituted string is dumped into the output. This allows for simple markups like, say, {quote: {sqlitetkt 56}} which would be written as {quote: <a href="">#%k</a>}. *: in the case of "program" rules, we run an external script with the arguments on the command line. This is somewhat similar to the ticket notification and custom diff programs. *: finally, the append_formatting_hints() function gets some logic to list the custom rules.
366 cpb 2005-Apr-18 00:59 (#301) activate 1.7 schema change
365 cpb 2005-Apr-18 00:59 (#301) v1.7 schema change which adds a new table, markup. markup is used to define custom {quote: {markup: key args}} rules anywhere wiki editting is allowed.
364 cpb 2005-Apr-10 03:02 (#390) show the directory (with a browse like) for a milestone if it's available.
363 cpb 2005-Apr-10 03:01 (#390) when converting tags to milestones, track the directory too. =cvs rtag= is a directory-specific operator. This does introduce a problem... When we get a new tag, we want to delete any older versions of that tag. However, existing databases won't have the directory to search on so we end up deleting any global instances of the tag. This maintains the semantics of the older database, but it's a bit annoying. Newer milestones, of course, will only be deleted if the directory matches too.
362 cpb 2005-Apr-10 02:32 (#398) be pickier about when and where we look at RCS lines *: "revision" should be ignored when we've already got a valid revision. *: "date:" should be ignored when we've already got a time (you could also check zUser, among other things).
361 cpb 2005-Apr-10 01:43 (#380) schema change 1.6 adds a description field for attachments. This checkin adds a field for entering the description and displays the contents (wiki formatted) when viewing an attachment list.
360 cpb 2005-Apr-09 01:02 (#401) update the throttler/honeypot documentation. *: add notes about captcha *: the honeypot link isn't actually hidden
359 cpb 2005-Apr-08 02:24 (#401) added a needCaptcha flag to the throttle call which will push the client right to captcha even if they're below the throttle limit. This ensures that only humans are hitting certain pages like the wiki edit, ticket creation, etc.
358 cpb 2005-Apr-08 02:22 (#401) integrate a captcha page into the throttle logic *: when a client exceeds the throttle limit, they're punted to a captcha page. If they get punted to the page more than CAPTCHA_LOCKOUT times, the normal throttle blocking kicks in. *: a client can hit the /captcha page as many times as they want. This might be a problem, but we don't penalize human users who might generate a lot of hits. *: Once the user gets passed the captcha page, they get a cookie which disables the throttle behaviour. A logged-in user is also immune.
357 cpb 2005-Apr-08 02:18 (#401) database schema upgrade 1.6 *: add a captcha counter to the access_load table. This is necessary since we can't count on the client to keep state in a form or URL. *: (for #390) add a directory field to the chng table. This is necessary to differentiate between rtags in different modules *: (for #380) add a description field to the attachment table
356 cpb 2005-Apr-07 22:19 fix comment. the new schema version is 1.5.
355 cpb 2005-Apr-05 01:05 (#392) Mozilla and Firefox are quite sensitive to newlines in link titles. Make sure there aren't any. This basically just means we _must_ use =cgi_printf()= rather than =@= formatting.
354 cpb 2005-Apr-04 01:50 (#392) break ticket and checkin link titles into two separate options and add separate setup toggles for anonymous and logged in users. This is necessary because: *: link titles mean larger timeline HTML. On my test box, larger seems to range anywhere from 10% to 30%. *: link titles mean a db lookup for every generated link. Again, non-trivial numbers on an active timeline. *: check-in link titles are nowhere near as useful as ticket link titles since most places that show ticket links (timeline, tktview, tkthistory) also contain considerable check-in context. Specifically the same thing as in the link title. Wouldn't be a bad idea to add check-in summary info (i.e. some metric indicating the size or number of files). Of course, this would be less useful to anon users, so you'd probably only want to enable it for logged in users. Also, the setup_interface page looks much more useful with more options...
353 cpb 2005-Apr-03 02:59 (#395) create the [Up] link when the directory is non-empty since the toplevel directories don't have slash in them.
352 cpb 2005-Apr-03 02:25 (#241, #318) break the standard menu header into navigation and action sections. navigation is defined as links that take you to somewhere unrelated to the current page. Actions apply, somehow, to the current page. *: common_standard_menu is defined to be navigation items only since there's no "default" action. *: rename common_replace_menu_item to common_replace_nav_item. We don't need a corresponding call for actions since there's no defaults to replace. *: rename common_add_menu_item to common_add_nav_item. This call changes the azLink/nLink variables. *: create a new common_add_action_item which handles the azAction/nAction variables. *: modify common_vlink_header to create a separate row with BG4 background for the action items. *: change everywhere that calls any of the common_add/common_replace calls to either a navigation or action item. I _think_ I got them all correct. *: change the "Add a new inspection..." link to be an action item.
351 cpb 2005-Apr-03 01:43 (#377) implement =fixed font= markup. This is really just cut and pasted from how the italic stuff is done.
350 cpb 2005-Apr-03 00:56 (#375) call common_icon() rather than generating <img src= tags.
349 cpb 2005-Apr-03 00:55 (#375) add a common_icon() function. This version spits out HTML 4 character entities that are as similar as possible to the .gif icons already in use. There's nothing sacred about the particular set of entities chosen, they just happen to work on all the browsers I've tested with. And if the choices aren't entirely good, things only need to change in one place.
348 cpb 2005-Apr-02 23:13 (#374) actually, back out [347]. We have to assume that the caller is giving us a properly formatted url or there's a good chance that we'll end up trashing it.
347 cpb 2005-Apr-02 23:02 (#374) that should be %h, not %s.
346 cpb 2005-Apr-02 22:25 (#392) tighten up output_ticket and output_chng to *: get rid of static buffers *: use %h rather than %s where necessary
345 cpb 2005-Apr-02 22:12 (#378) move ticket history to a separate page *: remove the ticket_change_history() function *: in the /tktview page, add a History link to /tkthistory *: implement the /tkthistory page, a combined chronological view of all ticket changes, related checkins, attachments, inspections, derivations, and whatever else we can think of
344 cpb 2005-Apr-02 20:30 (#392) create a /setup_interface page to handle user interface items like the infolink stuff. Currently, only the infolink toggle is on the page.
343 cpb 2005-Apr-02 18:45 (#392) modify output_ticket and output_chng to check the g.okInfoLink flag. If it's off, we skip the database query. This means the overstrike behaviour from #52 is off and the link titles in #392 aren't written out. This reduces the number of database queries and the size of the output (link titles aren't always small).
342 cpb 2005-Apr-02 18:43 (#392) initialize the g.okInfoLink flag at the beginning of common_vlink_header (i.e. before any HTML formatting happens, right?). The rule is: *: logged in users always have g.okInfoLink=1. *: anon users get the config option infolink *: if the infolink flag isn't in the database, anon users have g.okInfoLink=0.
341 cpb 2005-Apr-02 18:40 (#392) add an okInfoLink flag to the Global structure. This controls the "extended" information that can go into a ticket or chng link (output_ticket and output_chng).
340 cpb 2005-Apr-02 17:09 directory .vimrc for getting the CVSTrac indentation right
339 drh 2005-Apr-02 12:53 Make sure search strings are quoted to avoid SQL injection.
338 cpb 2005-Apr-02 04:57 (#392) implement link titles for tickets and checkins *: create an output_ticket() function to handle ticket magic. Besides doing the link title, this does the overstrike logic from #52. *: create an output_chng() function to handle checkin/milestone titles. *: change formatting and browsing output to call these functions instead of rolling out a custom /tktview.
337 cpb 2005-Apr-02 04:04 (#374) wiki pages are formatted such that the page title is a link to a self search.
336 cpb 2005-Apr-02 04:03 (#374) common_header needs to be able to create page links *: create a common_vlink_header() function that takes the (optional) url, the title, and a va_list. *: change common_header to call this with a NULL url *: create a common_link_header function that adds a url
335 cpb 2005-Apr-02 03:09 (#52) write inactive tickets with <html><strike>overstrike</strike></html>. Currently, inactive means new or active. Maybe review should be counted too?
334 cpb 2005-Apr-02 03:07 (#384) a tab got past me...
333 cpb 2005-Apr-02 03:05 (#52) rather than doing a custom format referencing /tktview for a ticket number, format the ticket number as #<n> and call output_formatted().
332 cpb 2005-Apr-02 02:35 (#384) add a section to {link: /cvstrac/tktview?tn=384,0 /tktview} to display a list of derived tickets. Nothing is shown if there aren't any so this won't affect people who don't use them.
331 cpb 2005-Apr-02 02:17 (#372) make the Derived From value a link to a ticket. *: add a _numeric_ flag to the parameter attribute list *: flag _derivedfrom_ and _severity_ as numeric. _priority_ seems like it would be a good candidate, but the database schema labels it as "text". *: format and output _derivedfrom_ field as a ticket link. The _extract_integer()_ call may seem gratuitous, but when I first started looking at this I noticed that if you put "#<n>" into the Derived Ticket field, it actually got stored that way. So who knows what might be in people's databases.
330 cpb 2005-Apr-02 02:08 (#372) add extract_integer() function. This pulls an integral value from a string. Intended for derivedticket field where someone might enter either "1" or "#1" and expect either to Just Plain Work.
329 cpb 2005-Apr-02 01:45 put non-zero default options into hidden fields. Ticket #381.
328 cpb 2005-Apr-02 01:38 enable SO_REUSEADDR on the listen socket (Ticket #387).
327 cpb 2005-Apr-02 01:32 don't call sqlite_mprintf with an null/empty string. Ticket #388.
326 drh 2005-Mar-16 22:17 Changes so that it will compile on AIX. Ticket #383.
325 drh 2005-Feb-16 02:58 Add the ability to delete lots of wiki spam with a single delete operation.
324 drh 2004-Dec-19 12:56 Fix the script so that does not put every source file into the source archive twice. Ticket #362.
323 drh 2004-Dec-17 14:51 Update the script.
322 drh 2004-Dec-17 14:45 Version 1.1.5
321 drh 2004-Dec-17 14:43 Fix another potential XSS vulnerability. Bump the version number in preparation for a new release.
320 drh 2004-Dec-17 14:19 Fix for XSS vulnerability in CVSTrac.
319 drh 2004-Aug-18 00:11 Add additional checks of user-supplied parameters in order to help prevent future vulnerabilities similar to ticket #339.
318 drh 2004-Aug-06 16:25 Version 1.1.4
317 drh 2004-Aug-06 16:23 Update the version number
316 drh 2004-Aug-06 16:00 Fix for security vulnerability. Ticket #339.
315 drh 2004-Apr-19 17:51 Provide the ability to choose a default priority and severity for new tickets.
314 drh 2004-Apr-09 12:13 Make sure the sdate() function works with a NULL argument.
313 drh 2004-Mar-19 14:28 Comment change to view.c.
312 drh 2004-Mar-19 14:23 Rework the database field filter for reports to use the new authentication mechanism of SQLite.
311 drh 2004-Mar-13 14:17 Bump the version number to 1.1.3
310 drh 2004-Feb-17 15:41 Adjustments to the built-in sdate() function.
309 drh 2004-Feb-02 15:11 Enhancements to the throttle result viewing.
308 drh 2004-Feb-02 15:02 For string comparison purposes, CRNL and NL are considered the same.
307 drh 2004-Jan-28 16:27 Add the ability to append comments to the Remarks section of a ticket.
306 drh 2004-Jan-27 18:33 Add more throttling to the attachment pages.
305 drh 2004-Jan-11 00:31 Registered users can undo their own ticket changes within 24 hours. Administrators can undo anonymous ticket changes indefinitely.
304 drh 2003-Dec-10 14:02 Fix for ticket #259.
303 drh 2003-Dec-06 20:40 Improvements to the spider-capture honeypot.
302 drh 2003-Dec-06 14:35 Formatting changes on the access log report.
301 drh 2003-Dec-06 14:28 Create a honeypot for robots that disables service. Add a report on the throttling results accessible to the setup user.
300 drh 2003-Nov-28 13:35 Enhance the throttling mechanism to cover the wiki. Added in an attempt to stop spiders from vandalizing the wiki on the sqlite website.
299 drh 2003-Nov-28 13:34 Fix an off-by-1 error in the pathname lookup. Ticket #274.
298 drh 2003-Nov-17 01:44 Fix a sign error. User load for access control was increasing exponentially with time rather than decreasing exponentially.
297 drh 2003-Nov-13 22:34 Accept the <ul> markup within html.
296 drh 2003-Nov-10 21:57 Add the ability to tag check-ins with inspection reports.
295 drh 2003-Nov-10 20:04 Forgot to include a new source file in the previous check-in.
294 drh 2003-Nov-10 17:59 Implement bandwidth throttling. Up the database schema version to 1.5.
293 drh 2003-Nov-03 14:38 Bug fix in the wiki HTML formatting.
292 drh 2003-Nov-02 00:51 On wiki pages, text between {quote: <html>...</html>} is displayed as HTML. The set of allowed tags is restricted to prevent users from inserting forms, javascript, etc.
291 drh 2003-Oct-06 20:26 When making changes to the CVSROOT/passwd file, if the user ID cannot be found from /etc/passwd, use the user id in the CONFIG table where name='cvs_user_id'.
290 drh 2003-Sep-22 23:05 Rework the milestone display in the file browser so that it shows the date of the milestone and gives a hyperlink to the milestone description.
289 drh 2003-Sep-22 22:32 Identify branch check-ins in the file browser interface.
288 drh 2003-Sep-22 21:20 Add the ability to associate a milestone with a branch.
287 drh 2003-Sep-18 12:39 The getpwuid() function fails in a chroot jail on Debian Linux. So read the /etc/passwd file directly to get the information we need.
286 drh 2003-Sep-07 20:47 Add a "diff" option to wiki pages that shows the difference between the current version and the previous version of that page.
285 drh 2003-Sep-03 02:00 Fix an #endif in the wrong spot. Ticket #247.
284 drh 2003-Sep-03 01:56 Fix a typo in an SQL statement. Ticket #245.
283 drh 2003-Aug-29 20:23 Fix the timeline so that it shows blue date boxes only when they contain content. This was only a problem in various restricted display modes.
282 drh 2003-Aug-23 16:09 Bug fixes for the previous two check-ins.
281 drh 2003-Aug-23 15:37 The attach_get and fileget methods now include the name of the attachment or file as part of the pathname. This gives the browser a better default name for the SaveAs dialog saving the attachment to disk.
280 drh 2003-Aug-23 14:52 Report attachments in the timeline.
279 drh 2003-Aug-21 11:44 Add the "testcgi" command-line option for testing CGI installations.
278 drh 2003-Aug-05 16:10 When an unauthorized operation is attempted, redirect to the "login" screen. Pass in the "nxp" parameter to login so that after the login completes we redirect back to the original page.
277 drh 2003-Aug-05 14:25 Use the red X icon only for tickets of type "code". For other tickets, use the purple triangle.
276 drh 2003-Aug-05 14:13 Use the "mkimage_c.tcl" script to automatically generate the "image.c" source file. Add the GIF images to the source tree. Highlight check-ins that occur to a branch.
275 drh 2003-Jul-09 18:42 Add the parsedate() SQL function that converts text date strings into seconds since 1970. Useful in reports.
274 drh 2003-Jul-09 16:17 Add the ability to include the user-defined ticket fields on the new-ticket page.
273 rse 2003-Jul-06 06:55 Remove private declaration of sqlite_vmprintf to avoid a redeclaration, because SQLite 2.8.4 and higher now have this function in the <sqlite.h> API definition (see for details). Unfortunately SQLite still does not have a numerical (non-string) API version definition in <sqlite.h>, so we cannot make this declaration conditional (in order to still support older SQLite versions, too). Hence, completely remove it or CVSTrac will not build correctly with SQLite 2.8.4 and higher.
272 drh 2003-May-19 23:46 Fix some minor problems reported by Tiago Nuno Geralda Dionisio.
271 drh 2003-May-13 01:13 Fix the twos-complement negation bug.
270 drh 2003-Apr-05 16:04 Fix date interpretation on history file scans. Dates were off due to a botched leapyear compuation. Ticket #203.
269 drh 2003-Mar-30 21:04 Fix an SQL error that occurs under certain combinations of options in the timeline. Also, give better error messages in the event of future SQL errors. Ticket #201.
268 drh 2003-Mar-19 03:35 Remove backslashes from ticket titles in addition to single-quotes, to prevent a malicious user from subverting the notify procedure using a strange title. Ticket #198.
267 drh 2003-Feb-09 16:59 Explicitly set the charset to ISO-8859-1 if the we are not using internationalization. Ticket #177.
266 rse 2003-Feb-09 08:33 - GPL stands for "General Public License" and not "GNU Public License" - Use a year range to also cover 2003 as its the usual convention (although according to copyright law should not really be required).
265 drh 2003-Feb-07 17:58 Do not send "Pragma: no-cache" in the header of attachments. This is needed to work around a bug in Internet Explorer. Ticket #176.
264 drh 2003-Feb-05 02:44 At the ability for the setup user to set a maximum attachment size. The default maximum attachment size is still 100. Setting the max size to 0 disables the ability to add attachments.
263 drh 2003-Feb-04 11:15 Always treat the version number of a file as TEXT not NUMERIC so that "1.1" will not compare equal to "1.10".
262 drh 2003-Jan-31 14:31 Provide a page under the setup menu to backup and restore the database.
261 drh 2003-Jan-31 13:36 The "Rescan" option for the CVSROOT/history file now does a better job of fixing errors such as introduced by the bug of ticket #172.
260 drh 2003-Jan-31 01:16 When adding new check-ins to the database, take care not to add duplicates. Ticket #172.
259 drh 2003-Jan-26 21:51 Give the Setup user the ability to configure the default type for new tickets. Ticket #168.
258 drh 2003-Jan-26 00:50 Fix a typo on the Tagging and Branching Hints page. Ticket #167.
257 drh 2003-Jan-25 00:24 Fix a typo on the user configuration page. Ticket #165.
256 drh 2003-Jan-25 00:21 Fix a typo in the description of wiki markup.
255 drh 2003-Jan-25 00:18 Fix a bug in the cookie-setting code. Ticket #166.
254 drh 2003-Jan-24 15:47 Prevent wrapping of the menu lines in the upper-right hand corner of the screen.
253 drh 2003-Jan-24 13:30 Provide the ability to show milestones on the check-in history of a file.
252 drh 2003-Jan-23 20:27 Add a new permission bit that enables or disables a users ability to change their password. Ticket #165.
251 drh 2003-Jan-18 16:04 Added the RSS generator from Rui Carmo.
250 drh 2003-Jan-18 00:22 Allow a greater time slew between the timestamps in the CVSROOT/history file and in the output of the rlog command. Sometimes if a big file is being checked in, the timestamps can differ by several seconds.
249 rse 2003-Jan-06 09:22 fix cast to reflect declaration of azAttach variable
248 drh 2003-Jan-01 01:34 Rework the menus that appear in the upper right-hand corner of the each screen so that they are more complete and consistent.
247 rse 2002-Dec-18 09:44 fix GCC warning: assignment from incompatible pointer type
246 drh 2002-Dec-17 15:51 Version 1.1.2
245 drh 2002-Dec-17 15:46 Preparing for the version 1.1.2 release.
244 drh 2002-Dec-16 16:37 On the timeline, do not repeat a date tag after a milestone tag.
243 drh 2002-Dec-16 16:20 Require the wiki page named "{quote: HomePage}" to be locked in order to be substituted for the main index page.
242 drh 2002-Dec-16 15:59 Add text to the Configure Source Code Diff Program page to explain the intended use of the single-file listing command. Ticket #154.
241 drh 2002-Dec-16 14:29 If the URL in "{quote: {image: URL}}" markup is the filename of an attachment, then automatically convert the URL into an actual URL for the attachment.
240 rse 2002-Dec-13 12:04 Shut off GCC 3.2.1 warnings: `xxxx' might be used uninitialized in this function
239 drh 2002-Dec-09 15:20 Do not trust atof() to decode numbers with a "." character as the radix point. With some locales, a "," is used instead. Ticket #152.
238 drh 2002-Dec-07 22:08 In the wiki formatter, a horizontal line now acts as a paragraph separator. Ticket #153.
237 drh 2002-Dec-04 16:43 Detect when files are deleted from the repository and add those events to the timeline. Ticket #150.
236 drh 2002-Dec-02 12:31 Fix a typo. Ticket #149.
235 drh 2002-Nov-30 20:51 Correctly determine the tail of attachment files even if the microsoft "\" file separator is used. Also: fix a bug in the wiki formatter.
234 drh 2002-Nov-30 20:04 Add the ability to sort the wikitoc page by creation date and modification time of the wiki page.
233 drh 2002-Nov-30 19:57 Fix a bug in parameter parser that can cause the CGI processor to go into an infinite loop if given an ill-formed URL.
232 drh 2002-Nov-30 16:49 Fix a bug in "chroot" mode that was introduced by checkin [211].
231 drh 2002-Nov-30 16:18 Fix some compiler warnings.
230 drh 2002-Nov-30 16:10 Small changes to text and formatting.
229 drh 2002-Nov-30 03:51 Add the ability to specify external programs that compute file diffs. Ticket #132. Also includes some bug fixes and documentation updates.
228 drh 2002-Nov-29 16:10 Bug fix in the history file scanner. Also added the capability to reread the history file while preserving prior check-in numbers.
227 drh 2002-Nov-29 15:14 Add the ability to put attachments on wiki pages. And add {image} markup that allows an attachment (or any URL) that is an image to be displayed in the middle of a Wiki page.
225 drh 2002-Nov-29 06:52 If a Wiki page named "HomePage" exists and is not empty, then that page is used for the main screen instead of the build-in menu. The built-in menu is still accessible from the /mainmenu URL. Ticket #126.
224 drh 2002-Nov-29 06:15 Add multi-level bullet and enumeration lists. Tickets #125 and #129.
223 drh 2002-Nov-29 04:17 Use two or three asterisks in a row to turn a bold font into a bold font with a larger point size. Useful for headings and titles in Wiki.
222 drh 2002-Nov-29 00:04 Markup added to the wiki formatter for handling linebreaks, hyperlinks with arbitrary text labels, and escaping characters with special meaning to the formatter. This is related to tickets #137, #129, and #122.
221 drh 2002-Nov-28 06:33 Provide the ability for the administrator to create up to 5 extra fields on tickets.
220 drh 2002-Nov-28 02:18 Replace the frequent queries to the CONFIG table with a new subroutine that does the query and caches the results.
219 drh 2002-Nov-28 00:52 Update the database schema by adding better indices, inserting the new ENUMS table and adding extra columsn to the TICKET table. Allow the administrator to change the set of ticket types and ticket status.
218 drh 2002-Nov-27 20:34 Break the "setup" page into several smaller pages. Add the ability to turn off writing to CVSROOT/passwd. (ticket #34). Add the ability to use only a subset of the CVS repository. (tickets #38 and #112). This check-in is not fully stable - do not use in a production environment without further testing.
217 rse 2002-Nov-27 13:27 include <sys/time.h> for struct timeval definition
216 drh 2002-Nov-27 01:38 When browsing, files in the attic (in other words, files that have been deleted) have a big red "X" over their icons. Tickets #147, #134, #91.
215 drh 2002-Nov-27 01:02 Fix a bug in the CVSROOT/history file parser that was causing branch check-ins to appear partually on the main trunk. Ticket #145.
214 drh 2002-Nov-24 17:19 Do not attempt to "diff" files which have "-kb" in CVS. Ticket #133.
213 drh 2002-Nov-24 16:45 Add missing space in the timeline output. Ticket #143.
212 drh 2002-Nov-24 16:39 Fix for ticket #135.
211 drh 2002-Oct-29 23:08 Add the ability for CVSTrac to be a stand-alone webserver in addition to a CGI program or a server that is run from INETD.
210 drh 2002-Sep-27 14:49 Hyperlinks to images are shown inline. Tickets #93 and #123.
209 drh 2002-Sep-27 14:33 Enhance the iconography on the timeline by adding some new icons and changing the use of existing icons to closer match what users expect. Ticket #121.
208 drh 2002-Sep-27 13:18 Fix for ticket #124: fix the redirect to the login screen that occurs when a user tries to create a new ticket but does not have the right permissions. Also added a report of the total execution time to the logfile output and fixed a commenting error.
207 drh 2002-Sep-05 22:07 Fix for ticket #85: Add the ability to link attachments to tickets.
206 drh 2002-Sep-05 15:49 Enhance the CGI module so that it is able to interpret multipart/form-data content in the HTTP request. This is the first step towards implementing attachments per ticket #85.
205 drh 2002-Sep-05 11:54 Version 1.1.1
204 drh 2002-Sep-05 11:53 Documentation changes prior to release of 1.1.1
203 drh 2002-Sep-04 02:38 Improvements to documentation. Still lots of work to do though.
202 drh 2002-Sep-04 00:08 Additional commentary and commented-out code for implementing absolute pathnames on redirects.
201 drh 2002-Aug-30 14:13 Back out the changes for ticket #109: they prevent CVSTrac from working with stunnel.
200 drh 2002-Aug-30 13:25 Fix a typo.
199 drh 2002-Aug-30 13:04 Add additional text to the security note on the setup page and change its background color to be less saturated.
198 drh 2002-Aug-30 12:51 Fix for ticket #118, and an important security hole patched. See the remarks on ticket #118 for details.
197 drh 2002-Aug-30 02:09 Allow wiki access to be turned off to everybody, including Setup and Admin users. That way, if an installation does not want to use wiki at all, it never shows up in any of the menus.
196 drh 2002-Aug-30 01:56 Create a new read-wiki permission. Do not show Wiki menu options if it is turned off. Jump directly to the login page if anonymous has no access permissions. Give all users the permissions of anonymous at a minimum.
195 drh 2002-Aug-28 16:48 Fix for ticket #101: Fix a bug in the handling of I18N month names.
194 drh 2002-Aug-28 16:46 Fix for ticket #117: Play nicely with TortoiseCVS.
193 drh 2002-Aug-28 16:43 Fix for ticket #116: Check the return value of getenv() and substitute a reasonable default if it is NULL. Fix the tktedit page so that it does not segfault if given an invalid ticket number.
192 drh 2002-Aug-27 18:45 More ticket #107 changes: If a check-in comment begins with a bullet or enumeration, disable that markup by changing the ":" into a ".".
191 drh 2002-Aug-27 18:34 More fixes for ticket #107: Only truncate at a paragraph break if the total size of the message will exceed MX_CKIN_MSG characters. Fix some memory allocation errors introduced by checkin [190].
190 drh 2002-Aug-27 18:11 More changes for ticket #107: Disable paragraph markup in check-in comments on a timeline, and truncate at a word or paragraph boundry if possible. Moved the message truncator subroutine from common.c over to format.c.
189 drh 2002-Aug-27 15:38 Make the maximum number of check-in message characters to display on the timeline a #define and set that #define to 300.
188 drh 2002-Aug-27 15:33 On the timeline report when viewing all changes to tickets, show only a single "Changes to ticket" line when two or more changes are made all at once.
187 drh 2002-Aug-27 15:02 Fix for ticket #109: Put the absolute URL in the Location: line of the header on a redirect.
186 drh 2002-Aug-27 12:29 Fix for ticket #111: Chdir() before chroot().
185 rse 2002-Aug-24 08:21 cleanup main index description texts to make them more consistent and a little bit less confusing for the newbie
184 rse 2002-Aug-23 20:17 add an explicit paragraph for better readability, especially in textual browsers
183 rse 2002-Aug-23 20:13 Add support for trimmed down log messages in "timeline" and "tktview" pages. This makes sure that the pages are kept compact even if the log messages are long and span over multiple paragraphs. This solves ticket #107.
182 rse 2002-Aug-23 15:35 add a comma to make this timeline message more clear
181 rse 2002-Aug-23 14:47 Finally switch also the 'about' page to and add word 'Copyright' because not all browsers correctly display the '©' entity.
180 rse 2002-Aug-23 14:05 Adjust ok, X, diamond, and dot GIF images to be fully transparent ones and without containing any aliased image borders. This allows usage of non-white backgrounds for CVSTrac pages.
179 rse 2002-Aug-23 13:54 - use instead of - use the logical (mapped) CVS path /cvstrac instead of the physical one /e/drh/cvs/cvstrac/ - add a table to the top of the webpage which summarizes all locations to make sure people find them - use the FTP service for the distribution tarballs
178 rse 2002-Aug-23 13:16 Fix the "%x" substitution for header and footer pages. It incorrectly handled unknown (not %[TNV]) constructs and especially was not able (as documented and intended) to produce a "%" with the "%%" construct. Previously the broken behaviour for unknown and %% constructs was: "%X" -> "X", "%%" -> "" To fix this, two possibilities exists: 1. "%X" -> "", "%%" -> "%" 2. "%X" -> "%X", "%%" -> "%" I now decided to implement (2) because it allows people to avoid escaping really every percent sign (think about CSS with lots of "font-size: 90%;" things) and still use an escaped percent in case they need verbatim "%N", "%T", "%V". If you like (1) more feel free to adjust it. My main point here is just that the "%%" construct works as intended. I've no strong opinion on the unknown "%X" constructs.
177 drh 2002-Aug-17 23:31 Changes to the webpage and script to accommodate the move to the new domain.
176 drh 2002-Aug-17 22:59 Version 1.1.0
175 rse 2002-Aug-06 19:20 Get rid of the following compiler warning: ticket_.c:97: warning: initialization discards qualifiers from pointer target type
174 rse 2002-Aug-06 17:10 Cleanup and slightly enhances the /dir output by adding a non-breaking space between the icon and the text to make it optically more pleasant to read. Additionally it makes the icon hyperlink on files point to the /getfile for quicker retrival of the latest version. This closes tickets #81 and #97.
173 drh 2002-Aug-05 01:56 *Incompatible Change:* The wiki formatter is changed as follows: Text between asterisks is shown in bold and text between underscores is shown in italic. This change was made to make CVSTrac compatible with other wiki engines. Because older wiki will no longer display correctly (though the difference its not too bad) the version number is increased to 1.1.0.
172 drh 2002-Aug-04 17:29 Fix for ticket #95: Clean up some compiler warnings.
171 drh 2002-Aug-04 17:22 Add the new "notify" setup parameter which specifies a shell command to invoke whenever a ticket is created or modified. Ticket #7 and #66.
170 drh 2002-Aug-04 01:56 Fix for ticket #94: Show the text of new files as part of the diff when displaying a check-in.
169 drh 2002-Aug-04 00:35 If a CamelCase word is followed by a single underscore, do not make that word into a hyperlink. Also, updates to the default wiki.
168 drh 2002-Aug-03 22:36 Add default wiki pages that contain (some) documentation on CVSTrac. Also add a mechanism for making it easy to generate additional documentation.
167 drh 2002-Aug-03 17:14 The wiki page editor was truncating text of pages that began with blank lines. This is now fixed.
166 drh 2002-Aug-03 14:02 Another minor text changes to the webpage.
165 drh 2002-Aug-03 13:57 Update the webpage and the publishing script.
164 drh 2002-Aug-03 13:46 Version 1.0.9
163 drh 2002-Aug-03 13:41 Another formatter fix. Ticket #92.
162 drh 2002-Aug-03 12:36 Another bug fix in the text formattter. Ticket #92.
161 drh 2002-Aug-03 12:29 Rework the wiki text formatter, fixing several bugs in the process. Ticket #92.
160 drh 2002-Jul-31 20:38 Turn off internationalization if the CODESET preprocessor macro is not defined in /usr/include/langinfo.h.
159 drh 2002-Jul-31 15:44 Allow all users to see the SQL for a timeline.
158 drh 2002-Jul-31 15:40 Fix for ticket #87: All check-ins shown on a timeline to be restricted by filename prefix.
157 drh 2002-Jul-31 12:31 Text formatter enhancements: Allow tabs to take the place of two or more spaces. All multiple digits at the beginning of an enumeration item. Four or more "-" characters alone on a line create a horizontal rule.
156 drh 2002-Jul-31 01:03 Fix for ticket #84: Allow header and footer text to be read from a file.
155 drh 2002-Jul-30 16:06 Fix for ticket #89: Remove some additional files with "make clean".
154 drh 2002-Jul-29 11:42 Fix for ticket #86: Correctly handle '%' characters in the SQL of a report.
153 drh 2002-Jul-27 19:17 More internationalization changes.
152 drh 2002-Jul-27 19:15 Arrange so that the -DCVSTRAC_I18N=0 argument on the command-line can disable the internationalizatino code, since doing so is necessary to compile under RedHat 5.1.
151 drh 2002-Jul-27 19:10 Fix for ticket #82: More descriptive titles on all pages.
150 drh 2002-Jul-27 18:25 Add <p>..</p> around <pre>..</pre> to work around bugs in the rendering engine of Konqueror.
149 drh 2002-Jul-27 18:18 Fix for ticket #83: The "U" and "P" query parameters can be used to specify a user and password. This will override the login cookie (if any). If the user does not exist or the password is incorrect, then execution proceeds as if logged in as user "anonymous".
148 drh 2002-Jul-27 18:04 Fix for tickets #49, #71, #72, and #74: Added internationalization support.
147 drh 2002-Jul-27 00:27 Add ALT attributes to all images. Ticket #76.
146 drh 2002-Jul-26 16:40 fix for ticket #70: Add support for mailto: hyperlinks.
145 drh 2002-Jul-25 20:55 Fix for ticket #77: HTML coding errors on the Wiki History.
144 drh 2002-Jul-25 20:50 Fix for ticket #75: The '&' in the [Search] hyperlink on the timeline page was being HTML encoded twice.
143 drh 2002-Jul-22 20:39 The text formatter now understands FTP URLs. Ticket #70.
142 drh 2002-Jul-22 14:05 Fix for ticket #69: Use dots instead of underscores in filenames in the distribution.
141 drh 2002-Jul-21 22:49 Version 1.0.8 release 2
140 drh 2002-Jul-21 22:49 Correctly initialize the password of the "setup" account when creating a new database. This fixes a critical bug that would prevent new users from initializing a new project.
139 drh 2002-Jul-21 22:38 Divide up the hyperlinks at the top-right more evenly.
138 drh 2002-Jul-21 19:46 Version 1.0.8
137 drh 2002-Jul-21 19:28 Do not allow users to log in as anonymous.
136 drh 2002-Jul-21 19:26 Do not delete entries from CVSROOT/passwd when rewriting that file. Instead, merge in entries so as not to overwrite the existing entries. Provide the ability to import CVS users into CVSTrac. Give users the ability to change their own password.
135 drh 2002-Jul-21 16:12 Fix for ticket #62: Add all query parameters to the hyperlink that leads to the "raw data" output of a report.
134 drh 2002-Jul-21 11:41 Show wiki changes on the timeline.
133 drh 2002-Jul-20 19:50 Allow "https:" to introduce an external link, in addition to "http:".
132 drh 2002-Jul-20 19:08 Fix the typo again.
131 drh 2002-Jul-20 19:07 Fix a typo on the "About" screen.
130 drh 2002-Jul-20 19:04 Fix a null pointer reference in db_short_query().
129 drh 2002-Jul-20 18:15 Add the ability to change the default header and footer for each page of HTML generated. Add a few "class=" attributes on the generated HTML to allow the colors to be changed using a style sheet. Tickets #44 and #65.
128 drh 2002-Jul-20 16:10 Deny anonynous users access to the userlist page.
127 drh 2002-Jul-20 16:07 Combine the markup generators for Wiki and tickets/check-ins into a single subroutine (ticket #64). Add better wiki editing support and give the administrator the ability to delete wiki pages.
126 drh 2002-Jul-19 18:58 Omit the "Milestones" link from the main menu if the user lacks checkin permission.
125 drh 2002-Jul-19 13:06 Added the ability for the administrator or setup user to delete Wiki pages and to truncate the history of a Wiki page.
124 drh 2002-Jul-19 01:59 Allow browsing the edit history of a Wiki page.
123 drh 2002-Jul-18 23:44 External hyperlinks are honored on Wiki pages. Ticket #64. Also contains a fix for ticket #68.
122 drh 2002-Jul-18 14:28 Require checkin permission to create new milestones.
121 drh 2002-Jul-18 14:05 Must have check-in permission in order to edit milestones.
120 drh 2002-Jul-18 14:02 Fix an uninitialized variable in user.c.
119 drh 2002-Jul-18 13:37 Increase the version number by one notch.
226 drh 2002-Jul-18 13:12 Fix the parameter parsing for chroot.
118 drh 2002-Jul-18 11:37 Fix for ticket #41: Do not remove "config.h" with "make clean".
117 drh 2002-Jul-17 16:20 Fix for ticket #63: Make sure anonymous users cannot see contact information even if they have write permission on tickets.
116 drh 2002-Jul-17 14:02 Allow up to 5 user-defined parameters in report formats. Need to document how this works.
115 drh 2002-Jul-17 12:27 Preserve blank lines in the database initialization script. This is needed so that the paragraph breaks on built-in Wiki pages are not deleted.
114 drh 2002-Jul-17 12:06 Fix a bug in the [Search] hyperlink on report pages.
113 drh 2002-Jul-17 12:02 Search is now working.
112 drh 2002-Jul-17 02:26 Add the beginnings of search capability. Still has problems and not linked into the main menu. This is an incremental update.
111 drh 2002-Jul-15 00:06 Begin implementing Wiki pages. The basics are in and seem to work, but more features and more testing are needed before the next release.
110 drh 2002-Jul-14 00:21 Ticket #28: Do not store cleartext passwords in the database.
109 drh 2002-Jul-10 22:15 fix for ticket #60: Missing '#' before the RGB color spec for deferred.
108 drh 2002-Jul-10 11:19 Version 1.0.7
107 drh 2002-Jul-10 11:19 Fix for ticket #59. Patch up some HTML errors.
106 drh 2002-Jul-09 14:21 Prepare for release 1.0.7
105 drh 2002-Jul-09 14:07 Enhanced text formatting: *: Bullet lists and enumeration lists are now possible. *: Hyperlinks appear in descriptions and remarks. *: Better explanation of formatting conventions on the New Ticket page.
104 drh 2002-Jun-28 13:43 Modify the "getfile" method so that it is able to handle binary files and so that it sets the MIME type of the reply based on the file suffix.
103 drh 2002-Jun-26 12:05 Make sure the first ticket has a number of 1, not 0. Fix for tickets #37 and #48.
102 drh 2002-Jun-25 16:14 Put the entire timeline in a single big table instead of breaking the table at each division. This makes the columns line up better.
101 drh 2002-Jun-25 16:03 Print the full date on the line following a milestone on the timeline.
100 drh 2002-Jun-07 01:31 Add timeline shortcut hyperlinks to the ticket viewing and editing pages.
99 drh 2002-Jun-07 00:55 Give the "setup" user the ability to delete tickets outright.
97 drh 2002-Jun-06 23:56 Version 1.0.6
98 drh 2002-Jun-06 23:55 Change the version number to 1.0.6
96 drh 2002-May-16 13:19 When adding new check-ins to the database, scan them for ticket numbers and add appropriate cross-references. This is more of the implementation of enchancement #27.
95 drh 2002-May-16 12:58 Handle the case where the "schema" entry is missing from the CONFIG table.
94 drh 2002-May-16 12:53 Implement enhancement #27: Cross-reference tickets to check-ins.
93 drh 2002-May-14 21:07 Added the "Ticket counts" report as one of the default reports created when a new database is initialized.
92 drh 2002-May-14 20:59 Fixes from a security audit.
91 drh 2002-May-09 14:06 Minor formatting changes to the "tagging and branching hints" hyperlink on the chngview page.
89 drh 2002-May-09 00:37 Version 1.0.5
90 drh 2002-May-09 00:37 Update the webpage and the version number in preparation for version 1.0.5.
88 drh 2002-May-08 15:52 Add the ability to put a color key on a report.
87 drh 2002-May-08 14:49 Bug fix: get the colspan= parameter right for description and remarks rows in a ticket listing.
86 drh 2002-May-08 13:59 Bug fix: preserve the setting of Subsystem when flipping back and forth between editing and previewing the description while entering a new ticket.
85 drh 2002-May-08 00:52 Fix a bug in the editing of dates of milestones: always initialize the tm_isdst field to -1 before invoking mktime().
84 drh 2002-May-08 00:45 Show milestones as a bullet in the timeline even if they are used as a divider.
83 drh 2002-May-08 00:31 Avoid repeating the date tag after a release tag when both are shown in the timeline.
82 drh 2002-May-06 13:02 Fix the branching hints in the previous checkin. Also fix a bug in the way the history file is parsed for files that contain multiple branches.
81 drh 2002-May-06 12:38 Add tagging and branching hints
80 drh 2002-May-02 18:28 Allow timelines to be divided by time or by milestone or neither or both. Remove the "(optional)" on the header of Description and Remarks fields of a ticket list.
79 drh 2002-May-02 16:38 On the timeline report, merge assignment changes and status changes into a single line if possible. Reformat status and assignment changes to be more readable.
78 drh 2002-Apr-30 12:31 Version 1.0.4
77 drh 2002-Apr-30 12:29 Missed a possible precision overflow in the previous commit.
76 drh 2002-Apr-30 12:27 Bug fix in mprintf(): Do not limit the precision of string substitutions. Doing so was causing strings to be truncated for code such as this: mprintf("%.*s",n,z). The problem was causing longer descriptions to get cut short.
75 drh 2002-Apr-24 16:20 Bug fix: newlines were being removed from the description and remarks of a ticket, causing the word at the end of the line to merge with the first word of the following line under some circumstances.
74 drh 2002-Apr-22 12:20 Version 1.0.3
73 drh 2002-Apr-22 12:16 Update the webpage and the script to include a copy of the source code as a tarball. Add the version number to the name of all downloads.
72 drh 2002-Apr-22 02:06 Enable the [sql] link for people with only read permission.
71 drh 2002-Apr-21 18:41 Make the default color scheme on reports more pastel so that it is not so harsh on the eyes.
70 drh 2002-Apr-21 17:51 Add the [copy] link on the list of reports page. Also added the [sql] link on the list of reports such that all users can see it.
69 drh 2002-Apr-21 17:25 Bug fix: Preserve the editted value of the Title when pressing the "Preview Description And Remarks" button on the new ticket screen.
68 drh 2002-Apr-21 16:42 Added support for report formats that show the TICKET.DESCRIPTION and TICKET.REMARKS on separate lines of the HTML table. Also added better documentation of how to do colors and put examples at the bottom of the report editor page. Added the "View SQL" buttons on the report list page.
67 drh 2002-Apr-20 22:02 If trouble is encountered while reading CVSROOT/history, do an explicit check for the existance of the "rlog" program and issue an error message if it is not found.
66 drh 2002-Apr-20 13:38 Show an error message screen if anything goes wrong while reading the CVSROOT/history file.
65 drh 2002-Apr-19 18:41 When scanning the CVSROOT/history file, record tags as "Event" milestones. And only record the last occurance of each tag. If a tag is deleted, delete the corresponding event milestone.
64 drh 2002-Apr-19 17:36 Do not allow line-breaks in the quick links that appear on the right of the top menu bar.
63 drh 2002-Apr-19 17:00 Version 1.0.2
62 drh 2002-Apr-19 16:59 More robust handling of ill-formed URIs. Update the documentation to better explain what URI to use.
61 drh 2002-Apr-19 02:25 When reading the history file, use the new mkgmtime() function to convert broken out times in UTC into seconds since 1970. We were attempting to change timezones by setting the TZ environment variable then calling the library mktime() function. But that was causing problems on Solaris.
60 drh 2002-Apr-18 20:18 Return an error a 404 error if the database does not exist.
59 drh 2002-Apr-18 17:08 Only show the owner of reports if the user has write permission.
58 drh 2002-Apr-18 17:04 Add the option to obtain report data as tab-separated lines. Also, identify the owner of each report and give the administrator the option to change the owner.
57 drh 2002-Apr-17 13:44 Allow users with 'w' permission to create new report formats. The creator of a new report format is the owner of that format and only the owner or a user with 'a' rights can change the format.
56 drh 2002-Apr-16 12:38 When scanning the history file, do not ignore files in the Attic.
55 drh 2002-Apr-16 12:22 Increase the version number to 1.0.2
54 drh 2002-Apr-16 12:20 Fix an uninitialized variable on the /useredit page that was causing a core under FreeBSD.
53 drh 2002-Apr-16 01:17 Version 1.0.1
52 drh 2002-Apr-15 21:48 Make sure the request URI always ends with a "/" followed by the method name. If not, then append "/index" and redirect.
51 drh 2002-Apr-14 19:39 Various small changes: Allow a null option for the default assigned-to person. Initialize the "initial_state" config parameter in new databases. Determine the user for the "about" screen. Print a diagnostic message if a ticket report matches no records.
50 drh 2002-Apr-14 16:41 Allow SUBSYSTEM and USER fields to contain an empty string. Make the empty string an option when editing these fields.
49 drh 2002-Apr-14 16:28 Fix for ticket #23: When initializing a new database, add several example report formats to serve as a guide to new users.
48 drh 2002-Apr-14 15:41 Fix for bug #21: Make the "ticket type" entry in the new ticket page persistent.
47 drh 2002-Apr-13 19:45 Properly terminate the ordered list ("<ol>") when generating HTML that descripts the change history of a ticket.
46 drh 2002-Apr-13 16:57 Increase the version number to 1.0.1
45 drh 2002-Apr-13 16:57 Add the now() and user() SQL functions.
44 drh 2002-Apr-13 15:37 Fix for ticket #19: Find top-level files of the CVS repository even if they are in the "Attic".
43 drh 2002-Apr-13 13:51 Version 1.0.0
42 drh 2002-Apr-13 13:51 Strip the precompiled binary before sending it to the webpage for download.
41 drh 2002-Apr-13 13:48 Fix for ticket #3: Prepare the system for public release.
40 drh 2002-Apr-12 23:38 Fix for bug #4: Remember the ticket report number and return to that report after editing a ticket.
39 drh 2002-Apr-12 22:49 Add the ability to change the background color of lines in a ticket report.
38 drh 2002-Apr-12 13:17 Register CVSTrac-specific SQL functions prior to verifying the SQL for a new report.
37 drh 2002-Apr-12 11:43 Use a check-mark icon when a ticket goes from active or new to closed.
36 drh 2002-Apr-08 00:13 Correctly parse the dates of rtags in the history file. Also be careful not to duplicate rtags when rescanning the history file.
35 drh 2002-Apr-07 22:43 Require Check-out, not check-in, permissions to browse a source file.
34 drh 2002-Apr-07 22:36 Bug fix on the timeline page.
33 drh 2002-Apr-07 22:32 Fix an uninitialized variable in the user editing page.
32 drh 2002-Apr-07 22:10 Clear the FILE table when changing repositories and call history_update() before accessing the FILE table in case new files have been added.
31 drh 2002-Apr-07 17:53 Fix for bug #5: Added repository browsing capabilities.
30 drh 2002-Apr-07 02:52 Carefully examine the SQL statement in reports to make sure they do not do things other than query and do not access the USER.PASSWD column.
29 drh 2002-Apr-07 00:28 Use the g.isAnon global variable instead of doing a string comparison of the user name against "anonymous".
28 drh 2002-Apr-06 22:51 Implement a richer permissions system that allows check-in/check-out access to be specified independently, and which makes the distinction between Setup and Admin. There is a slight incompatibility in the database which must be addressed before upgrading.
27 drh 2002-Apr-06 00:31 Change the browser mechanism into a simple file-diff feature. We can go back and add repository browsing later.
26 drh 2002-Apr-05 21:52 Add the beginnings of the "browse" page and link it into the change viewer.
25 drh 2002-Apr-02 04:14 Add description and remarks preview feature to the ticket editor.
24 drh 2002-Apr-02 04:02 Format the description and remarks columns by inserting <P> in place of blank lines and surrounding indented paragraphs with <PRE>...</PRE>. Give the user a change to preview the description before submitting a new bug report.
23 drh 2002-Apr-02 01:19 Hyperlink added to contact information field when the information looks like an e-mail address. Formatting change on the user list page.
22 drh 2002-Apr-02 01:14 Centralize the routine used to locate RCS files. Trim white space from the description when creating a new ticket.
21 drh 2002-Mar-31 00:38 If a file is not found in its usual place in the repository, check also in the Attic.
20 drh 2002-Mar-30 19:37 Add a comment to the "userlist" page that explains the need for using version 1.11 or later of CVS.
19 drh 2002-Mar-30 19:33 Provide setup options for the default initial state of new tickets and the person to assign new tickets to by default.
18 drh 2002-Mar-30 18:21 Better handling of default values on the New Ticket page.
17 drh 2002-Mar-30 18:05 Use %h instead of %s in the option menu code to pretect against HTML markup in the database.
16 drh 2002-Mar-30 18:03 For optionmenus, if the default value is not among the choices, add a new choice that contains the default value.
15 drh 2002-Mar-30 17:38 On the timeline when selection only "new" or "active" status changes, do not show the change if the change is from new to active or from active to new. Only show the report if the change is from new or active to some other status or from another status to new or active.
14 drh 2002-Mar-29 14:18 Preserve milestones when deleting changes after a cvs repository change on the setup screen. Also warn the user that changing the repository will erase any checkin comment changes.
13 drh 2002-Mar-29 14:09 Fix an off-by-one error in the history file reader.
12 drh 2002-Mar-28 14:06 Fix for bug #14: HTTP logging capability added.
11 drh 2002-Mar-28 12:50 Fix for bug #15: Allow two types of milestones, "Release" and "Event". Only "Release" appears as a separator on the timelines.
10 drh 2002-Mar-27 15:46 Add some explanatory text to some of the setup pages.
9 drh 2002-Mar-27 13:45 Fix for bug #13: Allow anonymous access without logging in if an user named "anonymous" exists in the database. Remove the login cookie timeout.
8 drh 2002-Mar-27 12:41 Added a response to "robots.txt" to keep robots out of the system.
7 drh 2002-Mar-27 04:01 General source code cleanup.
6 drh 2002-Mar-27 03:21 Fix for bug #1: Add a "Contact:" field to the new ticket screen when the user creating the ticket is "anonymous". This field is only visible to users with write permission on the CVS repository.
5 drh 2002-Mar-27 02:57 Extra speed buttons on /view. Do not ask for Subsystem in /tktnew if there are fewer than 2 subsystems available.
4 drh 2002-Mar-27 01:49 Fix for bug #11: Do no put "PRAGMA no-cache" in the header of images.
3 drh 2002-Mar-27 01:42 Fix for bug #12: Add a milestone oriented timeline capability and the ability set change the default timeline configuration.
2 drh 2002-Mar-27 00:14 Fix for bug #8: get the "chngedit" page working again. Also updated the makefile.
1 drh 2002-Mar-26 03:34 Initial code checkin.
Rows: 1045