# ticket

tkt_uuid: 700d423d2a44853adf85303ecb8ca487b317c0ac
type: Feature_Request
status: Open
severity: Cosmetic
foundin: 0870a8e69b55cbbc4fe8fb95952c1649e58d9ece
private_contact: 4b6281b0da561d3b4396c6498527621c42b4ad58
resolution: Withdrawn
title: Tables in ticket view set the bgcolor
comment:
  I use a modified header/footer/css on my site, but the table for display a ticket sets the bgcolor rather than relying on css.  I'd submit a patch, but this ticket system doesn't have that, so here's what needs to change:

  <ol>
  <li>In tktsetup_.c remove all bgcolor="#d0d0d0" text.</li>
  <li>In style_.c add CSS to style the td tags (although they look find without it).</li>
  </ol>

  Additionally, these strings in the .c files could easily just be text files that are injected into sqlite.  Not sure what the purpose is of putting them in there.

  <hr><i>anonymous added on 2009-10-17 17:31:14:</i><br>
  Oops, sorry that's in src/tktsetup.c not tktsetup_.c.

  <hr><i>anonymous added on 2009-10-17 17:38:06:</i><br>
  Alright, I need to read the code more carefully.  I found the configuration page where you can just remove them.

  Fossil rocks! :-)

  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-21 15:28:12:</i><br>
  Still, it would be nice to move this to CSS, in case skins/themes are coming.


tkt_uuid: 574d53a26006d5d944caab62c21d9187c6de0cd7
type: Code_Defect
status: Closed
severity: Minor
foundin: Fossil version [d78835d2ff] 2009-10-18 18:30:56
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Works_As_Designed
title: Column headers doesn't match columns value in raw view report
comment:
  See here

  http://www.fossil-scm.org/index.html/rptview?tablist=1&rn=4

  the headers of bgcolor # mtime type ... etc are out of aligment.

  bgcolor	#	mtime	type	status	subsystem	title
  #cacae5	2e3dc63382	2009-06-25 16:28:19	Incident	Deferred		Default Severity Annoying
  #f2dcdc	6981de95b6	2009-10-18 02:26:59	Build_Problem	Open		Makefile for OpenSolaris is not correct
  <snip>

  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-21 15:20:17:</i><br>
  "Raw" view outputs tab separated columns, not "pretty" formatted text. This format is suitable for scripts, or for Excel importing.

  So I think this works as designed.


tkt_uuid: 057b6d23dad0ec4e2978c7a4197721d490cf67d7
type: Code_Defect
status: Closed
severity: Minor
foundin: 79be9028eb
private_contact: 6e2163462fb7f11c3a9d62f715eac2bff3e678e7
resolution: Not_A_Bug
title: possible fork with autosync enabled
comment:
  An accidental fork was created in the SQLite project today with both users having autosync enabled and working online.  It is suspected that both users started their commits at about the same time, but because of the different times taken to complete the check-in (editing comments, etc.), a fork was created.

  <hr><i>drh added on 2009-10-31 13:17:04:</i><br>
  I don't think this is a bug.  This is simply the way distributed
  version control systems work.  The fork is easily resolved using a
  subsequent merge.  Indeed, with DVCSes other than Fossil, that's what
  you would have to do all the time anyway.  Fossil provides auto-sync
  which helps to reduce forks, but I don't think it can eliminate them
  100%.


  <hr><i>anonymous added on 2009-11-03 20:02:15:</i><br>
  You could certainly shrink the window though by comparing the version at the start with the version just before the actual commit (once notes, gpg, etc. done.)


tkt_uuid: 869729204ab5e201064d4f3208c805cad94f89a0
type: Feature_Request
status: Open
severity: Important
resolution: Fixed
title: Fossil does not trace file removal.
comment:
  If a file in local tree have removed, at commit stands out:

  fossil: no such file: /home/napa3um/workspace/Disco/agent/Win32-Release/rpcagent.exe

  <hr><i>anonymous added on 2009-10-22 12:35:47:</i><br>
  "fossil clean" not the necessary variant since besides a file "/Disco/agent/Win32-Release/rpcagent.exe" he suggests to remove all files from the catalogue "/Disco/" (and in rep I store while only the catalogue "/Disco/agent/")


  <hr><i>anonymous added on 2009-10-22 12:39:56:</i><br>
  Sorry, "fossil clean" at all has to it no relation.


  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-22 14:01:22:</i><br>
  Use <code>fossil rm FILENAME</code> to remove it.

  <hr><i>anonymous added on 2009-10-23 06:13:30:</i><br>
  for what reason fossil does not do it automatically?

  <hr><i>anonymous added on 2009-10-23 06:14:11:</i><br>
  for what reason fossil does not do it automatically?

  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-23 06:25:03:</i><br>
  There's a discussion currently in mail list about UI changes and an option to rm missing files automatically  (see home page for links). Let's discuss it there and come back to file a feature request for agreed changes.

  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-23 06:25:43:</i><br>
  There's a discussion currently in mail list about UI changes and an option to rm missing files automatically  (see home page for links). Let's discuss it there and come back to file a feature request for agreed changes.

  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-23 06:26:07:</i><br>
  There's a discussion currently in mail list about UI changes and an option to rm missing files automatically  (see home page for links). Let's discuss it there and come back to file a feature request for agreed changes.

  <hr /><i>dmitry added on 2011-09-08 20:31:53 UTC:</i><br />
  There is now [http://www.fossil-scm.org/index.html/help?cmd=addremove | addremove] command.


tkt_uuid: 07cb82db0de1892033100b3d409c8ecffcaa5e3f
type: Code_Defect
status: Closed
severity: Minor
resolution: Unable_To_Reproduce
title: nobody-user cannot look tickets.
comment:
  If at nobody-user leave only the rights "Read Wiki" and "Read Tkt", then at it in a bookmark of "Tikets" the reference "All Tickets" is displayed, but at transition to it the system offers login.
  (sorry for my english)

  <hr><i>drh added on 2009-10-31 13:06:34:</i><br>
  When I try this, it works correctly.  Are you sure the Nobody permissions
  are set up as you say?


tkt_uuid: 36d5fbf9a41c53e5d32a6bee4a6f37525e853e80
type: Code_Defect
status: Fixed
severity: Minor
foundin: [d78835d2ff]
private_contact: e64e062ff7022fc7fdd41ac56baff07e8ae485d9
resolution: Fixed
title: Revert's error handling is suboptimal.
comment:
  This command line fails quietly:

  <pre><code>
  <i>michael@isolde:~/junk/test$ fossil revert f6eb797b4f 3</i>
  revert file '3'? this will destroy local changes <nowiki>[y/N]</nowiki>? y
  </code></pre>

  Of course I really was meant to put a -r in front of the revision number, but the complete absence of any kind of error message (like "file f6eb797b4f not in repository", say) kind of disguised my error.  It may be better if Fossil flags an attempt to revert a file that doesn't exist.

  <hr><i>eric added on 2009-10-27 20:10:16:</i><br>
  <code>fossil revert</code> only reverts one file. After getting the valid options and checking for any remaining (invalid) options, it just processes the last argument, ignoring any others. Maybe what it needs is a way to detect any excess arguments.

  <hr><i>drh added on 2009-10-31 13:13:44:</i><br>
  Check-in [107f38dd014ae469dcac1f3e1c4fb230ffdc7d71]


tkt_uuid: 5125de2e6245726f84f8b7e3fed29dbe61ff41fb
type: Feature_Request
status: Closed
private_contact: 3f8c819a8c0677b98f5b926799b16530d22b0c68
resolution: Duplicate
title: Enable type of file (extension) to be ignored (e.g. *.OBJ)
comment:
  <hr><i>anonymous claiming to be Dmitry Chestnykh added on 2009-10-26 16:08:15:</i><br>
  Duplicate of [4e8410bfd6].

  <hr><i>stephan added on 2009-11-30 14:39:04:</i><br>
  This is basically the same as [705181a992].


tkt_uuid: 967cedbf200f707055ca9d1a585d7974347c2318
type: Feature_Request
status: Closed
private_contact: 3f8c819a8c0677b98f5b926799b16530d22b0c68
resolution: Fixed
title: fossil extra - Report for subtree
comment:
  It would be nice to have an option to perform the fossil extra command only report extra files for the subtree that begin at the current direcory and not for the entire hierarchy of files.

  <hr /><i>anonymous claiming to be mgagnon added on 2011-05-17 21:36:56 UTC:</i><br />
  I know that's an old ticket, but it would be very useful for me. Having a very big repo, with a lot of extra generated files everywhere, sometime, I want a list of extra files on a sub-directory only.

  Without changing the default behavior as it was suggested on this ticket originally, Instead to work from current directory, it might have an argument to specify the wanted sub-path. So original behavior will not be modify when called without argument.

  And I'm sure that this kind of argument which isolate a subtree can be useful for many other fossil command. Like timeline, changes, etc..



  <hr /><i>dmitry added on 2011-09-08 23:28:53 UTC:</i><br />
  Related: [967cedbf20].


tkt_uuid: 5003b71cdb65e7b1150a43d6ba40470aeda5b1e8
type: Code_Defect
status: Closed
severity: Critical
private_contact: f0a18eb0771e15d11702688e9228e80cda4a1b1a
resolution: Unable_To_Reproduce
title: unable to delete file from repository
comment:
  >fossil ls | grep MISSING
  [..]
  MISSING   agent/rpcagent.log
  [..]

  >fossil rm agent/rpcagent.log
  fossil: not in the repository: agent/rpcagent.log

  <hr><i>drh added on 2009-10-27 15:23:02:</i><br>
  I am unable to reproduce this problem.  Can the OP please provide
  more detail.


tkt_uuid: 2de4ae605844fe3fb7fdc5c0f8740b936d47a746
type: Code_Defect
status: Fixed
severity: Minor
foundin: 3275d9c63c 2009-10-21T15:43:23
private_contact: 6b7d8d19b3584e0b0b59ee79d0f778ecd9f60111
resolution: Fixed
title: 'checkout' command fail after merge without changes.
comment:
  The 'checkout' command scan 'mlink' table for validate specified artifact-id.<br>But in rare case, if merged but no files are changed, no rows added to 'mlink' table.<br>I think it could be use function 'is_a_version()' defined in 'update.c' for validation.<blockquote><verbatim>--- ../Fossil-3275d9c63c/src/checkout.c 2009-10-30 14:14:17.000000000 +0900
  +++ src/checkout.c      2009-10-30 14:15:03.000000000 +0900
  @@ -75,7 +75,7 @@
     if( vid==0 ){
       fossil_fatal("no such check-in: %s", g.argv[2]);
     }
  -  if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", vid) ){
  +  if( !is_a_version(vid) ){
       fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid));
     }
     load_vfile_from_rid(vid);</verbatim></blockquote>Example:
  <blockquote><verbatim>$ fossil new test.fsl
  $ md a b

  $ # User A add a file.
  $ cd a && fossil open ../test.fsl
  $ for e in fast second third fourth; do echo $e; done > foo.txt ; cat foo.txt
  fast
  second
  third
  fourth
  $ fossil add foo.txt
  $ fossil commit --nosign -m "add foo.txt"

  $ # User B open repository.
  $ cd ../b && fossil open ../test.fsl

  $ # User A append new line, and fix typo.
  $ cd ../a
  $ echo fifth >> foo.txt
  $ sed -i s/fast/first/ foo.txt
  $ fossil commit --nosign -m "add fifth and fix typo"

  $ # User B also fix typo and commit it with --force option.
  $ cd ../b
  $ sed -i s/fast/first/ foo.txt
  $ fossil commit --nosign --force -m "fix typo"

  $ # User A found User B's fix. merge it.
  $ cd ../a
  $ fossil timeline -n 1
  === 2009-10-30 ===
  13:59:57 [e9d9022b4f] fix typo (user: silov tags: trunk)

  $ fossil merge e9d9022b4f
  $ fossil commit --nosign -m "thank you, but already fixed"

  $ # User B found merged commit, but can not checkout it.
  $ cd ../b
  $ fossil timeline -n 1
  === 2009-10-30 ===
  14:01:06 [2ba1ef2ce2] *MERGE* thank you, but already fixed (user: silov tags: trunk)

  $ fossil checkout --latest
  fossil: object [2ba1ef2ce2] is not a check-in</verbatim></blockquote>

  <hr><i>drh added on 2009-10-31 13:12:32:</i><br>
  Check-in [999b1779e71ed659e7b962ae96905bd9a6a5dcc6]


tkt_uuid: 15f5f61461b990eb64d7a42f837e5942e29bac8b
type: Feature_Request
status: Closed
severity: Minor
foundin: 0039b7813e
private_contact: 735ae1c8a572d669bafab35cf8b1f5116c325c86
resolution: Withdrawn
title: add class wikiedit to comment and cmappnd
comment:
  After my integration of tinymce I noticed 4 textareas

  1 name = comment in tktnew

  2 name = cmappnd in tktedit

  3 name = w       in wikiedit   class wikiedit

  4 name = r       in wikiappend class wikiedit

  I wonder if it is possible to add class wikiedit to comment and cmappnd. Because wiki formatting is allowed in these text areas

  <hr><i>anonymous claiming to be Rene de Zwart added on 2010-01-05 01:37:04:</i><br>
  Apperently this  was already the case!
  But if I use Tinymce I can check on current_page being one of
  "tktnew", "tktedit", "wikiedit" or "wikiappend" and then load tinymce

  <hr /><i>renez added on 2011-02-12 10:49:38 UTC:</i><br />
  I found out that this has been/was already done!


tkt_uuid: 02f9d037a407bb37a188e5ff9139235aa3bfe276
type: Code_Defect
status: Closed
severity: Important
foundin: f57990b65a
private_contact: 481f3560ef506266e325518f83fffaf73b492a99
resolution: Not_A_Bug
title: Login-Cards may be susceptible by a replay attack
comment:
  When I read the documentation of the fossil sync protocol, I noticed that a nonce is used which is a function of the message contents only.

  This means an attacker can record each message and replay it at any time.

  It is not clear to me from the documentation whether or not any possible message contains some unique information that will never be repeated in any later messages.

  If this is the case, feel free to close this ticket but please clarify the documentation accordingly.

  Otherwise, I would strongly suggest to add some sort of transaction counter to the hash from which the nonce will be created.

  A simple incrementing counter should suffice, as the hash function will totally garble the bits anyway.

  However, even then the question arises when the counter is initialized and where it is stored.

  For that reason, it might be better if the server created a "session string" at the beginning of each sync session and sends it to the client.

  This string could consist, for instance, of the current date and time plus a small random number in order to thwart scripted replay attacks which might exploit a low clock resolution of the server.

  This session string is then augmented by an integer counter that starts at 0 at the beginning of each session.

  Using this or a similar scheme will guarantee that each combination of session string and message counter will always be unique, and an attacker has no chance of launching a replay attack.

  <hr><i>drh added on 2009-11-04 12:36:40:</i><br>
  A fossil repository is an unordered set of artifacts.  The "unordered" part is
  important - the artifacts can arrive at the repository in any order without
  changing the meaning of the repository at all.  A further consequence of this
  is that the same artifact can be sent into the repository multiple times without
  changing the repository.  Hence, a replay is utterly harmless.


tkt_uuid: 705181a992ccb1760ff181d72f315bbfbdc7e783
type: Feature_Request
status: Closed
severity: Important
private_contact: f33437152151a7ffe4cdce87383155dd9c0f8d50
resolution: Duplicate
title: like something similar to .gitignore
comment:
  i'm using the fossil checkout dir, as my application directory too, i create a couple of sub dirs for app data, this works fine, except of course, when your looking at fossil extras. Actually, another option would be

  fossil extras --ignore dir1,dir2

  that would satisfy my issues

  <hr><i>jeremy_c added on 2009-12-31 04:29:49:</i><br>
  Basically a duplicate of [4e8410bfd6]


tkt_uuid: 9d84642c7f458fdb9f0149dd99383137b336786f
type: Feature_Request
status: Fixed
private_contact: f33437152151a7ffe4cdce87383155dd9c0f8d50
resolution: Fixed
title: fossil ticket?
comment:
  A way to create tickets from the command line so there can be integration without need to go to website

  <hr /><i>lrem added on 2011-08-29 16:18:33 UTC:</i><br />
  Fixed for some time. Works in current version, 1.18.


tkt_uuid: 6c897c0fd01385bff64a200fc4b9c2766d954767
type: Feature_Request
status: Closed
severity: Important
private_contact: 22e3b7a55e291d179313f4c2e34877f09743ee31
resolution: Overcome_By_Events
title: make it possible to specify branch with "open" command
comment:
  I would like to see a flag added to the "open" command that makes it possible to specify which branch or version is to be written out on the initial checkout.

  When an initial checkout is done using the "open" command, the command's behavior in terms of which branch is checked out is undocumented.  Observation suggests that the checked-out branch is the last one to have something checked in to it.  If that's not the desired branch then an extra action is required, like using the "checkout" command.

  I would like to a) save a step and b) be very conservative about what code appears on my drive.  If I'm deploying to a production server, I don't want non-vetted code to be written out, even transiently.  A failure anywhere along the deploy process might leave exploitable code or sensitive information lying about.  Thus I would like to be able to specify the branch/version used by the open command so as to have complete control at all times over what code exists in my checkout directory.

  <hr><i>drh added on 2009-11-06 14:06:02:</i><br>
  This already works.  Just type:

      fossil open REPOSITORYNAME BRANCHNAME


tkt_uuid: 2aaa8042caec7929f432ce1de37b10563c70dd07
type: Feature_Request
status: Fixed
severity: Minor
foundin: 149945beea
private_contact: 05f652db744266759b20d248ec2f451629420388
resolution: Fixed
title: Option to avoid saving the sync URL
comment:
  I have a clone/fork of Fossil repository on my webserver (let's say it's http://example.com/fossil-fork), which I merge with the main one from time to time. When I pull changes from http://www.fossil-scm.org, the URL gets saved into last-sync-url. The next time I commit to it (with autosync option turned on), Fossil tries to push changes into mainline, while I want it to push into my fork (http://example.com/fossil-fork). I have to use remote-url command to set last-sync-url back to the URL of my fork.

  I think the "--once" option for sync/pull/push will be useful for synchronizing forks. E.g.,

  <verbatim>
  $ fossil remote-url
  http://example.com/fossil-fork

  $ fossil pull --once http://www.fossil-scm.org
  ...
  Total network traffic: 318 bytes sent, 1292 bytes received

  $ fossil remote-url
  http://example.com/fossil-fork
  </verbatim>

  Diff:

  <verbatim>
  --- src/sync.c
  +++ src/sync.c
  @@ -67,14 +67,17 @@
   /*
   ** This routine processes the command-line argument for push, pull,
   ** and sync.  If a command-line argument is given, that is the URL
   ** of a server to sync against.  If no argument is given, use the
   ** most recently synced URL.  Remember the current URL for next time.
  +**
  +** If --once option is specified, do not remember URL.
   */
   void process_sync_args(void){
     const char *zUrl = 0;
     int urlOptional = find_option("autourl",0,0)!=0;
  +  int syncOnce = find_option("once",0,0)!=0;
     url_proxy_options();
     db_find_and_open_repository(1);
     if( g.argc==2 ){
       zUrl = db_get("last-sync-url", 0);
     }else if( g.argc==3 ){
  @@ -83,11 +86,13 @@
     if( zUrl==0 ){
       if( urlOptional ) exit(0);
       usage("URL");
     }
     url_parse(zUrl);
  -  db_set("last-sync-url", g.urlIsFile ? g.urlCanonical : zUrl, 0);
  +  if ( syncOnce==0 ) {
  +    db_set("last-sync-url", g.urlIsFile ? g.urlCanonical : zUrl, 0);
  +  }
     user_select();
     if( g.argc==2 ){
       if( g.urlPort!=g.urlDfltPort ){
         printf("Server:    %s://%s:%d%s\n",
                 g.urlProtocol, g.urlName, g.urlPort, g.urlPath);
  @@ -99,16 +104,18 @@
   }
   
   /*
   ** COMMAND: pull
   **
  -** Usage: %fossil pull ?URL? ?-R|--respository REPOSITORY?
  +** Usage: %fossil pull ?URL? ?-R|--respository REPOSITORY? ?--once?
   **
   ** Pull changes from a remote repository into the local repository.
   **
   ** If the URL is not specified, then the URL from the most recent
   ** clone, push, pull, remote-url, or sync command is used.
  +**
  +** If --once option is specified, do not remember URL.
   **
   ** See also: clone, push, sync, remote-url
   */
   void pull_cmd(void){
     process_sync_args();
  @@ -116,16 +123,18 @@
   }
   
   /*
   ** COMMAND: push
   **
  -** Usage: %fossil push ?URL? ?-R|--repository REPOSITORY?
  +** Usage: %fossil push ?URL? ?-R|--repository REPOSITORY? ?--once?
   **
   ** Push changes in the local repository over into a remote repository.
   **
   ** If the URL is not specified, then the URL from the most recent
   ** clone, push, pull, remote-url, or sync command is used.
  +**
  +** If --once option is specified, do not remember URL.
   **
   ** See also: clone, pull, sync, remote-url
   */
   void push_cmd(void){
     process_sync_args();
  @@ -134,11 +143,11 @@
   
   
   /*
   ** COMMAND: sync
   **
  -** Usage: %fossil sync ?URL? ?-R|--repository REPOSITORY?
  +** Usage: %fossil sync ?URL? ?-R|--repository REPOSITORY? ?--once?
   **
   ** Synchronize the local repository with a remote repository.  This is
   ** the equivalent of running both "push" and "pull" at the same time.
   **
   ** If a user-id and password are required, specify them as follows:
  @@ -145,10 +154,12 @@
   **
   **     http://userid:password@www.domain.com:1234/path
   **
   ** If the URL is not specified, then the URL from the most recent successful
   ** clone, push, pull, remote-url, or sync command is used.
  +**
  +** If --once option is specified, do not remember URL.
   **
   ** See also:  clone, push, pull, remote-url
   */
   void sync_cmd(void){
     process_sync_args();

  </verbatim>

  <hr><i>drh added on 2009-11-06 14:16:01:</i><br>
  check-in [5153d618937eb274b06a5cb2ae93fa0832157575]

  <hr><i>dmitry added on 2009-11-06 15:31:13:</i><br>
  Thanks! The funny thing is that the original patch was almost exactly the same (with dontSaveUrl variable), but I changed it for some reason :)


tkt_uuid: 4c303443b3d74b6d8398128231661f2f1fe35a3e
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: 5da32f9f963c3d7bc3b9708332550d885068e539
resolution: Open
title: fossil rmdir
comment:
  Removing a directory with all containing files and subdirectories recursively.

  workaround under linux: fossil rm `find folder -type f`

  <hr><i>anonymous added on 2009-11-07 08:31:45:</i><br>
  duplicate of [0bce25f110edc8e0f43d810feaf075bab732cba7]


tkt_uuid: fd42f1fc3d373e443e22715e28435efebdb031c1
type: Feature_Request
status: Open
severity: Minor
foundin: 355e34ba9d
private_contact: 568a33e3c62e93da9a0ef4ccfed20f4986f72fe1
title: request to add ticket Comment in RSS feed
comment:
   The RSS feed titles show the Comment for Check-in items. I find this useful because a project synopsis is available without having to
   click on anything.

   However, a New or Closed ticket only includes the ticket # with no information about the ticket itself.

   I suggest that New and Closed ticket entries in the RSS feed include
   the specific ticket # and the Comment for the ticket.

  Michael McDaniel


tkt_uuid: 7bb8f2359a681082fd94f26180c06c8d4ca2fed6
type: Feature_Request
status: Closed
severity: Important
foundin: 37f295c310
private_contact: cfcf19d860dc668ea6bb4cf4d3dff6a844a5a286
resolution: Overcome_By_Events
title: please add a fossil command to retrieve the history for a given file
comment:
  I would like a fossil command that allows me to retrieve the timeline/revision history for a given file from the command line, e.g.:

     fossil timeline foo.txt

  <hr><i>drh added on 2009-11-09 21:25:49:</i><br>
  The "finfo" command was added on 2009-10-31.  See in check-in [8c8f8616a64]


tkt_uuid: d642c3621a9735a5ad4c583e72d496b091e8f481
type: Documentation
status: Open
severity: Critical
title: Improve and update documentation
comment:
  Hi Fossil Developers,

  First of all I would like to thank you for FOSSIL, I think it is a great version control system (even though I am relatively new to version controlling).

  I am using Fossil for 2 months now, although I appreciate the underlying concepts, I think that the documentation is lacking. I need to do a lot of guess work and I believe this is penalizing Fossil. The documentation is, to my mind, a crucial and integral part of any software project. 

  For example the page  http://www.fossil-scm.org/index.html/doc/tip/www/reference.wiki is not very useful in its current stage: some commands are not explained, the ones that are explained are ambiguous (what's a VERSION?: I do not want to guess), it is not updated (I believe some commands have changed in between)...

  Some problems that I have run into:
  *The UPDATE command documentation is not clear (hopefully http://www.sqlite.org/privatebranch.html exists),
  *Nowhere it is explained that to close a leaf you need to do in the GUI. I was thinking that I can add a "closed" tag with the TAG command,
  *I have some files that I use only for testing, how can I ignore them when merging...

  Thanks in advance for your time.


tkt_uuid: 974618fe5a809ff347a9c53f9ec38b476d5f65bb
type: Code_Defect
status: Open
severity: Minor
foundin: e2431b17df
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Open
title: fossil all rebuild does redundant rebuilds on windows
comment:
  on windows, fossil all rebuild causes multiple rebuilds of some repositories.  the duplicate rebuilds have identical paths except for the type of slash used in the path or sometimes the character case.  not every repository gets rebuilt twice, and some can even get rebuilt thrice.  very odd.
  <pre>
  PS C:\fossil> fossil all rebuild
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/easyunit.f
  84 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/fossil.f
  5637 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/sqlite3.f
  29810 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/xywinservice.f
  33 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:\fossil\easyunit.f
  84 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:\fossil\xywinservice.f
  33 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild c:\fossil\sqlite3.f
  29810 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild c:\fossil\xywinservice.f
  33 (100%)...
  PS C:\fossil> fossil ver
  This is fossil version [e2431b17df] 2009-11-09 21:32:36 UTC
  </pre>

  <hr><i>drh added on 2009-11-11 16:21:57:</i><br>
  Check-in [d5695157d0caade4fc251dcfbeb1ac8e8602f672]

  <hr><i>rwilson added on 2009-12-08 19:02:04:</i><br>
  This still happens on the tip [484c8f9f86]
  <pre>
  PS C:\fossil> fossil all rebuild
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/easyunit.f
  84 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/fossil.f
  5708 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/sqlite3.f
  30014 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:/fossil/xywinservice.f
  33 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild C:\fossil\easyunit.f
  84 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild c:\fossil\sqlite3.f
  30011 (100%)...
  C:\WINDOWS\system32\fossil.exe rebuild c:\fossil\xywinservice.f
  33 (100%)...
  PS C:\fossil> fossil ver
  This is fossil version [484c8f9f86] 2009-12-08 18:43:51 UTC
  PS C:\fossil>
  </pre>


tkt_uuid: 95d893c20763eab69663b618ff076f82faac60af
type: Feature_Request
status: Open
severity: Minor
foundin: 2009-10-11
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Open
title: diagnostics for fossil tag cancel X Y
comment:
  When trying to remove a tag (actually I just want to remove it then regenerate it with --propagating set, but I digress) the command "fossil tag cancel X Y" gives no diagnostics when X does not exist.  Eg, try "fossil tag cancel XXXXXXX trunk"

  <hr><i>drh added on 2009-11-12 16:41:55:</i><br>
  Because Fossil is distributed, it has no way of knowing whether or not the
  tag exists.  It can check its local repository, certainly.  But you don't
  necessarily want to fail the cancel in that case because the tag might exist
  in some other repository that you just have not synced with yet.

  I will convert this to a "feature request" to issue a warning if the tag
  does not exist in the local repository.

  <hr><i>anonymous added on 2009-11-13 02:36:44:</i><br>
  So you're saying if a tag doesn't exist locally, but you cancel it anyway, then do a sync which would create the tag locally ... it gets cancelled at that time?  That would certainly violate my own principle of least surprise!

  Related question: what if you sync two repos, each of which has tag FOO on commit BAR, but one of the tags is marked --propagate and the other is not.  I assume the --propagate marking wins in this case?

  The semantics of tag creation/cancelling and syncing repos seems pretty subtle...

  <hr><i>drh added on 2009-11-13 14:18:15:</i><br>
  The "tag" artifact with the most recent timestamp wins.

  A distributed, disconnected database (such as fossil, but also git, hg, etc) 
  exhibits many surprising behaviors if you are used to working with a localized,
  monolithic, and always-connected database.  This is an inherent property of
  distributed and disconnected systems, I'm afraid.


tkt_uuid: 1cbbf8aecda5f7afff6657656d9b7965f0d2980e
type: Code_Defect
status: Closed
severity: Minor
foundin: 2009.10.11
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Rejected
title: multiple tagging
comment:
  It is easy to accidentally tag multiple points with the same tag.
  Generally this would be due to a typo or other error, so it really should be guarded against.  E.g.,
   fossil tag add foo-tag blah
   fossil tag add foo-tag bleh
  No error, no warning, oops.
  (Suggest requiring current tag to be cancelled before allowing a second point to be given the same tag.)

  <hr><i>drh added on 2009-11-12 18:42:57:</i><br>
  The ability to put the same tag on multiple check-ins is a feature, not
  a bug.  We use it (for example) on SQLite to tag each release with a
  "release" tag.  See [http://www.sqlite.org/src/timeline?t=release].

  <hr><i>anonymous added on 2009-11-13 01:36:38:</i><br>
  Logically speaking then, there are two kinds of tags: ones used to mark a unique state, and ones used to label features of states.  We might call the latter "labels" if we wanted to distinguish them.  Since the former use is quite common, I would suggest requiring a flag when the later use is desired, and kicking back an error when a double tag is created without that option.  I would also suggest some feedback: "creating tag XXX (number 4; 3 other commits also have tag XXX)"

  I do understand that unique tags do not play very well with distributed repos and syncs.  But warnings generated at sync time, or some other feedback, might catch some subtle errors which would otherwise slip through.


tkt_uuid: d7c0de3c2b7c64710ec6b6cb7f6de9f3b025f5f6
type: Feature_Request
status: Closed
severity: Important
private_contact: 79ddb4c67648188fc0f484eedd013e2ae329aab2
resolution: Overcome_By_Events
title: add support of ssh:// protocol
comment:
  You may borrow an implementation from, say, Mercurial or Subversion. For me it looks easy.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-12-24 23:45:04:</i><br />
  The ssh protocol has been implemented.


tkt_uuid: 3f2cb270b2f6508db840be97405131fce30901f4
type: Code_Defect
status: Fixed
severity: Important
foundin: [d5695157d0]
private_contact: 3b403a9307c53dd2b8b90ab73d7b4f056db52f64
resolution: Fixed
title: Assertion on "fossil update" when trying to merge a binary file
comment:
  I pulled changes from a remote repository and then wanted to update my local files. Apparently one of the binary files had changed locally and fossil couldn't merge it. That's expected, but fossil stopped with an assertion afterwards. Here's the console log (remote ip removed):
  <pre>
  C:\Users\MrPokeylope\fossilrepo\local>fossil update
  Autosync:  http://XX.XXX.XX.XXX:XXXXX
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  Received:        1242         27          0          0
  Total network traffic: 323 bytes sent, 858 bytes received
  UPDATE code/SyntaxDiagramm/Debugging/Debugging.suo
  UPDATE code/SyntaxDiagramm/Debugging/Sample.syndiag
  UPDATE code/SyntaxDiagramm/Debugging/Sample.syndiag.diagram
  UPDATE code/SyntaxDiagramm/Dsl/CustomCode/FixUpDiagram.cs
  UPDATE code/SyntaxDiagramm/Dsl/DslDefinition.dsl
  UPDATE code/SyntaxDiagramm/Dsl/DslDefinition.dsl.diagram
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/ConnectionBuilders.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/Diagram.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/DomainClasses.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/DomainModel.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/DomainModelResx.resx
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/DomainRelationships.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/Serializer.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/Shapes.cs
  UPDATE code/SyntaxDiagramm/Dsl/GeneratedCode/SyntaxDiagrammSchema.xsd
  UPDATE code/SyntaxDiagramm/Dsl/obj/Debug/TempPE/GeneratedCode.HelpKeywordHelper.cs.dll
  UPDATE code/SyntaxDiagramm/Dsl/obj/Debug/TempPE/GeneratedCode.PropertiesGrid.cs.dll
  UPDATE code/SyntaxDiagramm/DslPackage/obj/Debug/TempPE/GeneratedCode.Constants.cs.dll
  UPDATE code/SyntaxDiagramm/DslPackage/obj/Debug/VSCT.read.1.tlog
  UPDATE code/SyntaxDiagramm/DslPackage/obj/Debug/VSCT.write.1.tlog
  MERGE code/SyntaxDiagramm/SyntaxDiagramm.suo
  <b>***** Cannot merge binary file code/SyntaxDiagramm/SyntaxDiagramm.suo
  Assertion failed: (pBlob)->xRealloc==blobReallocMalloc || (pBlob)->xRealloc==blobReallocStatic, file blob_.c, line 170</b>

  This application has requested the Runtime to terminate it in an unusual way.
  Please contact the application's support team for more information.

  C:\Users\MrPokeylope\fossilrepo\local>fossil version
  This is fossil version [d5695157d0] 2009-11-11 16:21:19 UTC
  </pre>

  <hr><i>anonymous added on 2009-11-16 20:46:27:</i><br>
  Here's some additional info: the file SyntaxDiagramm.suo had the "hidden" attribute.

  <hr><i>drh added on 2009-12-19 03:17:46:</i><br>
  See check-in [8e147fdbac452ff3d92faa44bd26f678e3c00efb].


tkt_uuid: 66de5264986d6cb2633ddf10d9dfbe264a7b6406
type: Build_Problem
status: Fixed
severity: Severe
foundin: d5695157d0, WindowsXP
private_contact: e91c41ad1b28f7973b7c8c690cb9e44c18fa6b6d
resolution: Fixed
title: tickets; new report format; Syntax error: no such function; functions user(), aux(), wiki()...
comment:
  1. go to Tickets / New Report format (http://servername/rptnew)

  2. adding any of the functions enlisted in the notes for the new report formats will result in the syntax error message.


  EXAMPLE:

  <pre>
  SELECT
     tkt_id AS '',
     title AS 'Title',
     user() as 'User'
   FROM ticket
  </pre>

  will result in the syntax error msg.


  information about the Fossil version (command: fossil version) at Windows XP with all recent updates:
  <pre>
  This is fossil version [d5695157d0] 2009-11-11 16:21:19 UTC 
  </pre>

  <hr><i>anonymous added on 2009-11-25 22:30:34:</i><br>
  the sql query:
  <pre>
  SELECT
     tkt_id AS '',
     title AS 'Title',
     user() as 'User'
   FROM ticket
  </pre>
  returns error msg:
  <pre color="#ff0000">Syntax error: no such function: user</pre>

  <hr><i>anonymous claiming to be btheado added on 2009-11-28 21:35:42:</i><br>
  I also noticed how these sql functions are missing from the current fossil implementation and I took a stab at porting some of it over from cvstrac.

  Both user() and cgi() both were straightforward.

  The code for aux() and option() is more complicated.  Maybe it will also be straightforward, but I haven't looked close enough yet.

  I looked at the wiki() implementation in cvstrac and the functionality doesn't really seem like a good fit for a sql function.  The function only prefixes the cell values with a special string that later triggers wiki conversion (and bypasses html escaping as for other normal columns).  With this behavior, I don't think 'wiki()' can be combined with other sqlite operations very well.  If the user wants to perform additional modification to the output of 'wiki()' with another sql function, then they would likely be surprised to find at the sql level that the output of that function is not the wiki converted text.  I don't see a use case for doing that, but it makes it seem to me like it is a bad fit for a sql function.

  So I took the approach of adding a new special column name prefix.  If the column name is prefixed with the string '_wiki_' then the cells in that column will be wiki converted and the '_wiki_' prefix will be removed from the column name.  All other column names prefixed with '_'  will trigger the "new row" functionality as before.

  What do you think of this approach?

  I have these changes checked into a local clone of the fossil repository.  I created my own branch for these changes, but then accidentally checked the changes into the trunk (I'm not well versed with the VC side of fossil yet).  I'm not sure yet how to fix that.  I guess I can just start over with a fresh fossil clone and make the checkins again.

  Are you interested in having these changes pushed into the fossil repository?

  <hr><i>anonymous added on 2009-12-03 01:20:52:</i><br>
  I would like to see the user() functionality.  I want to generate a report that shows all of the tickets assigned to the current user, but without the user() functionality I'm not sure how to do it.  It's odd that the instructions for generating a ticket report explicitly show a number of functions that are not available.

  <hr><i>drh added on 2009-12-17 15:24:03:</i><br>
  Check-in [4b0d2fbefbd5955b6769a8bd8b4c941b078b27af]


tkt_uuid: 1e919e389bb96b1311337b74d63c27e72052554a
type: Incident
status: Closed
severity: Severe
foundin: [37f295c310] 2009-09-21 19:19:20 UTC
private_contact: cac53f059e06402625535d363c84a4e2ab543e92
resolution: Not_A_Bug
title: "fossil update" doesn't update
comment:
  I have a netbook running Ubuntu "Karmic Koala", on which I have several fossil repositories.  The main copy of these repositories resides on my web host.  After a "fossil all sync" in which I saw new artifacts coming across, I went to the working directory trees on the netbook and did a "fossil update": and nothing happened.  I tried this in two working directory trees where I knew there were new artifacts, among other updates...and "fossil update" did not pull them in.

  Then, I checked out the repositories into new directories using "fossil open", and the new artifacts and updates were checked out with everything else.

  So the "fossil sync all" worked; there was presumably something about the working directories that prevented "fossil update" from doing its thing.

  Help!  This is disturbing.

  <hr><i>drh added on 2009-11-26 23:09:31:</i><br>
  I have changed this ticket to an "Incident" and closed it.
  Let us not presume that this is something wrong with Fossil until
  we better understand the problem here.  It may be something as
  simple as the host computers clock being set to the wrong year.
  If, after further analysis, it turns out that this is a problem
  with fossil, we can reopen the ticket.

  Please consider posting about the issuing on the mailing list.

  Will, many many people really have been using Fossil, on Ubuntu, for
  a really long time.  Nobody has seen anything like this before.  It
  must be something obscure.  Don't panic.

  <hr><i>anonymous added on 2009-11-27 10:51:07:</i><br>
  I have the same problem and I am using ubuntu Karmic Koala.

  <hr><i>drh added on 2009-11-27 12:14:40:</i><br>
  If you would like me to work on this problem, you are going to need to 
  provide me with additional information.  The preferred way to do this is
  to bring up the issue on the Fossil mailing list.  But, failing that, please
  provide whatever detail you can to describe the problem.

    *  What commands actually work (Please try them all)

    *  Does "fossil update" work if you specify a specific version to check out?

    *  What do you see if you run "strace" in front of "fossil update"?

    *  What do you see if you use the --sqltrace option on "fossil update"?

    *  Have you tried running fossil in a debugger to see what is going on?

  <hr><i>anonymous added on 2009-11-28 21:04:57:</i><br>
  Sorry, Richard, didn't mean to give the impression that I was in a state of panic.  It's disturbing precisely because (in my experience) Fossil is so stable; this incident was out of character, as it were.  I'll try to bring things like this up on the mailing list first, since that's your preferred process.


tkt_uuid: e4da774beb079adbb2e2966731eb98a41f0283e8
type: Code_Defect
status: Open
severity: Minor
foundin: 732d7c406e
private_contact: 2edb82a5674981933f7e518c88a68d6e79e01a98
title: incorrect quote handling for HTML tag elements
comment:
  If a wiki page contains HTML which uses attributes, e.g. a (FONT COLOR='red') tag, and the user (out of long-time pedantic habit) _properly_ quotes the attributes (as in the previous example), then fossil will output (FONT COLOR="'red'") (notice the extra quotes) to the browser, which results in browser-dependent behaviour (and is malformed HTML in any case).

  To reproduce: add a FONT tag with a COLOR='red' (with the quotes) tag to a wiki entry, and then view the wiki page in a browser.

  My assumption is that this affects all quoted HTML attributes, but i have so far only noticed it with the FONT tag.


tkt_uuid: 6afb0eab56fd2c745392297522dc3c79dfc4da98
type: Feature_Request
status: Closed
severity: Important
resolution: Overcome_By_Events
title: Automatic ticket to check-in referencing
comment:
  If a ticket reference is given in the check-in comment, the ticket should be
  updated automatically with a reference back to the check-in.

  You end up with a nice (automatic) trace of all changes pertinent to the ticket
  (if the developers have the discipline to always provide the ticket reference).

  This is particularly appealing in fossil since it comes with the ticketing embedded.

  In fact, many organizations adopt the rule - no check-ins without a ticket.
  Perhaps this could be a fossil option.

  Note: it is possible for a check-in to apply to multiple tickets

  <hr><i>jeremy_c added on 2009-12-31 04:07:10:</i><br>
  You can now do this in a round-about way... What I did:

  First: Add a "Short UUID" to your View Ticket page. You can do this by:

  <verbatim>
  <th1>
  set shortUuid [string range $tkt_uuid 0 9]
  </th1>
  </verbatim>

  Then, display that to the user somewhere:

  <verbatim>
  Uuid: $<shortUuid>
  </verbatim>

  All that does is make it easy for the developer to copy/paste a sensible UUID into their commit log.

  Now, continuing, on the same View Page add a link to view associated tickets:

  <verbatim>
  <a href="/timeline?y=ci&s=$<shortUuid>">associated tickets</a>
  </verbatim>

  What this does is searches all checkin's for the tickets uuid.

  I've also added this to the [Cookbook] page.


tkt_uuid: d0d21c56d6918ca70614a447aee66427971067b9
type: Feature_Request
status: Fixed
severity: Important
resolution: Fixed
title: Update should restore locally missing files
comment:
  Update should restore locally missing files (I think)
  (Most other SCMs have this semantics. Also happens to be very convenient)

  <hr><i>drh added on 2009-12-18 00:32:57:</i><br>
  Fixed by check-in [2d996b080e1675dad33430598f4f4a75a089f201]


tkt_uuid: 4d6b7d4e1acb3d7e063d4bf003c3296addb4f495
type: Feature_Request
status: Fixed
severity: Important
resolution: Fixed
title: New option: fossil update --dry-run ...
comment:
  A new option:

  fossil update --dry-run ...

  which should be similar to:

  fossil update ...
  fossil undo

  but without modifying any files.

  The advantage would be for the user to know in advance what would happen if he made an update, but without doing it.

  Also useful for GUI tools that make use of fossil

  <hr><i>drh added on 2009-12-17 16:20:57:</i><br>
  The option is -n or --nochanges


tkt_uuid: 552b3512dc7cd757534963f1cb0b81b8a3a56b49
type: Code_Defect
status: Closed
severity: Important
foundin: This is fossil version [f6790b7c3c] 2009-02-26 01:21:04 UTC
private_contact: 26b9307e29274509a60c16f2e6ab3b208f892237
resolution: Unable_To_Reproduce
title: "fossil mv" will let me move a file to outside of the tree.
comment:
  Problem:
  I believe there is a bug with "fossil mv": it lets me move a file outside of the change controlled tree, at which point there is nothing I can do (to the best of my knowledge) to fix this situation with other fossil commands. 

  I would expect:
  Either that fossil will prevent me from moving the file outside of the change controlled tree, or that fossil will allow me to rectify the situation afterwards.

  Reproduction Steps:
  Running these commands will build you a sandbox, set up a repo, open it, add a file, commit the file, and then move the file out. Bung them in a file and source it with "."...

  <pre>
  mkdir sandbox
  cd sandbox
  fossil new test_repo
  mkdir working_copy
  cd working_copy
  fossil open ../test_repo
  touch a_file
  fossil add a_file
  fossil com -m "Adding in a test file."
  fossil mv a_file ..
  mv a_file ..
  echo "Check changes, and see that the file is outside the change controlled tree."
  fossil chan
  echo "Try to move the file back in to the tree (which will fail)..."
  fossil mv ../a_file ./
  </pre>

  Work around:
  It is possible to hack at the _FOSSIL_ sqlite db in the check out tree, but this is probably a terrible idea.

  <hr><i>drh added on 2009-12-17 16:55:06:</i><br>
  When I try the recipe above, the "fossil mv a_file .." command gives
  an error message: "fossil: file outside of checkout tree: .."

  If someone can explain to me how to reproduce this problem we will
  reopen the ticket...


tkt_uuid: 7a27e10f1fe932d696f1c1b033aae8458c32e203
type: Feature_Request
status: Open
severity: Important
foundin: 70656d00f
private_contact: 1fb8c275493b1f1dcf8db46d6d541794a011947f
resolution: Open
title: Need a command to find states of files for entire tree/subdir for Editors and IDEs.
comment:
  This has been discussed a few times in the mailing list.  My particular
  requirement is for integration into emacs-23.   The vc-dired mode requires
  a command to run to give the status for each file that is registered
  with fossil.   At present "fossil ls" gives you a list of files and their
  state, but it doesn't tell you if a file will change if you do an update.
  My users are used to having emacs tell them what all will change if they
  do an update.

  The changes are to 3 files:

  1. file.c: file_tree_name does not handle a trailing / on root dir.

  2. finfo.c : added options to command line finfo:
      -l|--log (default), -b|--brief (only one line per revision) (optional)
      -s|--status:  report checkin version for file.
      -p <revision>: print a specific version to stdout

  3. update.c : added two flags:
      -v|--verbose : print status even for unchanged files
      -n|--nochange : don't do remote-pull, and print changes rather than applying them.
     I only need both flags together so they can be merged.

  I'll attach a patch to this ticket off the current tip.

  <hr><i>anonymous claiming to be Venkat added on 2009-12-14 20:48:03:</i><br>
  Patch is:
  <verbatim>
  venkat:../head/fossil:37> fossil diff
  Index: src/file.c
  ===================================================================
  --- src/file.c
  +++ src/file.c
  @@ -391,23 +391,26 @@
   ** false, then simply return 0.
   **
   ** The root of the tree is defined by the g.zLocalRoot variable.
   */
   int file_tree_name(const char *zOrigName, Blob *pOut, int errFatal){
  -  int n;
  +  int m,n;
     Blob full;
     db_must_be_within_tree();
     file_canonical_name(zOrigName, &full);
     n = strlen(g.zLocalRoot);
  -  if( blob_size(&full)<=n || memcmp(g.zLocalRoot, blob_buffer(&full), n) ){
  +  m = blob_size(&full);
  +  if( m<n-1 || memcmp(g.zLocalRoot, blob_buffer(&full), n-1) ){
       blob_reset(&full);
       if( errFatal ){
         fossil_fatal("file outside of checkout tree: %s", zOrigName);
       }
       return 0;
     }
     blob_zero(pOut);
  +  if (m == n - 1)
  +      return 1;
     blob_append(pOut, blob_buffer(&full)+n, blob_size(&full)-n);
     return 1;
   }
   
   /*

  Index: src/finfo.c
  ===================================================================
  --- src/finfo.c
  +++ src/finfo.c
  @@ -27,71 +27,169 @@
   #include "finfo.h"
   
   /*
   ** COMMAND: finfo
   **
  -** Usage: %fossil finfo FILENAME
  +** Usage: %fossil finfo {?-l|--log? / -s|--status / --p|--print} REV?FILENAME
  +**
  +** Print the complete change history for a single file going backwards
  +** in time.  The default is -l.
  +**
  +** For the -l|--log option: If "-b|--brief" is specified one line per revision
  +** is printed, otherwise the full comment is printed.  The "--limit N"
  +** and "--offset P" options limits the output to the first N changes
  +** after skipping P changes.
   **
  -** Print the change history for a single file.
  +** In the -s form prints the status as <status> <revision>.  This is
  +** a quick status and does not check for up-to-date-ness of the file.
   **
  -** The "--limit N" and "--offset P" options limits the output to the first
  -** N changes after skipping P changes.
  +** The -p form, there's an optional flag "-r|--revision REVISION".  The
  +** specified version (or the latest checked out version) is printed to
  +** stdout.
  +**
   */
  +
   void finfo_cmd(void){
  -  Stmt q;
  -  int vid;
  -  Blob dest;
  -  const char *zFilename;
  -  const char *zLimit;
  -  const char *zOffset;
  -  int iLimit, iOffset;
  +  int vid;
   
     db_must_be_within_tree();
     vid = db_lget_int("checkout", 0);
     if( vid==0 ){
       fossil_panic("no checkout to finfo files in");
     }
  -  zLimit = find_option("limit",0,1);
  -  iLimit = zLimit ? atoi(zLimit) : -1;
  -  zOffset = find_option("offset",0,1);
  -  iOffset = zOffset ? atoi(zOffset) : 0;
  -  if (g.argc<3) {
  -    usage("FILENAME");
  -  }
  -  file_tree_name(g.argv[2], &dest, 1);
  -  zFilename = blob_str(&dest);
  -  db_prepare(&q,
  -    "SELECT b.uuid, ci.uuid, date(event.mtime,'localtime'),"
  -    "       coalesce(event.ecomment, event.comment),"
  -    "       coalesce(event.euser, event.user)"
  -    "  FROM mlink, blob b, event, blob ci"
  -    " WHERE mlink.fnid=(SELECT fnid FROM filename WHERE name=%Q)"
  -    "   AND b.rid=mlink.fid"
  -    "   AND event.objid=mlink.mid"
  -    "   AND event.objid=ci.rid"
  -    " ORDER BY event.mtime DESC LIMIT %d OFFSET %d",
  -    zFilename, iLimit, iOffset
  -  );
  +  vfile_check_signature(vid);
  +  if (find_option("status","s",0)) {
  +      Stmt q;
  +      Blob line;
  +      Blob fname;
  +
  +      if (g.argc != 3) {
  +	  usage("-s|--status FILENAME");
  +      }
  +      file_tree_name(g.argv[2], &fname, 1);
  +      db_prepare(&q,
  +		 "SELECT pathname, deleted, rid, chnged, coalesce(origname!=pathname,0)"
  +		 "  FROM vfile WHERE vfile.pathname=%B", &fname);
  +      blob_zero(&line);
  +      if ( db_step(&q)==SQLITE_ROW ) {
  +	  Blob uuid;
  +	  int isDeleted = db_column_int(&q, 1);
  +	  int isNew = db_column_int(&q,2) == 0;
  +	  int chnged = db_column_int(&q,3);
  +	  int renamed = db_column_int(&q,4);
  +
  +	  blob_zero(&uuid);
  +	  db_blob(&uuid,"SELECT uuid FROM blob, mlink, vfile WHERE "
  +		  "blob.rid = mlink.mid AND mlink.fid = vfile.rid AND "
  +		  "vfile.pathname=%B",&fname);
  +	  if (isNew) {
  +	      blob_appendf(&line, "new");
  +	  } else if (isDeleted) {
  +	      blob_appendf(&line, "deleted");
  +	  } else if (renamed) {
  +	      blob_appendf(&line, "renamed");
  +	  } else if (chnged) {
  +	      blob_appendf(&line, "edited");
  +	  } else {
  +	      blob_appendf(&line, "unchanged");
  +	  }
  +	  blob_appendf(&line, " ");
  +	  blob_appendf(&line, " %10.10s", blob_str(&uuid));
  +	  blob_reset(&uuid);
  +      } else {
  +	  blob_appendf(&line, "unknown 0000000000");
  +      }
  +      db_finalize(&q);
  +      printf("%s\n", blob_str(&line));
  +      blob_reset(&fname);
  +      blob_reset(&line);
  +  } else if (find_option("print","p",0)) {
  +      Blob record;
  +      Blob fname;
  +      const char *zRevision = find_option("revision", "r", 1);
  +
  +      file_tree_name(g.argv[2], &fname, 1);
  +      if (zRevision) {
  +	  historical_version_of_file(zRevision, blob_str(&fname), &record);
  +      } else {
  +	  int rid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%B", &fname);
  +	  if( rid==0 ){
  +	      fossil_fatal("no history for file: %b", &fname);
  +	  }
  +	  content_get(rid, &record);
  +      }
  +      blob_write_to_file(&record, "-");
  +      blob_reset(&record);
  +      blob_reset(&fname);
  +  } else {
  +      Blob line;
  +      Stmt q;
  +      Blob fname;
  +      int rid;
  +      const char *zFilename;
  +      const char *zLimit;
  +      const char *zOffset;
  +      int iLimit, iOffset, iBrief;
   
  -  printf("History of %s\n", zFilename);
  -  while( db_step(&q)==SQLITE_ROW ){
  -    const char *zFileUuid = db_column_text(&q, 0);
  -    const char *zCiUuid = db_column_text(&q, 1);
  -    const char *zDate = db_column_text(&q, 2);
  -    const char *zCom = db_column_text(&q, 3);
  -    const char *zUser = db_column_text(&q, 4);
  -    char *zOut;
  -    printf("%s ", zDate);
  -    zOut = sqlite3_mprintf("[%.10s] %s (user: %s, artifact: [%.10s])",
  -                            zCiUuid, zCom, zUser, zFileUuid);
  -    comment_print(zOut, 11, 79);
  -    sqlite3_free(zOut);
  +      if (find_option("log","l",0)) { /* this is the default, no-op */
  +      }
  +      zLimit = find_option("limit",0,1);
  +      iLimit = zLimit ? atoi(zLimit) : -1;
  +      zOffset = find_option("offset",0,1);
  +      iOffset = zOffset ? atoi(zOffset) : 0;
  +      iBrief = (find_option("brief","b",0) == 0);
  +      if (g.argc != 3) {
  +	  usage("?-l|--log? ?-b|--brief? FILENAME");
  +      }
  +      file_tree_name(g.argv[2], &fname, 1);
  +      rid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%B", &fname);
  +      if( rid==0 ){
  +	  fossil_fatal("no history for file: %b", &fname);
  +      }
  +      zFilename = blob_str(&fname);
  +      db_prepare(&q,
  +		 "SELECT b.uuid, ci.uuid, date(event.mtime,'localtime'),"
  +		 "       coalesce(event.ecomment, event.comment),"
  +		 "       coalesce(event.euser, event.user)"
  +		 "  FROM mlink, blob b, event, blob ci"
  +		 " WHERE mlink.fnid=(SELECT fnid FROM filename WHERE name=%Q)"
  +		 "   AND b.rid=mlink.fid"
  +		 "   AND event.objid=mlink.mid"
  +		 "   AND event.objid=ci.rid"
  +		 " ORDER BY event.mtime DESC LIMIT %d OFFSET %d",
  +		 zFilename, iLimit, iOffset
  +	  );
  +      blob_zero(&line);
  +      if (iBrief) {
  +	  printf("History of %s\n", blob_str(&fname));
  +      }
  +      while( db_step(&q)==SQLITE_ROW ){
  +	  const char *zFileUuid = db_column_text(&q, 0);
  +	  const char *zCiUuid = db_column_text(&q,1);
  +	  const char *zDate = db_column_text(&q, 2);
  +	  const char *zCom = db_column_text(&q, 3);
  +	  const char *zUser = db_column_text(&q, 4);
  +	  char *zOut;
  +	  if (iBrief) {
  +	      printf("%s ", zDate);
  +	      zOut = sqlite3_mprintf("[%.10s] %s (user: %s, artifact: [%.10s])",
  +				     zCiUuid, zCom, zUser, zFileUuid);
  +	      comment_print(zOut, 11, 79);
  +	      sqlite3_free(zOut);
  +	  } else {
  +	      blob_reset(&line);
  +	      blob_appendf(&line, "%.10s ", zCiUuid);
  +	      blob_appendf(&line, "%.10s ", zDate);
  +	      blob_appendf(&line, "%8.8s ", zUser);
  +	      blob_appendf(&line,"%-40.40s\n", zCom );
  +	      comment_print(blob_str(&line), 0, 79);
  +	  }
  +      }
  +      db_finalize(&q);
  +      blob_reset(&fname);
     }
  -  db_finalize(&q);
  -  blob_reset(&dest);
  -}
  -
  +}
   
   /*
   ** WEBPAGE: finfo
   ** URL: /finfo?name=FILENAME
   **

  Index: src/update.c
  ===================================================================
  --- src/update.c
  +++ src/update.c
  @@ -46,21 +46,40 @@
   ** single leaf.  If there are a multiple leaves, the latest is used
   ** if the --latest flag is present.
   **
   ** This command is different from the "checkout" in that edits are
   ** not overwritten.  Edits are merged into the new version.
  +**
  +** If the "-n|--nochange" flag is specified, There is no auto-sync-pull,
  +** and no local files are modified.  But it will still go through the
  +** files and print the status of files that are not up-to-date.
  +**
  +** If the "-v|--verbose" flag is specified, then it prints the status
  +** of the unmodified and up-to-date files as well.
  +**
   */
   void update_cmd(void){
     int vid;              /* Current version */
     int tid=0;            /* Target version - version we are changing to */
     Stmt q;
     int latestFlag;       /* Pick the latest version if true */
     int forceFlag;        /* True force the update */
  +  int nochangeFlag;	/* Do not modify any files other than repository */
  +  int verboseFlag;	/* Print states of all files */
  +  const char *zFile;    /* Name of file to update */
  +  Blob fname;
   
     url_proxy_options();
     latestFlag = find_option("latest",0, 0)!=0;
     forceFlag = find_option("force","f",0)!=0;
  +  nochangeFlag = find_option("nochange","n",0)!= 0;
  +  verboseFlag = find_option("verbose","v",0)!= 0;
  +  zFile = find_option("file",0,1);
  +  if (zFile != 0) {
  +      file_tree_name(zFile, &fname, 1);
  +  }
  +
     if( g.argc!=3 && g.argc!=2 ){
       usage("?VERSION?");
     }
     db_must_be_within_tree();
     vid = db_lget_int("checkout", 0);
  @@ -78,11 +97,20 @@
       }
       if( !is_a_version(tid) ){
         fossil_fatal("not a version: %s", g.argv[2]);
       }
     }
  -  autosync(AUTOSYNC_PULL);
  +
  +  if(nochangeFlag == 0){
  +    /*
  +    ** Do an autosync pull prior to the update, if autosync is on and they
  +    ** did not want a specific version (i.e. another branch, a past revision).
  +    ** By not giving a specific version, they are asking for the latest, thus
  +    ** pull to get the latest, then update.
  +    */
  +    autosync(AUTOSYNC_PULL);
  +  }
   
     if( tid==0 ){
       compute_leaves(vid, 1);
       if( !latestFlag && db_int(0, "SELECT count(*) FROM leaves")>1 ){
         db_prepare(&q,
  @@ -98,13 +126,16 @@
       tid = db_int(0, "SELECT rid FROM leaves, event"
                       " WHERE event.objid=leaves.rid"
                       " ORDER BY event.mtime DESC");
     }
   
  -  db_begin_transaction();
  +  if (!nochangeFlag) {
  +      db_begin_transaction();
  +  }
     vfile_check_signature(vid);
  -  undo_begin();
  +  if (!nochangeFlag)
  +      undo_begin();
     load_vfile_from_rid(tid);
   
     /*
     ** The record.fn field is used to match files against each other.  The
     ** FV table contains one row for each each unique filename in
  @@ -151,10 +182,21 @@
         id, rid, chnged, fn
       );
     }
     db_finalize(&q);
   
  +  if (zFile != 0) {
  +      if (file_isdir(zFile) == 1) {
  +	  if (strlen(blob_str(&fname)) > 0) {
  +	      db_multi_exec("DELETE FROM fv WHERE fn NOT GLOB '%q/*'",
  +			    blob_str(&fname));
  +	  }
  +      } else {
  +	  db_multi_exec("DELETE FROM fv WHERE fn <> '%q'", blob_str(&fname));
  +      }
  +  }
  +
     db_prepare(&q,
       "SELECT fn, idv, ridv, idt, ridt, chnged FROM fv ORDER BY 1"
     );
     while( db_step(&q)==SQLITE_ROW ){
       const char *zName = db_column_text(&q, 0);
  @@ -170,70 +212,94 @@
         */
         printf("CONFLICT %s\n", zName);
       }else if( idt>0 && idv==0 ){
         /* File added in the target. */
         printf("ADD %s\n", zName);
  -      undo_save(zName);
  -      vfile_to_disk(0, idt, 0);
  +      if (!nochangeFlag) {
  +	  undo_save(zName);
  +	  vfile_to_disk(0, idt, 0);
  +      }
  +    }else if ( idt>0 && idv>0 && ridt == ridv){
  +      /* We have latest version */
  +	if (verboseFlag) {
  +	    if (chnged) {
  +		printf("EDITED %s\n", zName);
  +	    } else {
  +		printf("UNCHANGED %s\n", zName);
  +	    }
  +	}
       }else if( idt>0 && idv>0 && ridt!=ridv && chnged==0 ){
         /* The file is unedited.  Change it to the target version */
         printf("UPDATE %s\n", zName);
  -      undo_save(zName);
  -      vfile_to_disk(0, idt, 0);
  +      if (!nochangeFlag) {
  +	  undo_save(zName);
  +	  vfile_to_disk(0, idt, 0);
  +      }
       }else if( idt==0 && idv>0 ){
         if( ridv==0 ){
           /* Added in current checkout.  Continue to hold the file as
           ** as an addition */
  -        db_multi_exec("UPDATE vfile SET vid=%d WHERE id=%d", tid, idv);
  +	if (verboseFlag) {
  +	    printf("ADDED %s\n", zName);
  +	}
  +	if (!nochangeFlag) {
  +	    db_multi_exec("UPDATE vfile SET vid=%d WHERE id=%d", tid, idv);
  +	}
         }else if( chnged ){
           printf("CONFLICT %s\n", zName);
         }else{
           char *zFullPath;
           printf("REMOVE %s\n", zName);
  -        undo_save(zName);
  -        zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
  -        unlink(zFullPath);
  -        free(zFullPath);
  +	if (!nochangeFlag) {
  +	    undo_save(zName);
  +	    zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
  +	    unlink(zFullPath);
  +	    free(zFullPath);
  +	}
         }
       }else if( idt>0 && idv>0 && ridt!=ridv && chnged ){
         /* Merge the changes in the current tree into the target version */
  -      Blob e, r, t, v;
  -      int rc;
  -      char *zFullPath;
         printf("MERGE %s\n", zName);
  -      undo_save(zName);
  -      zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
  -      content_get(ridt, &t);
  -      content_get(ridv, &v);
  -      blob_zero(&e);
  -      blob_read_from_file(&e, zFullPath);
  -      rc = blob_merge(&v, &e, &t, &r);
  -      if( rc>=0 ){
  -        blob_write_to_file(&r, zFullPath);
  -        if( rc>0 ){
  -          printf("***** %d merge conflicts in %s\n", rc, zName);
  -        }
  -      }else{
  -        printf("***** Cannot merge binary file %s\n", zName);
  -      }
  -      free(zFullPath);
  -      blob_reset(&v);
  -      blob_reset(&e);
  -      blob_reset(&t);
  -      blob_reset(&r);
  -
  +      if (!nochangeFlag) {
  +	  Blob e, r, t, v;
  +	  int rc;
  +	  char *zFullPath;
  +
  +	  undo_save(zName);
  +	  zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
  +	  content_get(ridt, &t);
  +	  content_get(ridv, &v);
  +	  blob_zero(&e);
  +	  blob_read_from_file(&e, zFullPath);
  +	  rc = blob_merge(&v, &e, &t, &r);
  +	  if( rc>=0 ){
  +	      blob_write_to_file(&r, zFullPath);
  +	      if( rc>0 ){
  +		  printf("***** %d merge conflicts in %s\n", rc, zName);
  +	      }
  +	  }else{
  +	      printf("***** Cannot merge binary file %s\n", zName);
  +	  }
  +	  free(zFullPath);
  +	  blob_reset(&v);
  +	  blob_reset(&e);
  +	  blob_reset(&t);
  +	  blob_reset(&r);
  +      }
       }
     }
     db_finalize(&q);
   
     /*
     ** Clean up the mid and pid VFILE entries.  Then commit the changes.
     */
  -  db_multi_exec("DELETE FROM vfile WHERE vid!=%d", tid);
  -  manifest_to_disk(tid);
  -  db_lset_int("checkout", tid);
  -  db_end_transaction(0);
  +  if (!nochangeFlag) {
  +      db_multi_exec("DELETE FROM vfile WHERE vid!=%d", tid);
  +      manifest_to_disk(tid);
  +      db_lset_int("checkout", tid);
  +      db_end_transaction(0);
  +  }
   }
   
   
   /*
   ** Get the contents of a file within a given revision.
  </verbatim>


tkt_uuid: 816f1656883efb1c250a0a216e476d155261d101
type: Code_Defect
status: Fixed
resolution: Fixed
title: Changing a file to a directory causes cksum error on commit
comment:
  If there is a file in the check-out that is changed into a directory,
  then when fossil goes to commit the changes, fossil will not realize that
  the file has been changed into a directory and the commit will not work.

  It is not clear what the correct behavior here should be.  Perhaps there
  should simply be an error message explaining what has gone wrong.  Or
  perhaps files that have become directories should be dropped from the
  check-out, either with or without a warning.

  <hr><i>anonymous claiming to be Michael McDaniel added on 2009-12-16 20:31:50:</i><br>
  I like the idea of providing an informative error message.  And some way to complete the intent of the original command.  In the described case, 'fossil rm' the file name, and then 'fossil add X' where X is now_dirname/new_file1 now_dirname/new_file2 ...

  <hr><i>drh added on 2009-12-18 00:05:38:</i><br>
  Fixed by check-in [d861fe77fbeb26a31c79d5ce39c1eeb0242e506d]


tkt_uuid: 9ad1a5401ca1e5819b59bc84af963e259a55abec
type: Code_Defect
status: Fixed
resolution: Fixed
title: MISSING files are not handled gracefully
comment:
  When files are MISSING from the check-out, the commit command will fail.

  Possible fixes:

    1.  Fail early with a clear error message.

    2.  Automatically revert files that are MISSING

    3.  Automatically "rm" or "del" files from the check-out when they go MISSING

  <hr><i>anonymous added on 2009-12-16 17:28:38:</i><br>
  In my opinion, "commit" should fail early and clearly. "Update" should do an automatic revert (with a printed line notifying the fact), for all files that have not been "rm'ed" from fossil. This is nothing more than saying that the merge algorithms do the following:

  a) 2 ascii files: automatic merge

  b) 2 binary files: error

  c) 1 file in fossil and nothing in user checkout: automatic revert

  <hr><i>anonymous claiming to be Michael McDaniel added on 2009-12-16 20:20:11:</i><br>
  I disagree with automatic revert unless it requires an explicit flag.  

  I may have just reorganized my project, removing many files and subdirectories.  Perhaps I forgot to do the 'fossil rm'.  I would not want to watch all of the files and directories re-appear automatically.  I would prefer that a --force flag (or some flag) be required before (possibly many) files (and possibly subdirectories) are repopulated into a working directory.

  <hr><i>drh added on 2009-12-18 00:31:46:</i><br>
  Fixed by [76f169fca6c040496b14bd37a9e2c5e00f0a797b].


tkt_uuid: 1208d60f31b2978d365cdf4078aff818491d1969
type: Code_Defect
status: Closed
severity: Critical
foundin: 1.2
private_contact: 845336aee473fced1a585b0bef609c887b29c1bc
resolution: Not_A_Bug
title: Fossil databse currupt after opening it up in notepad
comment:
  After opening up the database in notepad and saving it I can no longer access the database.

  Steps:
  Open Database in notepad
  Save
  Close
  Open database with sqlite3, database is malformed

  <hr><i>rwilson added on 2009-12-17 19:06:05:</i><br>
  don't do that.

  <hr><i>drh added on 2009-12-17 20:36:09:</i><br>
  rwilson has it right:  Don't do that.  Notepad is corrupting the database
  file, probably by converting \n into \r\n.  


tkt_uuid: 6778fd3f4a480b4d4090513aca2a67684cc2ac54
type: Feature_Request
status: Fixed
severity: Important
foundin: d5695157d0
private_contact: d1be780ef9ceffda72380e69eea4d9301a123b75
resolution: Overcome_By_Events
title: Need a Branch Delete option
comment:
  Please add the ability to delete a branch using "fossil branch del xxx". This is great for experimental work where you create a branch to try out a feature, and then you simply delete it if things don't work out and you no longer have use for that branch.

  <hr><i>chi added on 2009-12-21 00:46:47:</i><br>
  What do you mean by "delete"? Only removing the branch tag? That would be doable with the <samp>tag cancel</samp> subcommand.

  Or do you want to remove all the checkins of that branch from the repository? This would be more difficult, was Fossil try hard never to forget anything already committed. Furthermore there would be the problem, that removed branches could come back by syncing with another repository that still has said branch. So this feature ought to have a very complex semantik I fear ...

  <hr><i>anonymous added on 2009-12-31 17:14:59:</i><br>
  From what I get, I believe the original reporter ask for something similar to what git has.

  git co -b crazyFeature
  hack, hack, hack...
  git ci -a
  hack, hack, hack...
  git ci -a

  If you see that the crazy feature did finish correctly, then you are set up:

  git co master; git merge crazyFeature; git branch -d crazyFeature

  If the crazy feature was, well... just crazy, and you just want to drop away that crazy code:

  git co master; git branch -d crazyFeature

  <hr><i>anonymous added on 2010-01-01 22:32:12:</i><br>
  That is exactly what I meant. Assume the sole purpose of a branch I am creating is to implement a single feature and merge it into the main trunk. So, the branch is really obsolete after the merge is complete and I simply want to clear up the versioning clutter created by it. It is a simple method to cluster a group of work into its own manageable entity which allows for extremely easy cleanup with no versioning clutter if I decide to abandon the effort.
  Part of the beauty of distributed scm is that a novice like me can hack away on an experimental branch, then only merge things in a clean and professional fashion and delete all the mess and clutter I created in my experimental branch. This is important to me since some times it takes me many times to finally work out all the bugs in a code snippet and I don't really care for the rest of the world to see this. So, if deleting a branch isn't feasible, then simply making a branch private and non-pullable is good enough (which might already be implemented by fossil).
  Thanks for all your help, you guys do wonderful work :)


  <hr><i>drh added on 2010-01-02 03:13:28:</i><br>
  To create a private branch, do this:

     fossil commit -private

  The resulting branch will never be synced to other repositories.


tkt_uuid: 2d2b158d75bc6cbe93f1bfb8bcb7275a53f890db
type: Build_Problem
status: Fixed
severity: Important
foundin: 20091218002951
private_contact: 7e0574216b3415ca8d96ec3a4f8855d2eb0a5369
resolution: Fixed
title: -include config.mak fails under OpenBSD
comment:
  When running make under OpenBSD you receive the below error.
  "Makefile", line 51: Need an operator
  Fatal errors encountered -- cannot continue

  Commenting out that line allows make to run.

  <hr><i>jeremy_c added on 2009-12-31 04:00:50:</i><br>
  What is the error? Is there an equivilent command in OpenBSD? The idea is the -include will include config.mak if it exists, otherwise, it ignores the line.

  <hr><i>jeremy_c added on 2009-12-31 04:44:27:</i><br>
  Also, I wonder if:

  <verbatim>
  touch config.mak
  </verbatim>

  causes the make command to function properly?

  <hr><i>anonymous added on 2009-12-31 21:59:29:</i><br>
  The error is this: "Makefile", line 51: Need an operator Fatal errors encountered -- cannot continue.
  Touching config.mak doesn't have any affect. It would seem OpenBSD's version of make doesn't understand the -include syntax. I am not familiar with it enough to suggest a solution. Thanks

  <hr><i>anonymous added on 2009-12-31 22:43:16:</i><br>
  Here is the solution I have come up with. It works with OpenBSD's make but doesn't look like it works with GNU make.

  <pre>
  .if exists(config.make)
          include config.mak
  .endif
  </pre>

  <hr><i>anonymous added on 2009-12-31 22:45:03:</i><br>
  Of course it should read.
  <pre>
  .if exists(config.mak)
          include config.mak
  .endif
  </pre>

  <hr><i>jeremy_c added on 2010-01-29 23:44:32:</i><br>
  Does this problem affect other BSD's such as Free and Net?

  <hr><i>anonymous added on 2010-02-04 18:29:33:</i><br>
  Yes, the current Makefile also fails under FreeBSD 7/8. I've simply gotten around this by commenting it out.

  <hr><i>anonymous added on 2010-02-17 19:51:13:</i><br>
  Also have this on AIX 5.3


tkt_uuid: 3713cea2fc6a1c0991bc9b9994b7adb57bfe268b
type: Code_Defect
status: Fixed
severity: Severe
foundin: 0f4f6c0325
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: failed assertion on revert *.*
comment:
  fossil attempted to revert the _FOSSIL_ file and failed an assertion.

  <pre>PS C:\rev\src\revscript> fossil revert *.*
  c:\rev\bin\fossil.exe: file not in repository: _FOSSIL_
  Assertion failed: (pBlob)->xRealloc==blobReallocMalloc || (pBlob)->xRealloc==blobReallocStatic, file blob_.c, line 170

  This application has requested the Runtime to terminate it in an unusual way.
  Please contact the application's support team for more information.<pre>

  <hr><i>drh added on 2009-12-20 02:58:59:</i><br>
  Uninitialized variable fixed by check-in [2255e4e3ba2ecbc64f20e10baa0666b92987d1d4].


tkt_uuid: 551270ceb48082eade082a38afa85de2a7071d0c
type: Feature_Request
status: Closed
severity: Minor
foundin: 4f24addea90ae08183c153b06f2fc72d4ebdd873
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Open
title: fossil commit to trigger the sending of email ?
comment:
  I can't find this feature is supported. if not please consider to implement the email sending triggering when there is a source code commit.

  <hr><i>eric added on 2009-12-22 16:24:28:</i><br>
  Not as simple as it sounds. Fossil is distributed, there may be many repositories syncing with one another as auto-sync, manual sync, and external control such as cron jobs. A sync is a two-way exchange of anonymous artifacts. Which repository should send emails, when, to whom, and via which mail server?


  <hr><i>rwilson added on 2009-12-22 18:05:26:</i><br>
  alternatively, you could monitor the RSS feed for commits.

  <hr><i>anonymous added on 2009-12-23 14:19:50:</i><br>
  Thanks for the reply, I am closing this feature request for now.


tkt_uuid: c66936089efa3ce51d5e2c16b438801876297d0c
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: 54cae7ffa6802845d32f2f8f5dfd89372dc6cbce
resolution: Open
title: timeline pagination
comment:
  maybe should call UI defect 

  typical paginator numbers are at the bottom of results.


  It is better to  put newer older links such as
  http://www.fossil-scm.org/index.html/timeline?n=20&b=2009-12-18+22%3A46%3A17
  under the results list .

  <hr /><i>anonymous added on 2010-11-01 20:59:21:</i><br />
  I think the best idea is to just duplicate the second level menu from the top on the bottom too.


tkt_uuid: 7ffe8a6cee913ff75b2636ef03dd425b5317c786
type: Feature_Request
status: Fixed
severity: Severe
private_contact: 4de91f48ceab788649292e850559a96cc7e17039
resolution: Fixed
title: User registration
comment:
  Having everyone outside the team to log in as anonymous is somewhat awkward. Some way for new users to register themselves would be generally nice.

  Presumably it's a fast edit for someone familiar with the code base. If it's a problem, I may prepare a patch by myself (but then some pointers would be welcome).

  <hr /><i>anonymous claiming to be lrem added on 2010-12-05 15:44:34:</i><br />
  Hi, I added this functionality in version 8533aa0b48 (merged with current trunk). Please pull from http://dev.lrem.net:8004/ - the new version is self-serving there.


tkt_uuid: aa8ba0fffadbba902fa669ab246e5601c2236843
type: Code_Defect
status: Fixed
severity: Minor
foundin: dcf7bf4455
private_contact: e994e632bebc786d634da6a33a8e43e978e4d2c4
resolution: Fixed
title: Crash on "fossil info 1234"
comment:
  I recently stumped across Fossil and got really interested by its concepts. In order to play with it, I installed Debian unstable's fossil ([dcf7bf4455] 2009-12-23 20:27:15 UTC), cloned the fossil repository, opened a working directory, cd'ed into that and issued "fossil info 1234" which resulted in the following crash:

  <verbatim>
  $ fossil info 1234
  uuid:         e7ff366ee10efd6005d3eadf64d42a9d1dafb194 
  *** glibc detected *** fossil: free(): invalid pointer: 0x080b7363 ***
  ======= Backtrace: =========
  /lib/i686/cmov/libc.so.6[0x40133824]
  /lib/i686/cmov/libc.so.6[0x401350b3]
  /lib/i686/cmov/libc.so.6(cfree+0x6d)[0x401380ad]
  fossil[0x806275f]
  fossil[0x8062917]
  fossil[0x80652b4]
  /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0x400deb55]
  fossil[0x804a471]
  ======= Memory map: ========
  ...
  </verbatim>

  More can be supplied on request.

  I built a local version [06b964a0cf] which shows the same problem.

  Note: The problem only occurs when trying to (invalidly) specifying an artefact id with 2 to 4 digits.

  Greetings,
  Stefan

  <hr><i>drh added on 2009-12-27 18:20:41:</i><br>
  Fixed in check-in [9d3fe01ae333adcea94acb637f8a8a5f40acb280].


tkt_uuid: a09798ba9e285df66543f60344e7109fe6ac125c
type: Code_Defect
status: Fixed
foundin: c5e94568c7
resolution: Fixed
title: Bug in ipPrefix (Check-in [86cbb69af2])?
comment:
  You sure that 

  return mprintf("%.*s", j, zIP);

  is correct?  It's been a long time having programmed in C, but I think you should use i instead of j (j will be 2 at most).

  <hr><i>rwilson added on 2009-12-29 18:16:42:</i><br>
  i think you are correct.  it should be i.  as is, this code will always return the first two chars of the ip address.

  <pre>
  static char *ipPrefix(const char *zIP){
    int i, j;
    for(i=j=0; zIP[i]; i++){
      if( zIP[i]=='.' ){
        j++;
        if( j==2 ) break;
      }
    }
    return mprintf("%.*s", j, zIP);
  }
  </pre>

  <hr><i>drh added on 2009-12-29 20:53:21:</i><br>
  See check-in [5d16ca43f192].


tkt_uuid: be1285190bb9ef3ea2c2d7db41af5fb47d4d5c37
type: Feature_Request
status: Open
severity: Minor
foundin: Fossil-86cbb69af2
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Open
title: Diable using UTC time zone as default
comment:
  This is just an suggestion to uncheck using UTC timezone by default installation.
  I installed fossil many times and this is one of todo tasks for my fossil instance.

  Please uncheck the using UTC timezone, so I can see the changes in local timezone.

  of course this just an opinion from a person don't think in UTC time zone.

  <hr><i>jeremy_c added on 2009-12-31 04:49:19:</i><br>
  I think that either default would cause equal confusion. Many projects that use fossil across timezones (most open source apps) would want the UTC time reporting, i.e. a common time across all timezones. Most know their local timezone offset, albeit, if everyone is in one timezone it's an unnecessary mental translation, thus the option.

  <hr><i>anonymous added on 2009-12-31 14:21:36:</i><br>
  How about displaying both local and UTC time by default ?

  <hr><i>jeremy_c added on 2009-12-31 15:18:16:</i><br>
  I think before going further, some thought should be put into how date/time values are actually displayed. For instance, the timeline is only one of many places a date is shown. To solve this problem correctly, we should store the timezone offset for each user, then let the user decide if *all* date and time values should be displayed in UTC or in their local timezone. As it stands now it's either UTC or the server's timezone, which is only of value if you happen to be in the same timezone as the server you are accessing.

  This change, however, is not a 5 minute change.


tkt_uuid: 375e5703329a743339c3b6399d7c41a8c98c7a24
type: Code_Defect
status: Fixed
severity: Critical
foundin: 71ad9b62a7
private_contact: 7e0574216b3415ca8d96ec3a4f8855d2eb0a5369
resolution: Fixed
title: fossil: bad object id: 0 on up
comment:
  Just ran fossil pull and then tried to run fossil up with fossil version [71ad9b62a7] 2009-12-31 14:59:03 UTC on the fossil repository and received this error "fossil: bad object id: 0 on up". I ran fossil rebuild and still get the same error.

  <hr><i>jeremy_c added on 2010-01-01 01:31:42:</i><br>
  Does this message still occur? It appeared for me on the fossil repo (none of my own) until I made the last commit. It no longer appears.

  <hr><i>jeremy_c added on 2010-01-01 01:32:21:</i><br>
  Oh, I should say, my last commit had nothing to do with this error message, I just noticed that it no longer appears for me making me think the commit caused some type of database cleanup fixing the problem.

  <hr><i>anonymous added on 2010-01-01 01:37:09:</i><br>
  I'm still getting it on my already cloned repo. If I do a fresh clone, fossil up works.

  <hr><i>anonymous added on 2010-01-11 06:40:35:</i><br>
  I'm also getting it all of a sudden

  <hr><i>anonymous added on 2010-01-11 06:44:45:</i><br>
  OK: I just did a "fossil close" and then "fossil open", and that bug is gone; so I assume there is something wrong in the _FOSSIL_ database.

  <hr /><i>anonymous added on 2010-10-23 23:07:21:</i><br />
  any update on this?  it just occured to me with

  This is fossil version [b48f78964e] 2010-09-18 15:51:43 UTC

  on the fossil repo.

  <hr /><i>drh added on 2010-10-24 22:55:25:</i><br />
  No updates.  An easy workaround is to do one of:

  <pre>
     fossil update --latest
     fossil update trunk
     fossil update <i>version-number</i>
  </pre>

  Instead of just:

  <pre>
     fossil update
  </pre>

  The problem is here that fossil is having trouble figuring out what version
  it needs to update to.  If you give it a hint, it will normally keep going
  without trouble.

  It would help to have a reproducible test case.

  <hr /><i>anonymous added on 2010-10-25 20:09:02:</i><br />
  Could this be a result of fossil deciding that an artifact already exists locally because it is in a cluster? If you hit this case, please do a second clone and see if it still shows the problem. If it doesn't, compare the output of

      sqlite3 $repo 'select uuid from blob order by uuid'

  for both repo files.

  <hr /><i>anonymous claiming to be viric added on 2010-11-24 22:18:21:</i><br />
  An easy reproducible test case is doing "fossil update" while being in a closed branch.

  <hr /><i>drh added on 2010-11-25 01:52:57:</i><br />
  Fixed for the case of a "fossil update" on a closed branch.  If other
  cases are found, please reopen the ticket with an explanation of the
  next case.


tkt_uuid: ac8dcd394ce582b5987680fc9366fa3cda6f1da9
type: Feature_Request
status: Open
severity: Important
private_contact: 40155f5ac139df7162eef41489efaf77d0bda7b2
title: equivalent to `darcs add` or `git add -p`
comment:
  I'm missing a feature to add only parts of a file, not a whole file at once.
  This is important for me to keep commits focused around a specific topic.

  Current workflow in fossil:
  <verbatim>
  edit some-file.rb
  # hacking away, i have an epiphany that solves most of the
  # problems on earth, so i implement it before i forget it again.

  cp some-file.rb some-file.rb.bak
  # I noticed that I actually solved two different problems, so
  # I would like to announce them separately, but how?
  # Right, by making a backup first...

  edit some-file.rb
  # Now I removed one of the features, leaving only one in the file.

  fossil add some-file.rb
  fossil commit -m "Add the feed_the_world method"
  # well, you know what that is.

  mv some-file.txt.bak some-file.rb
  # and finally I move the backup back in place so the second
  # feature can be added.

  fossil add some-file.rb
  fossil commit -m "Add the cure_aids method"
  # and again commit that.
  </verbatim>

  What I'd like to do instead, in case you are not familiar with git, is along the lines of the article here: [http://tomayko.com/writings/the-thing-about-git].
  I didn't write it, but it pretty much expresses what I feel is missing in order for me to consider daily use of fossil.
  The description above is only about one file, now imagine having to do that over 5 files (average number of files in my commits).

  Thank you, I'm really impressed otherwise.
  Maybe there is a feature that I haven't found in the documentation yet that helps with this?


tkt_uuid: 23d314856c2786c518a79aa8b3fe647731dd2015
type: Feature_Request
status: Open
severity: Important
foundin: 71ad9b62a7
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
title: fossil rm dir1/dir2
comment:
  fossil support recursive adding of directory tree by following command.

  <pre>
  fossil add topdir
  </pre>

  But I can't undo above command by 
  <pre>
  fossil rm topdir
  </pre>


tkt_uuid: c926e3151ac2b1f0b1df5f21d36e9af8b6e4aff1
type: Feature_Request
status: Closed
severity: Important
foundin: 71ad9b62a7
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Not_A_Bug
title: fossil exe auto update
comment:
  fossil version change so often. It is getting harder to keep up.

  Following steps 
    *  download
    *  unpack
    *  configure makefile
    *  compile 
    *  install 

  This is time consuming  and  really not needed for people only need the new version of binary.

  Can we design a directory layout for pre-compiled binary in "binary/os/version" in fossil source tree.

  This way "fossil sync -R myclone.fossil" can always bring me the latest  binary for a particular version of OS/Version.

  or "fossil selfupgrade" command to automate the binary upgrade.

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-01-01 20:41:53:</i><br>
  http://www.fossil-scm.org/download.html

  You could think of the executable downloads at the above link as "release" code.

  And not download a new version every time the source changes.


  <hr><i>drh added on 2010-01-01 21:20:31:</i><br>
  Previous comment from Michael McDaniel is correct.  Closing this ticket.


tkt_uuid: 7ac3c7ba1b11ea219348dd956e71ff8e9ddc967d
type: Feature_Request
status: Open
severity: Minor
foundin: latest
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
title: who are cloning me ?
comment:
  This is my another fossil feature request

  Is it possible to add the displaying of hosts/user in Admin/stat section to show who are cloning a main fossil site ?


tkt_uuid: 07a38f3809825959cbd243199054ede18a26926a
type: Feature_Request
status: Open
severity: Important
foundin: 71ad9b62a7
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
title: chekout only sub source tree
comment:
  This feature request is becoming important to me since I  am archiving huge (ex 10G) directory source tree.

  On source code building machine that only need a sub directory to be checkout(ex, 1G), getting every things(10G) is really awkward.


tkt_uuid: 0669e179236e5f952c2be1b001ddada0f858b892
type: Feature_Request
status: Open
severity: Important
foundin: 71ad9b62a7
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
title: Support "fossil co http://myfossil.test.net/srcdir/subdir2"
comment:
  For my understanding, I need to clone the mail fossil src site first to get a local fossil sqlite database(mytest.fsl) and then open  up mytest.fsl into a local source directory tree. 

  For a big fossil site at the size of 10G, it will quickly used up the disk space, since clone part take 10G and check out take another 10G.

  I am hoping fossil can provide a better way to resolve above challenge.

  This request is purely from end user point of view.


tkt_uuid: d9dc59f19a3eda629d5b1eac08cd92aead707d51
type: Feature_Request
status: Closed
severity: Important
foundin: 5d16ca43f1
resolution: Rejected
title: fossil wiki export to latex
comment:
  I classify this feature request as important because it lay the foundation for fossil wiki as the high quality publishing documentation source.

  There is html2latex software in C already(See R1). Adding extra fossil wiki syntax into html2latex.c looks like feasible project/request.

  And in R2,following command is listed as a TODO.

  <pre>
  fossil wiki export -u ARTIFACT WikiName FILE
  </pre>

  I am hoping to see 

  <pre>
  fossil wiki export -u ARTIFACT -t latex WikiName FILE.latex
  </pre>


  References:

    *  R1: http://www.tex.ac.uk/tex-archive/support/html2latex/html2latex.c
    *  R2: http://www.fossil-scm.org/index.html/doc/tip/www/reference.wiki#setting


tkt_uuid: 47f91c744367fce55b323348fc58d61051bda46f
type: Code_Defect
status: Closed
severity: Minor
foundin: 5d16ca43f1
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Fixed
title: support "fossil user list fossil.fsl"
comment:
  This feature will help fossil administration on server side where a collection of fossil db reside at same directory.

  <hr /><i>dmitry added on 2011-09-08 19:16:33 UTC:</i><br />
  Use 'fossil user list -R repository.fossil'.


tkt_uuid: 3caef588e3cc1724a8a8426e5964a0088d35b15b
type: Build_Problem
status: Closed
severity: Cosmetic
foundin: dddc514053
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: External_Bug
title: dereferencing type-punned pointer in sqlite3.c
comment:
  i know this is an sqlite issue, but i can't create tickets on sqlite.org, neither is the amaglamation in the sqlite source tree.  when i build fossil i get the following warning:

  <pre>
  gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include  -I. -I./src -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c ./src/sqlite3.c -o sqlite3.o
  ./src/sqlite3.c: In function `getLastErrorMsg':
  ./src/sqlite3.c:28450: warning: dereferencing type-punned pointer will break strict-aliasing rules
  </pre>

  the warning is innocuous, but this patch resolves it.  i'm pretty sure the code is correct, but i could use a code review.  hopefully, i didn't make a noob mistake.

  <pre>
  --- sqlite3.c
  +++ sqlite3.c
  @@ -28438,25 +28438,29 @@
     ** buffer, excluding the terminating null char.
     */
     DWORD error = GetLastError();
     DWORD dwLen = 0;
     char *zOut = 0;
  +  union {
  +    WCHAR** pzwc;
  +    LPWSTR lpws;
  +  } wu;
  </pre>

  <pre>
     if( isNT() ){
  -    WCHAR *zTempWide = NULL;
  +    *wu.pzwc = NULL;
       dwLen = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                              NULL,
                              error,
                              0,
  -                           (LPWSTR) &zTempWide,
  +                           wu.lpws,
                              0,
                              0);
       if( dwLen > 0 ){
         /* allocate a buffer and convert to UTF8 */
  -      zOut = unicodeToUtf8(zTempWide);
  +      zOut = unicodeToUtf8(*wu.pzwc);
         /* free the system buffer allocated by FormatMessage */
  -      LocalFree(zTempWide);
  +      LocalFree(*wu.pzwc);
       }
   /* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
   ** Since the ASCII version of these Windows API do not exist for WINCE,
   ** it's important to not reference them for WINCE builds.
   */
  </pre>

  <hr /><i>dmitry added on 2011-09-08 19:18:24 UTC:</i><br />
  SQLite issue, indeed.


tkt_uuid: 1aaadb4f0dbb57842bd892e62c3256d0d3057259
type: Incident
status: Open
severity: Important
foundin: [71ad9b62a7
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Open
title: fossil: SQL error: out of memory
comment:
  Is this a bug or fossil reach its limit on size of source tree ?
  the machine has only 512M of RAM. The iso directory is 22G in size.

  <pre>
  root@600m:/pub# fossil commit -m "add iso" -nosign
  fossil: SQL error: out of memory

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  root@600m:/pub# du -ks iso
  22293214        iso
  root@600m:/pub# ^C
  root@600m:/pub# fossil version
  This is fossil version [71ad9b62a7] 2009-12-31 14:59:03 UTC
  root@600m:/pub# cat /etc/release
                         OpenSolaris Development snv_130 X86
             Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                          Use is subject to license terms.
                             Assembled 18 December 2009
  root@600m:/pub#
  </pre>

  <hr><i>anonymous claiming to be ge added on 2010-01-07 19:11:27:</i><br>
  Fossil (and Git and Mercurial) don't do too well as a repository for huge binary blobs. You probably either ran out of address space or out of swap space. SQLite also has a limit on the blob size it will store.



  <hr><i>bharder added on 2010-01-07 22:29:04:</i><br>
  SQLite itself should not be limiting factor in this case: [http://www.sqlite.org/limits.html|SQLite limits].

  <hr><i>bharder added on 2010-01-07 22:34:06:</i><br>
  Oops... I take that back... the total # bytes for this commit is 22828251136 (22 billion, 8 hundred million...). More than 1 billion default sqlite3 limit.

  <hr><i>anonymous added on 2010-01-26 22:54:40:</i><br>
  still getting "out of memory" and less verbosed (no  more "SQL error:" ).
  <pre>
  root@600m:/pub# ls -l *.fsl
  -rw-r--r-- 1 root root 43008 2010-01-26 08:56 iso.fsl
  root@600m:/pub#fossil add iso
  <snip>
  ADDED  iso/mi-vt.py.bz2
  ADDED  iso/pdf-letter-2.5.zip
  ADDED  iso/qemu-0.9.0-windows.zip
  ADDED  iso/qemu-20070827-windows.zip
  ADDED  iso/sol-10-u5-doc-ga-dvd-iso.zip
  ADDED  iso/ubuntu-server-6.06.2-i386.zip.torrent
  ADDED  iso/zenoss-2.1.2-x86.vmware.zip
  root@600m:/pub# fossil commit -m "add iso" -nosign
  out of memory
  root@600m:/pub# fossil version;date
  This is fossil version [b8d812efb9] 2010-01-26 14:38:12 UTC
  Tuesday, January 26, 2010  4:50:04 PM CST
  root@600m:/pub#
  </pre>


tkt_uuid: 5483de2ea6bb205e502ca36fa99db2b33d8abbb5
type: Code_Defect
status: Closed
severity: Minor
foundin: [def89b9393]
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: Changing to non default skin causes database error
comment:
  Attempt to change skin on local clone of fossil or sqlite repository in "Skins" section (e.g. http://localhost:8081/setup_skin) to some other than default one with Fossil version [def89b9393] 2010-01-01 01:30:14 causes following page to be displayed. Rebuilding repository does not help.

  <verbatim>
  Database Error

  near "$baseurl": syntax error
  REPLACE INTO config VALUES('css','/* General settings for the entire page */
  body {
    margin: 0ex 1ex;
    padding: 0px;
    background-color: white;
    font-family: "sans serif";
  }

  /* The project logo in the upper left-hand corner of each page */
  div.logo {
    display: table-row;
    text-align: center;
    /* vertical-align: bottom;*/
    font-size: 2em;
    font-weight: bold;
    background-color: #707070;
    color: #ffffff;
  }

  /* The page title centered at the top of each page */
  div.title {
    display: table-cell;
    font-size: 1.5em;
    font-weight: bold;
    text-align: left;
    padding: 0 0 0 10px;
    color: #404040;
    vertical-align: bottom;
    width: 100%;
  }

  /* The login status message in the top right-hand corner */
  div.status {
    display: table-cell;
    text-align: right;
    vertical-align: bottom;
    color: #404040;
    font-size: 0.8em;
    font-weight: bold;
  }

  /* The header across the top of the page */
  div.header {
    display: table;
    width: 100%;
  }

  /* The main menu bar that appears at the top of the page beneath
  ** the header */
  div.mainmenu {
    padding: 5px 10px 5px 10px;
    font-size: 0.9em;
    font-weight: bold;
    text-align: center;
    letter-spacing: 1px;
    background-color: #404040;
    color: white;
  }

  /* The submenu bar that *sometimes* appears below the main menu */
  div.submenu {
    padding: 3px 10px 3px 0px;
    font-size: 0.9em;
    text-align: center;
    background-color: #606060;
    color: white;
  }
  div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
    padding: 3px 10px 3px 10px;
    color: white;
    text-decoration: none;
  }
  div.mainmenu a:hover, div.submenu a:hover {
    color: #404040;
    background-color: white;
  }

  /* All page content from the bottom of the menu or submenu down to
  ** the footer */
  div.content {
    padding: 0ex 0ex 0ex 0ex;
  }
  /* Hyperlink colors */
  div.content a { color: #604000; }
  div.content a:link { color: #604000;}
  div.content a:visited { color: #600000; }

  /* Some pages have section dividers */
  div.section {
    margin-bottom: 0px;
    margin-top: 1em;
    padding: 1px 1px 1px 1px;
    font-size: 1.2em;
    font-weight: bold;
    background-color: #404040;
    color: white;
  }

  /* The "Date" that occurs on the left hand side of timelines */
  div.divider {
    background: #a0a0a0;
    border: 2px #505050 solid;
    font-size: 1em; font-weight: normal;
    padding: .25em;
    margin: .2em 0 .2em 0;
    float: left;
    clear: left;
  }

  /* The footer at the very bottom of the page */
  div.footer {
    font-size: 0.8em;
    margin-top: 12px;
    padding: 5px 10px 5px 10px;
    text-align: right;
    background-color: #404040;
    color: white;
  }

  /* The label/value pairs on (for example) the vinfo page */
  table.label-value th {
    vertical-align: top;
    text-align: right;
    padding: 0.2ex 2ex;
  }');
  REPLACE INTO config VALUES('header','<html>
  <head>
  <title>$<project_name>: $<title></title>
  <link rel="alternate" type="application/rss+xml" title="RSS Feed"
        href="$baseurl/timeline.rss">
  <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
        media="screen">
  </head>
  <body>
  <div class="header">
    <div class="logo">
      <nobr>$<project_name></nobr>
    </div>
  </div>
  <div class="header">
    <div class="title">$<title></div>
    <div class="status"><nobr><th1>
       if {[info exists login]} {
         puts "Logged in as $login"
       } else {
         puts "Not logged in"
       }
    </th1></nobr></div>
  </div>
  <div class="mainmenu"><th1>
  html "<a href=''$baseurl$index_page''>Home</a> "
  if {[anycap jor]} {
    html "<a href='$baseurl/timeline'>Timeline</a> "
  }
  if {[hascap oh]} {
    html "<a href=''$baseurl/dir''>Files</a> "
  }
  if {[hascap o]} {
    html "<a href=''$baseurl/leaves''>Leaves</a> "
    html "<a href=''$baseurl/brlist''>Branches</a> "
    html "<a href=''$baseurl/taglist''>Tags</a> "
  }
  if {[hascap r]} {
    html "<a href=''$baseurl/reportlist''>Tickets</a> "
  }
  if {[hascap j]} {
    html "<a href=''$baseurl/wiki''>Wiki</a> "
  }
  if {[hascap s]} {
    html "<a href=''$baseurl/setup''>Admin</a> "
  } elseif {[hascap a]} {
    html "<a href=''$baseurl/setup_ulist''>Users</a> "
  }
  if {[info exists login]} {
    html "<a href=''$baseurl/login''>Logout</a> "
  } else {
    html "<a href=''$baseurl/login''>Login</a> "
  }
  </th1></div>
  ');
  REPLACE INTO config VALUES('footer','<div class="footer">
  Fossil version $manifest_version $manifest_date
  </div>
  </body></html>
  ');

  If you have recently updated your fossil executable, you might need to run "fossil all rebuild" to bring the repository schemas up to date. 
  </verbatim>

  <hr><i>jeremy_c added on 2010-01-01 19:51:26:</i><br>
  [af25881866] fixes this bug, thanks for the report. Please reopen the ticket if you still have issues but I came across the same problem when testing your bug and after the fix I can switch to any skin.

  <hr><i>anonymous claiming to be PF added on 2010-01-01 20:06:39:</i><br>
  Thanks for prompt fix. Fossil version [af25881866] 2010-01-01 19:49:00 behaves nicely.

  <hr><i>anonymous added on 2010-01-01 20:17:18:</i><br>
  Maybe I was to optimistic at the moment. Skins are changeable, but it somehow messes up the menu system. So if I switch to Default skin, I get on Timeline menu item link to "http://localhost:8080/setup_skin". If I click on some other menu item (e.g. Tickets) I get Timeline menu item "redefined" to point at http://localhost:8080/reportlist and so on.

  Thanks. 

  <hr><i>jeremy_c added on 2010-01-01 21:35:44:</i><br>
  Ok, I see what happened. During the last revision of the timeline mods, the timeline link was copy/pasted from one source. The skins.c file for some reason uses single quotes around URL's. The skins.c file uses two single quotes around the URL's. One doesn't work in the other.

  So... I tested all skins and they seem to be working for me. Can you please confirm? Again, open the ticket if it's not.

  I also fixed the Black and White theme as the timeline copy/paste didn't include the li elements.

  <hr><i>anonymous added on 2010-01-01 21:45:37:</i><br>
  Thanks. 

  Fossil version [5efb82a71a] 2010-01-01 21:33:46 works as expected for me.

  <hr><i>jeremy_c added on 2010-01-01 21:52:14:</i><br>
  BTW... It uses two single quotes because it's inserted into the db, unlike the default skin in skin.c...

  <hr><i>jeremy_c added on 2010-01-01 21:53:05:</i><br>
  er, in style.c... skin.c uses two single quotes for SQL quote escaping. I'll get it right some day!


tkt_uuid: 9195b1e5f38f15acf19b6e629fbacb122665dabc
type: Feature_Request
status: Closed
severity: Minor
foundin: 5d16ca43f1
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Fixed
title: Support "fossil new myfossil.fsl user=root password=test1234"
comment:
  Beside the auto generated account/password, please add user specified account/password when creating a new fossil repository.

  <hr><i>jeremy_c added on 2010-01-02 21:08:55:</i><br>
  My preference would be if the user/password were supplied at the command line then the auto-user would not be created. This is a good idea, not once has my "Windows" user name been what I wanted to really use.

  <hr><i>jeremy_c added on 2010-01-26 14:41:14:</i><br>
  I implemented --admin-user|-A when creating a new repo file. I did not implement supplying the password on the command line. That can be changed easily enough in the ui or via fossil user password USERNAME PASSWORD. Setting the default user could not be altered before history was already created for that user.

  As for adding a user in addition to the default admin user, you can do that after the repo is created via the ui or fossil user new ?USERNAME? ?CONTACT-INFO? ?PASSWORD?. Therefore, I am going to close this ticket.

  <hr><i>jeremy_c added on 2010-01-26 14:41:36:</i><br>
  Fixed in [b8d812efb9]

  <hr><i>anonymous added on 2010-01-26 15:06:47:</i><br>
  Thanks for fixing on account part of request, following log is a test.

  <pre>
  root@600m:/pub/fossil.checkout/fossile.clone# fossil new t.fsl -A myadmin
  project-id: ce14a6df0274e3b938efdd5f63bf806aba3768f4
  server-id:  225fdc67e6dc811e7db0d1084c44fde38e3ddbf7
  admin-user: myadmin (initial password is "e037e5")
  root@600m:/pub/fossil.checkout/fossile.clone#
  </pre>

  Is there a technical reason the password can't be manually specified as well ?


  <hr><i>anonymous added on 2010-01-26 15:12:41:</i><br>
  I am closing this ticket, since password change can be done easily by following command.
  <pre>
  root@600m:/pub/fossil.checkout/fossile.clone# fossil user password myadmin test -R t.fsl
  root@600m:/pub/fossil.checkout/fossile.clone#
  </pre>


tkt_uuid: 6248d17d6f3c05ac41c8916460671cd81a2fad34
type: Documentation
status: Open
severity: Minor
foundin: Fossil version [5d16ca43f1] 2009-12-29 20:52:27
private_contact: 90684e978ba36045b6a191a3da1a1b2845dba012
resolution: Open
title: file not found
comment:
  clicking on the "fossil rsstats" link in the reference page gets a "page not found" error.

  No such document: tip/www/cmd_rstats.wiki

  <hr><i>eric added on 2010-01-03 11:22:56:</i><br>
  Link was added in [10db583adc] - it appears the target file has never existed.

  <hr><i>eric added on 2010-01-12 10:41:54:</i><br>
  Actually there are 43 such links on the reference page, but only 15 of the linked files exist. For many of them there would be nothing to add beyond what the summary on the reference page says. Is the fact that the link to the reference page on the Home page says it is unfinished sufficient, or should someone do a cleanup?

  <hr><i>anonymous claiming to be Kevin Kinnell added on 2010-06-28 21:07:31:</i><br>
  I never put in a link to the file unless I had a file to link to, to my knowledge.  I'll have to get back a login and see what I can do about cleaning up the cli pages.


tkt_uuid: 5fb944026d159060db71329195bf7d6d3d12d124
type: Code_Defect
status: Open
severity: Minor
foundin: [5efb82a71a] 2010-01-01
private_contact: 95665098df34cbafbd9a88d24c46534ed982e536
title: Inconsistent diff output.
comment:
  $ fossil add hello.txt<br>
  ADDED  hello.txt<br>
  <br>
  $ fossil commit -m 'added hello.txt'<br>
  New_Version: b190756273e71d2d4f13b88b55b18ad394bb3153<br>
  <br>
  # No output because hello.txt has not changed.<br>
  $ fossil diff<br>
  <br>
  # Some output when hello.txt is specified by itself making<br>
  # it hard to know in general if there is a difference or not.<br>
  $ fossil diff hello.txt <br>
  --- hello.txt<br>
  +++ hello.txt<br>
  <br>
  # Back to no output when multiple files are specified.<br>
  $ fossil diff hello.txt hello.txt <br>
  <br>


tkt_uuid: b074a7588bacc7cc7970f9348aa8118c6b823b7a
type: Incident
status: Open
severity: Minor
foundin: d2bec5a1d4
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Open
title: fossil: not a valid repository: /pub/fossil-db/big.fsl
comment:
  This is a test case to have fossil host big source tree.
  fossil commit went fine but I can't close big.fsl around 4G size on a Solaris 10 x86.

  <pre>
  -bash-3.00# fossil commit -m "add  new test data" -nosign
  New_Version: 69107d785d63e9b8b0436d1aad93bde8a99182b8

  -bash-3.00#
  -bash-3.00# fossil close
  fossil: not a valid repository: /pub/fossil-db/big.fsl
  -bash-3.00# ls -lrt
  total 2296
  drwx------   2 root     root        8192 Nov 24 08:13 lost+found
  -rw-r--r--   1 root     root          54 Nov 24 09:08 get.ksh
  drwxrwxr-x   5 6244     101          512 Dec 21 15:47 all
  -rw-r--r--   1 root     root      407850 Jan  4 13:55 manifest
  -rw-r--r--   1 root     root          41 Jan  4 13:55 manifest.uuid
  -rw-r--r--   1 root     root      734208 Jan  4 14:12 _FOSSIL_
  drwxr-xr-x   2 root     root         512 Jan  4 14:12 fossil-db
  -bash-3.00# ls -l fossil-db/
  total 8793056
  -rw-r--r--   1 root     root     4499829760 Jan  4 14:12 big.fsl
  -bash-3.00# fossil version
  This is fossil version [d2bec5a1d4] 2010-01-04 13:53:32 UTC
  -bash-3.00#
  </pre>

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-01-04 20:34:43:</i><br>
  Is the Solaris filesystem configured to handle 4GB or greater file sizes ?

  <hr><i>anonymous added on 2010-01-04 21:08:28:</i><br>
  If you look at my original posting,  fossil-db/big.fsl is around 4G in size.

  It got create by "fossil new fossil-db/big.fsl" and later grew into 4G by "fossil add dir" and "fossil commit -m "*" -nosign" commands.

  So the question should be (to me) why fossil can't close a big *.fsl file.


  <pre>

  -bash-3.00# cat /etc/release
                         Solaris 10 10/09 s10x_u8wos_08a X86
             Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                          Use is subject to license terms.
                             Assembled 16 September 2009
  -bash-3.00#

  </pre>

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-01-04 22:58:18:</i><br>
  I sit corrected - the existing file is already greater than 4GB hence, of course, the filesystem can handle a 4GB file.


tkt_uuid: ffec86070988fda70aeabd3a100238766b766627
type: Documentation
status: Fixed
severity: Cosmetic
foundin: d2bec5a1d4
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Fixed
title: trivial html typos
comment:
  patch fixing trivial html typos in http://cvs.bcl.hamilton.ie:8080/vinfo/053624c3c55863f5f3e1e93b8bfac05bd3629604


tkt_uuid: e77e876caf316cc514df51bb6120361aabcb9057
type: Documentation
status: Fixed
severity: Cosmetic
foundin: a6303982b0
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Fixed
title: wiki typos
comment:
  typos in wiki fixed http://cvs.bcl.hamilton.ie:8080/vinfo/0506ef6fec218bf1a43dbc0b7e735d5add24b739

  <hr><i>anonymous added on 2010-01-14 14:26:59:</i><br>
  SQL is a <i>percular</i> programming language<br>
  should be <br>
  SQL is a <i>peculiar</i> programming language<br>
  (percular ->peculiar)

  <hr><i>drh added on 2010-01-14 15:38:00:</i><br>
  The new typo is also now fixed.

  In the future, please open a new ticket rather than appending to an old
  ticket that has already been marked fixed.  Tnx.


tkt_uuid: 3cacfcb6fae33169db0f86e4a2cf797b46dc94c9
type: Incident
status: Closed
priority: Medium
severity: Important
foundin: 4f24addea9
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Not_A_Bug
title: fossil: SQL error: string or blob too big
comment:
  What is the size limit of a blob ? I got following error when trying to commit a tree with many tar.gz files under the src tree.

  <pre>
  [root] fossil commit -m "add basic pkgs" -nosign


  fossil: SQL error: string or blob too big

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  [root]
  </pre>

  <hr><i>anonymous added on 2010-01-06 13:47:01:</i><br>
  Is there a way to see which file causing the error message ?

  <hr><i>anonymous added on 2010-01-06 14:04:22:</i><br>
  a minicpan tar ball was the offending file(1.1G).

  <pre>
  bash-2.05$ ls -l pub/8.3/perl-5.10.1/src/minicpan-12152009.tgz
  -rw-r--r--   1 webadm   other      1118878373 Dec 15 01:18 pub/8.3/perl-5.10.1/src/minicpan-12152009.tgz
  bash-2.05$ 
  </pre>

  <hr><i>drh added on 2010-01-06 14:17:19:</i><br>
  BLOBs are limited to 1GiB.


tkt_uuid: a410962b8eaf937cf0471c8e31b99fbdd3692931
type: Code_Defect
status: Open
severity: Minor
foundin: [cd26978357] 2010-01-06
private_contact: 95665098df34cbafbd9a88d24c46534ed982e536
title: "fossil timeline ancestors current -n 1" does not always work
comment:
  Maybe there is a better way, but I have scripts that parse the following command to get the SHA-1 of the current commit:<br>
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;fossil timeline ancestors current -n 1<br>
  <br>
  However, the command above doesn't always produce output even if changing <i>-n 1</i> to <i>-n 2</i> does produce output.  In this case, <i>-n 2</i> only shows one commit.<br>
  <br>
  I am able to reproduce this behavior in the SQLite fossil repository by checking out the commit for "Version 3.6.22" and running the command shown above.


tkt_uuid: 9daf677325946b04ced024534bc786ad442d8a08
type: Feature_Request
status: Open
severity: Minor
foundin: 1f1b15
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
title: Blob max size checking before commit
comment:
  Please implement BLOB max file size checking when adding files.
   
  if file is over the default(1G) then don't include that file.


tkt_uuid: 68b4e947d038749e3989e0905319f8664f152586
type: Incident
status: Closed
priority: Zero
severity: Important
foundin: [4f24addea9] 2009-12-20 21:34:51 UTC
private_contact: 21c0f447532234366dbec18d60d747db150b5faa
resolution: Duplicate
title: '"Fossil"' is not recognized as an internal or external command
comment:
  I realize this looks like an error on my part and it probably is.  I apologize in advance but I'm new to running fossil on windows 7.  

  Can Fossil run on windows 7 64 Ultimate?  The error I'm getting suggests my path variable is not setup correctly but it is as I'm able to run the fossil command from any directory on my system.  It's as if once I do run it my path variable is not longer applicable.  To test this I ran fossil from the directory of it's executable and pointed it to the database that I want to server up but get the same error.  I've also made sure I open the command prompt as an administrator and the firewall was open to anything fossil.  The following are the steps I went through to get this odd behaviour.

  I use the command "fossil server -port x RepositoryName" 

  and the server starts stating

  "Listening for HTTP requests on port x"  
  "Type Ctrl-C to stop the HTTP server".

  Then I try to connect with a browser (tried ie, firefox, and opera) and in the fossil command prompt window I see this error message underneath the "Type Ctrl-C...." message.

  '"Fossil"' is not recognized as an internal or external command, operable program or batch file.

  The browser does not give me an error but just gives me a blank screen and says it's done loading the page.

  Anyone have any ideas or encountered this before?  I really enjoy using fossil and don't want to switch programs.

  <hr><i>drh added on 2010-01-08 19:29:53:</i><br>
  Fossil calls system() to run a copy of itself to handle each incoming
  HTTP request separately.  It would appear that Windows 7 is doing something
  that prevents this from happening.

  I do not have access to windows 7 and so I have no ability to debug this.
  Do any windows programmers have a clue what might be causing the problem?

  <hr><i>jeremy_c added on 2010-01-08 20:50:04:</i><br>
  I am running Windows 7 and use fossil ui all the time w/o issue. I then tried fossil server -port 8888 repo.fsl and it also works w/o issue. I am unable to reproduce this problem.

  fossil help reports: This is fossil version [def89b9393] 2010-01-01 01:30:14 UTC

  <hr><i>anonymous added on 2010-01-08 21:27:24:</i><br>
  So I made a copy of the Fossil.exe to the folder where the repository is and it started working.  This was not necessary when I was running XP.  Again it's as if the path variable doesn't exist after I start the fossil server but works fine for starting it.  Sorry for any bother and thanks for the help.

  -Rob

  <hr><i>jeremy_c added on 2010-01-08 21:41:26:</i><br>
  My fossil.exe is not in my current directory, nor the directory of the repository. It is in my path, though.

  Jeremy

  <hr><i>jeremy_c added on 2010-01-08 21:42:46:</i><br>
  Oh, I forgot to mention, I am on Windows Home Premium x64. So, I am 64bit but not Ultimate. However, I doubt that the difference between Home Premium and Ultimate is the problem.

  <hr><i>anonymous added on 2010-01-08 22:04:43:</i><br>
  As a sanity check I renamed the one in my repository directory to test it one last time.  I then typed fossil and got the fossil usage message "fossil COMMAND ..." and ran the server again with "Fossil server -port x RepositoryName" and it started.  Then I used a firefox that had a successful server page already loaded and it refresh and got a blank screen.  Again I checked the command prompt and saw "'"Fossil"' is not recognized as an internal or external command, operable program or batch file.  Changed the file name back and refreshed again and it worked... Perplexing to me.

  <hr><i>jeremy_c added on 2010-01-08 23:54:02:</i><br>
  Where did you get your binary? Is there maybe something wrong with the compiler or maybe it's linking to a different lib than mine but I cannot reproduce your error no matter what I try.

  <hr><i>anonymous added on 2010-01-09 13:54:57:</i><br>
  Here is the link I used.  http://www.fossil-scm.org/download/fossil-w32-20091220213451.zip  I talked to someone else about it and they suggested I also path the directory that I had my repository in but that didn't work.

  <hr /><i>jan.nijtmans added on 2012-08-30 12:09:50 UTC:</i><br />
  This looks like a dup of [c8c0b78c84]
  proposed fix committed to branch "ticket-c8c0b78c84"


tkt_uuid: 7df27f52365b73a9fb90c78a66105fc5928b2fce
type: Documentation
status: Fixed
severity: Minor
private_contact: 4ac216cd4a476212bdd26164b937bf1723ad48fb
resolution: Fixed
title: sentence needs rewording
comment:
  In the documentation "Branching, Forking, Merging, and Tagging", in the "Tags and Properties" section, the following sentence should lose the "either", as there are more than three options:

  <i>"A tag can be either a one-time tag or an propagating tag or a cancellation tag."</i>

  This just caught my eye as I was reading through the docs.

  <hr><i>ron added on 2010-01-24 07:51:49:</i><br>
  Fixed by [6bbb22d4fa4285ee47a94658105b4be4f5a22cc1]


tkt_uuid: 83e9e0016b65721084ef29b466c1a7ea59ea7d7e
type: Feature_Request
status: Open
severity: Important
foundin: current
private_contact: 9271333c277938acfba7db515d7eb25b37a30122
resolution: Open
title: html tags are apparently not escaped or converted when presented via timeline.rss
comment:
  A fossil commit with a comment such as the following,

  ---
  Note that couchdb document field names are now contained in priv/project.conf file. The strings within the <<>> are the names which should be used in html documents, e.g. <<"_id">> or <<"iata_code">> and the name to POST from a form would be "_id" or "iata_code" respectively.
  ---

  will break my RSS reader when I read timeline.rss ; though I use liferea on GNU/Linux, I believe (though do not know) that illegal XML is being presented by timeline.rss by not escaping or encoding html tags and characters.  For the above comment, liferea says that <<>> is an invalid element name.  I can easily cause breakage by simply adding a commit comment such as

  ---
  bugfix, added the opening &lt;h1&gt; tag in widget.html
  ---

  in which case the RSS reader complains about an open tag with no closing tag.  I then have to wait 20 new commits for the "bad" comment to roll out of the timeline.rss data before I can again read the fossil feed in my RSS reader.

  NOTE that I wrote the above tag using encoded less than and greater than signs so that I could create this bug report.  I cannot expect my fossil users (nor myself) to remember to write out ampersand g t ; etc. whenver an html tag is referenced in a commit comment.

  Click edit for this report to see the actual text to which I am referring regarding "encoded less than and greater than signs".

  My feature request is that timeline.rss present valid parseable XML atom or RSS data.

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-01-22 16:02:36:</i><br>
  Single tag in commit comment still breaks timeline.rss xml feed; note that in this ticket addendum I wrote the html encoded list tag using "&" "lt" ";" otherwise when reading the ticket it is misleading.  I cannot expect my users to html encode their comments (myself included).

  I committed my project with comment 

  "... and fixed the misplaced &lt;li&gt; from previous checkin"

  and have RSS reader error

  XML Parser: Could not parse document:
  Entity: line 10: 
  parser 
  error : 

  Opening and ending tag mismatch: li line 10 and title

        <title>... and fixed the misplaced &lt;li&gt; from previous checkin</title>

  Entity: line 12:

  If I remembered C well enough (I don't) I would dig in to the code.


tkt_uuid: 1457156b277688cf495142a8211a0c93eeda558c
type: Feature_Request
status: Open
severity: Minor
foundin: cd93f5965b5df0eb726f8a9ea3d86e106bc8540c
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Open
title: "fossil gdiff" uses internal diff under some conditions
comment:
  Do for example:  "fossil set gdiff bcompare" (to use Beyond Compare).  Modify some file, so that "fossil diff" works.


  Now, if you type "fossil gdiff whatever-file", then fossil will launch the set gdiff program.  But if you only type "fossil gdiff", without any file name, it will only do the internal diff.

  <hr><i>drh added on 2010-01-10 12:51:02:</i><br>
  Some gui differs (at least the one I use) will only diff a single pair of 
  files at a time.  So if you do:

     fossil gdiff

  And multiple files have changed, how is that suppose to work?  Do you only
  show changes in one file?  Does fossil try to concatenate all the changed
  files into one big file and diff those?  Do you launch multiple instances of
  the gui differ?

  <hr><i>anonymous added on 2010-01-10 13:03:43:</i><br>
  OK; but that behavior should be documented.  As it is, it seems that it would show diffs for the entire tree (no, I don't know how that would work in fact -- but that's what the documentation as it stands would lead me to expect)

  <hr><i>altufaltu added on 2010-01-11 04:49:59:</i><br>
  Can't one call external diff tool for each modified file?
  User may get multiple instances for diffs (in which case he may not use gdiff at all) or if the diff tool is smart, multiple diff windows in single instance.

  <hr><i>anonymous claiming to be ron added on 2010-01-11 20:11:14:</i><br>
  Yes; "bcompare" for instance, puts all the files in separate tabs within one window (at least it does on Linux)

  <hr><i>altufaltu added on 2010-01-15 09:30:28:</i><br>
  Here is the patch, if somebody is interested:
  <verbatim>
  --- src/diffcmd.c
  +++ src/diffcmd.c
  @@ -267,13 +267,14 @@
         printf("ADDED_BY_MERGE %s\n", zPathname);
       }else{
         int srcid = db_column_int(&q, 4);
         Blob content;
         content_get(srcid, &content);
  -      printf("Index: %s\n======================================="
  -             "============================\n",
  -             zPathname
  +      if (!zDiffCmd)
  +        printf("Index: %s\n======================================="
  +               "============================\n",
  +               zPathname
         );
         diff_file(&content, zFullName, zPathname, zDiffCmd);
         blob_reset(&content);
       }
       free(zFullName);
  @@ -353,11 +354,11 @@
     zTo = find_option("to", 0, 1);

     if( zTo==0 ){
       db_must_be_within_tree();
       verify_all_options();
  -    if( !isInternDiff && g.argc==3 ){
  +    if( !isInternDiff ){
         zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0);
       }
       if( g.argc==3 ){
         diff_one_against_disk(zFrom, zDiffCmd);
       }else{
  </verbatim>


tkt_uuid: 135d8acbae156f3366e7131ff0d07cf1ca7c618f
type: Code_Defect
status: Fixed
severity: Important
resolution: Fixed
title: Website: Ancestors/Descendant JavaScript not working on fossil-scm.org
comment:
  I am using IE 8 and the bullets that light up, change colors to show ancestors and descendants and descendants does not function on the fossil-scm.org site. It does function under all my personal repos (local or remote).

  Below is the "Error Report" from IE 8 about the problem.

  Webpage error details

  User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; MSSDMC2.5.2219.1)
  Timestamp: Sun, 10 Jan 2010 17:30:41 UTC


  Message: Object required
  Line: 261
  Char: 3
  Code: 0
  URI: http://fossil-scm.org/index.html/timeline

  <hr><i>eric added on 2010-01-10 17:53:02:</i><br>
  It doesn't work for me either (Mozilla 3.5.5), not even on my local copy of the fossil repo, but works if I switch to "Checkins Only".

  <hr><i>eric added on 2010-01-14 22:55:49:</i><br>
  Fixed in [297517944294e].


tkt_uuid: 70fd24aec36409adffdc467698f0813d79201453
type: Documentation
status: Open
severity: Important
foundin: c16017374e
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
resolution: Open
title: "co --latest" doen't actually get latest in repo.
comment:
  Using fossil's own repo (latest artifact [c16017374e]) It appears that the "--latest" pull latest in a tagged branch, not latest from repo. From my own memory, this has not always been the case. Is this correct/expected behaviour?

  Transcript of test:
  <nowiki><pre>
  oxford$ fossil version
  This is fossil version [c16017374e] 2010-01-12 14:33:01 UTC
  oxford$ fossil co 1cba8

  # checkout occurs

  oxford$ fossil co --latest

  # checkout occurs

  oxford$ fossil info
  project-name: Fossil
  repository:   /home/bch/fossil_2/fossil.fsl
  local-root:   /home/bch/fossil_2/
  project-code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-code:  d88c5ddc09c25be88a931b3f85fa44b1630bf715
  checkout:     261e55346d1b98dd7c2adb24c364c75545d4a054 2010-01-11 16:21:46 UTC
  parent:       1cba86eabbb0dac64852268c740f52d0b8a8032e 2010-01-11 16:09:12 UTC
  child:        596f3c10feba7ebe31b0aa46038214a748e2dbe8 2010-01-12 13:55:57 UTC
  tags:         experimental
  oxford$ fossil co --latest
  oxford$ fossil info
  project-name: Fossil
  repository:   /home/bch/fossil_2/fossil.fsl
  local-root:   /home/bch/fossil_2/
  project-code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-code:  d88c5ddc09c25be88a931b3f85fa44b1630bf715
  checkout:     261e55346d1b98dd7c2adb24c364c75545d4a054 2010-01-11 16:21:46 UTC
  parent:       1cba86eabbb0dac64852268c740f52d0b8a8032e 2010-01-11 16:09:12 UTC
  child:        596f3c10feba7ebe31b0aa46038214a748e2dbe8 2010-01-12 13:55:57 UTC
  tags:         experimental
  oxford$ fossil co 596f3

  # checkout occurs

  oxford$ fossil info
  project-name: Fossil
  repository:   /home/bch/fossil_2/fossil.fsl
  local-root:   /home/bch/fossil_2/
  project-code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-code:  d88c5ddc09c25be88a931b3f85fa44b1630bf715
  checkout:     596f3c10feba7ebe31b0aa46038214a748e2dbe8 2010-01-12 13:55:57 UTC
  parent:       b9897bb934c4de72a968d3bada8c985ae785672c 2010-01-12 13:47:48 UTC
  parent:       261e55346d1b98dd7c2adb24c364c75545d4a054 2010-01-11 16:21:46 UTC
  child:        9c5322463b5b6608173f7e06f74393b9c4e093c6 2010-01-12 14:10:13 UTC
  tags:         trunk
  oxford$ fossil co --latest

  # checkout occurs

  oxford$ fossil info
  project-name: Fossil
  repository:   /home/bch/fossil_2/fossil.fsl
  local-root:   /home/bch/fossil_2/
  project-code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-code:  d88c5ddc09c25be88a931b3f85fa44b1630bf715
  checkout:     c16017374e4318ade54ee0c1e269a0bc2ddde355 2010-01-12 14:33:01 UTC
  parent:       9c5322463b5b6608173f7e06f74393b9c4e093c6 2010-01-12 14:10:13 UTC
  tags:         trunk
  oxford$</pre></nowiki>

  <hr><i>eric added on 2010-01-13 22:32:45:</i><br>
  <tt>fossil co --latest</tt> gives you the latest leaf which is a descendant of your current checkout, and (as far as I can tell) has done so since <tt>--latest</tt> was introduced. This means that your test behaved as expected. But it is not what the help text says. I think that it is the help text that should change, since I don't think it is usually a good idea to change branches without asking explicitly.


tkt_uuid: a9722a15d235b8220fe56794c2e89f6abbfa3f8c
type: Code_Defect
status: Fixed
severity: Severe
foundin: [d5695157d0] 2009-11-11 16:21:19 UTC
private_contact: 8e5512298212f868fe073c222856411c5f59c68e
resolution: Fixed
title: Fossil leaves files in inconsistent state after error
comment:
  OP: Windows

  performing a fossil update

  One file cannot be written (in our case, one DLL that was being used by an open program). Fossil gives an error and stops.

  The situation is the following:

  The name of the checkout version (given by fossil info) is the one previous to the update. All the files that had been updated prior to the error, become labelled as "EDITED".

  The situation is not easy to fix:

  "fossil update" does nothing
  "fossil checkout --latest --force" will miss all the legitimate changes made to the files

  Possible solutions:

    1  Something similar to "rollback". If it fails, keep a copy of the existing files and replace them

    2  Do the update of all files to files "myfile.c.tempfossil" and rename all files after successful operation

    3  If the update has been partially made, change the "fossil info" checkout version number

  <hr><i>drh added on 2010-01-13 16:02:04:</i><br>
  Did you try running:

     fossil undo

  Did that not revert the files to their state before the update?

  <hr><i>anonymous claiming to be ramsan added on 2010-01-13 22:36:30:</i><br>
  No. I have not tried.

  But shouldn't fossil do an automatic undo in case of error?


  <hr><i>anonymous claiming to be ramsan added on 2010-01-14 11:14:02:</i><br>

  I have made a similar test in unix. Before the update, I've made:

  chmod -w file.c
  fossil update

  The update gives an error, "fossil info" points to the old version, and some of the files become marked as "EDITED"

     fossil undo

  does not work and responds:

  fossil: no update or merge operation is available to undo

  <hr><i>drh added on 2010-01-14 15:35:44:</i><br>
  Fixed by check-in [7c3cb28d0f76c038ae4cc17a65311564b4d90408]


tkt_uuid: 708eab9d48592746b30974c580d353c777c8c609
type: Code_Defect
status: Fixed
severity: Critical
foundin: c16017374e4318ade54ee0c1e269a0bc2ddde355
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: Message "killed" opening large repository
comment:
  Took a large SVN repp (6.8G in over 70K files).  Created new fossil repo, and added and committed the data.  That went well, creating a 1.4G fossil repo.

  Created a new directory, and "fossil open"ed the new repo.  Went ok for a while, then got a "killed" message and only some of the files were actually checked out (46,401 files).

  The "fossil rstat" reports:
  <nowiki><pre>
   Number of Artifacts: 12536
    12536 full text + 0 delta blobs
   112758 bytes average, 1413538178 bytes total

    Number Of Checkins: 1
       Number Of Files: 55323
  Number Of Wiki Pages: 0
     Number Of Tickets: 0
   Duration Of Project: 1 days
  </pre></nowiki>

  <hr><i>anonymous added on 2010-01-14 13:16:05:</i><br>
  This is on Linux (kernel 2.6.32).  The "open" leaves behind a "_FOSSIL_-journal" as well

  <hr><i>drh added on 2010-01-14 14:15:38:</i><br>
  You say your repository has over 70K files but fossil is only showing
  12536 artifacts and only 55323 files.  If some of the files are duplicates
  of one another, then the duplicates will only count as a single artifact
  and so that would explain why the artifact count is much lower than the
  file count.  (Please confirm that the project contains many duplicate
  files.)  But Fossil's file count should be accurate and 55323 is less
  than 70K.  Are you sure the initial check-in worked?


  <hr><i>anonymous added on 2010-01-14 17:45:20:</i><br>
  I just reran the test, first copying the SVN repository over and removing all '.svn' directories.  Then I created a repo "fossil new t", changed dir to the interesting dir and "fossil open ../t; fossil add *; fossil ci -m 'test'"

  Then I created another directory, and did "fossil open ../t" there.  The result is the same: a "Killed" message.

  However, something interesting: I ran "top" in another window, and saw the memory usage of fossil go upwards of 1.5G before it was finally killed. 

  So I think the problem is there is a (bad) memory leak in the "open" scenario (and perhaps generally).  For I cannot see any reason for the memory usage to ramp up so high.

  I also did "find . -type f | wc" in that dir, the result is 52,218.  The fossil rstats reported 51,192 files ... I'm not sure what the discrepancy would be besides the _FOSSIL_ and two manifest files.

  <hr><i>anonymous added on 2010-01-14 20:02:09:</i><br>
  I just ran under 'valgrind' with the command:

  <tt>valgrind --log-file=../fossil.log --leak-check=full --show-reachable=yes --track-origins=yes  ../fossil/fossil open ~/fossil/torah</tt>

  This is a quite small project, so the valgrind command was able to finish quickly.

  The logfile is here: http://ronware.org/fossil-log.zip -- it really needs someone who understands the code to determine whether or not particular problems are real problems.

  I hope this helps ...

  <hr><i>ron added on 2010-01-19 06:39:49:</i><br>
  This particular issue prevents me deploying Fossil at work for production support file management :(

  <hr><i>drh added on 2010-01-20 15:51:30:</i><br>
  Check-in [726a13d29689f4b92749072c2a47771767960373] fixes a memory leak
  which should resolve this issue.

  <hr><i>ron added on 2010-01-20 16:56:19:</i><br>
  Thank you!  I confirm the bug is fixed.


tkt_uuid: 03c9f4deef2d19f55945415cd1d048b4d730cf8c
type: Code_Defect
status: Fixed
severity: Minor
foundin: 20100112141013
private_contact: ace2a438fb254e5d21ba2ed1295b2da8392d271c
resolution: Fixed
title: Disable built-in robots.txt file
comment:
  Per [http://thread.gmane.org/gmane.comp.version-control.fossil-scm.user/1489]:

  <verbatim>
  On Dec 2, 2009, at 10:52 AM, Daniel Clark wrote:

  > For a while it's seemed odd to me that google hadn't updated its  
  > indexes of a few sites, so I took a look and noticed the obvious -
  > robots.txt was disallowing all crawlers:
  >
  > (from main.c)
  >
  >  /* Prevent robots from indexing this site.
  >  */
  >  if( strcmp(g.zPath, "robots.txt")==0 ){
  >    cgi_set_content_type("text/plain");
  >    @ User-agent: *
  >    @ Disallow: /
  >    cgi_reply();
  >    exit(0);
  >  }
  >
  > As far as I can tell there isn't a way to disable or tune this from  
  > the fossil level; if there isn't interest in changing this I'm sure I
  > can just redirect via apache to some actual file, but IMHO it would be  
  > good to be able to easily make fossil projects searchable (perhaps even  
  > have this be the default), esp. since at the moment the only reason that  
  > say fossil-scm.org is searchable is because the robots.txt file happens
  > to be at:
  >
  > http://fossil-scm.org/index.html/robots.txt
  >
  > (eg a random apache configuration choice to have rather ugly URLs with
  > "index.html" in all of them.)

  Note that http://www.fossil-scm.org/ does not use apache.  The  
  redirect occurs within fossil itself.

  I suppose that since the existing "robots.txt" is essentially a no-op,  
  we might as well remove it.
  </verbatim>


tkt_uuid: d2c9a2fe01fcebe2f212f95f84178739a35838ab
type: Incident
status: Open
severity: Important
foundin: any
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
title: Login expiration time doesn't work
comment:
  Even setting "Login expiration time" to 100000 doesn't make a difference for me: I am always required to re-login after several hours.

  I log in at http://dev.ronware.org/reva.cgi/index - and the next morning it says I am not logged-in, and I have to log-in once again.


tkt_uuid: a7087ffa132c6d69425202f3cad433412508c97b
type: Feature_Request
status: Open
severity: Minor
private_contact: e64e062ff7022fc7fdd41ac56baff07e8ae485d9
title: User information is edited in an inobvious location.
comment:
  For my first use of Fossil in a shared project I hit a few places.  One of these places is user editing.  It is impossible (as far as I can tell) to edit things like contact information without administrator interference.  Changing passwords is possible, but the way to get that is... mildly inobvious.  (Clicking on "logout" doesn't leap out as the way to change a password for me at any rate.  Makes about as much sense as clicking on "Start" to stop a machine.)

  I propose a "user editing page" that any user with sufficient privileges can access to edit any information they're allowed to modify including contact information and password (plus anything else that users eventually get added to their accounts later on).


tkt_uuid: 666d18738ee7d09c9ffe89e5e5351f422060dd41
type: Feature_Request
status: Fixed
severity: Important
private_contact: e64e062ff7022fc7fdd41ac56baff07e8ae485d9
resolution: Fixed
title: There is no way to request an account.
comment:
  For public repositories with potentially a lot of code contributors it would be nice to have some kind of mechanism in place to automate account creation.  The page would allow the user to enter a userid, contact information and a password and would create a user account with repo-specific privileges (defaulting to, say, anonymous?).

  <hr /><i>dmitry added on 2011-09-08 20:35:56 UTC:</i><br />
  Implemented as 'self-register' setting.


tkt_uuid: a5403e6eeee2a076f6d506764dee7b1255af42b8
type: Code_Defect
status: Fixed
severity: Important
foundin: Fossil version [ea27129c88] 2010-01-19 18:28:12
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: Clicking on ticket link on Timeline page redirects to Index Page.
comment:
  It seems that on Timeline page clicking on any hyperlinked ticket
   
  (e.g. http://localhost:8080/info/666d18738e ) 

  will show Index Page instead Ticket itself.

  To see ticket, one must navigate to Tickets - All Tickets  and with 
  help of some report, ticket can be seen on link like

  http://localhost:8080/tktview?name=666d18738e

  <hr><i>drh added on 2010-01-20 15:50:16:</i><br>
  Problem introduced by [bf56b2ddf4082e7ba0654574f7cd60f6246c54b3]
  2010-01-19 and fixed by [5eea3db6c19f5185409adf301e129dbefa08c998]
  on 2010-01-20.


tkt_uuid: 537da0e3089b0f6a256cd4b0361afde463127d3c
type: Feature_Request
status: Fixed
severity: Minor
foundin: d2204a00fb6bc71bdd13ffdafc469667b356172d
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: update on large repository takes a long time even when no action needed
comment:
  In a very large repository (over 52,000 files), an initial "open" takes 8 minutes.  Immediately doing an "update" takes 3 minutes.

  It would be very good if there were some way to make this take much less time.

  <hr><i>drh added on 2010-01-20 18:40:37:</i><br>
  Is

      fossil setting mtime-changes

  turned on?  If not, Fossil has to compute a SHA1 hash for every file in the
  project in order to see which ones have changed.

  If that isn't the problem, can you run fossil in a profiler to give me a better
  idea of what the problem might be?

  <hr><i>ron added on 2010-01-20 19:09:23:</i><br>
  Well: "fossil set mtime-changes on" reduces the update time to 19.5 seconds (!).  So I guess this isn't a real problem, though perhaps it should be documented as an optimization? 

  With 'mtime-changes' off, gprof indicates:

  <pre>
    %   cumulative   self              self     total
   time   seconds   seconds    calls   s/call   s/call  name
   65.45     79.69    79.69 52540564     0.00     0.00  SHA1ProcessMessageBlock
   26.47    111.92    32.23   362862     0.00     0.00  SHA1Input
  </pre>

  Over 90% of the time is in these two routines ...

  <hr><i>ron added on 2010-01-20 19:40:22:</i><br>
  Just as another data-point: SVN on the same repository (using svn+ssh) takes  29 seconds to do a do-nothing update.

  It would be interesting to see how much additional time it would take were I to host the repo and use http sync ...

  <hr><i>ron added on 2010-01-20 20:20:25:</i><br>
  The answer seems to be that adding the sync part (as opposed to the local only upd) adds almost nothing to the time an update takes.  That's nice :)

  <hr><i>ron added on 2010-01-24 07:48:48:</i><br>
  Setting 'mtime-changes' on fixes the problem.  It is also now the default.


tkt_uuid: 164e51996282c665382c7e8c9c27fcecc2ea46ac
type: Code_Defect
status: Fixed
severity: Important
foundin: d7a583e697
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
resolution: Fixed
title: .zip archive of an artifact should be available w/o a login
comment:
  As per conversation w/ drh, .zip archives should be available w/o logging in, given the proper URI. It's understood that a *link* will not be shown w/o being logged-in, but once a link is known, it should work regardless of logged-in/out status.

  <hr /><i>dmitry added on 2011-09-11 14:08:34 UTC:</i><br />
  Fixed in [fa6e993017] ("Download Zip" permission).


tkt_uuid: 4884dee3a1aaf006654ac94d25f92709961241fd
type: Code_Defect
status: Open
severity: Minor
foundin: [9c5322463b] 2010-01-12 14:10:13 UTC
private_contact: 7226b3ddbb691cac2ce7791b79481f069d32b4e6
resolution: Open
title: Fossil server crashes on Windows with custom CMD.exe command-line AutoRun
comment:
  <verbatim>
  Operating System: Windows XP
  Fossil Version: >fossil ver
  This is fossil version [9c5322463b] 2010-01-12 14:10:13 UTC
  </verbatim>

  I recently changed my "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun" REG_SZ registry entry from "" to "cd \" so my command-line prompts (cmd.exe) would start up at the root (as opposed to C:\Documents and Settings\__USER_GOES_HERE__), and this seemed to effect fossil's server detrimentally.  Whenever I would try to connect to the server, the fossil processes spawned by the server processes would crash, citing "ntdll.dll" in the Windows crash error report.

  After looking around, I'm finding empty files with names like "fossil_server_P8080__out1.txt" in my root. (C:\)

  I'm able to reproduce and fix this anomaly by changing the aforementioned registry entry from "cd \" to "" and back.


  This is likely a problem with Windows more so than Fossil.

  <hr><i>drh added on 2010-01-21 03:05:29:</i><br>
  The "fossil ui" and "fossil server"] commands make use of the system() api to
  run subordinate instances of fossil (one instance for each incoming HTTP request.)
  Those subordinate fossil commands expect to run in the same directory as the main
  fossil instance.  I suppose messing the registry as you have breaks that
  assumption.

  <hr><i>eric added on 2010-01-21 19:19:59:</i><br>
  The autorun trick is suggested all over the internet, but most of them don't mention the problems. [http://techbrahmana.blogspot.com/2009/10/changing-start-up-directory-of-command.html] does mention problems with build systems, and explains two other ways to get what was wanted.

  The problems will happen with many programs which start other programs, it is very definitely not Fossil-specific.


  <hr><i>anonymous claiming to be RBerteig added on 2010-03-06 02:27:21:</i><br>
  That registry hack seems like a Bad Idea(TM) to me. 

  Much safer is to locate each shortcut you use to launch the command prompt, and adjust its Start In property to suit your needs.  It is also possible to set the command line in the shortcut (edit the Target property) to something like <tt>CMD /K PRESETS.BAT</tt> to process PRESETS.BAT (provide a fully-qualified name for that, of course, and be careful to quote paths with spaces) before landing at an interactive prompt. Again, set the Start In as needed, or put a CD command in the PRESETS.BAT. 

  I often use this technique to describe command prompts with environment variables as needed for various cross-development tool chains which otherwise would require conflicting definitions for environment variables like INCLUDE and friends. The Microsoft Visual Studio installer sets up something similar, as well as the Windows Device Driver Kit.


tkt_uuid: 0e3f8719be2d8a398b546e01c504355336c94efb
type: Code_Defect
status: Fixed
severity: Critical
foundin: 5fc80efdf934d14554c3449a34cb7f44929fb84a
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Unable_To_Reproduce
title: ssl-enabled fossil cannot log in to server
comment:
  Built ssl-enabled fossil, then:

  <pre>
  lap: ~/proj/fossil-ssl$ ./fossil clone https://ron@www.fossil-scm.org/ ../f.ssl.repo
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  password for ron:
  Received:          20          1          0          0
  Send:             619         24          0          0
  1Server Error: login failed
  ./fossil: server says: login failed
  </pre>

  (obviously, I entered in the correct password...)

  <hr><i>drh added on 2010-01-21 22:08:15:</i><br>
  I pushed check-in [652f20ef9c55a6972485532d8110a0876f311e83] to the main
  server using HTTPS in a build of that same version.  So whatever the problem
  was, it seems to be resolved now.

  <hr><i>ron added on 2010-01-22 06:36:43:</i><br>
  sorry; I synced to version [652f20ef9c55a6972485532d8110a0876f311e83] adn did a clean compile.

  Then:
  <verbatim>
  lap: ~/proj/fossil-ssl$ ./fossil clone https://ron:xxxxx@fossil-scm.org/ ../f.ssl
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0

  Unknown SSL certificate:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte
    organizationName          = SQLite.org

  Issued By:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte
    organizationName          = SQLite.org


  Accept certificate [a=always/y/N]? a
  Received:          20          1          0          0
  Send:             619         24          0          0
  Server Error: login failed
  Received:          20          1          0          0
  Send:              43          0          0          0
  password for ron:
  ERROR.  Server did not reply
  Total network traffic: 1052 bytes sent, 314 bytes received
  Rebuilding repository meta-data...
  0 (0%)...
  project-id: (null)
  server-id:  5e5e3b2fd45938224ed1653066314d3395d3af3d
  admin-user: ron (password is "985b3b")
  </verbatim>

  And I have a local f.ssl which is bogus.  I am not able to log in with an SSL client, at least not for clone operation

  <hr><i>ron added on 2010-01-24 21:34:52:</i><br>
  After merging 	[c4c231069e] in, the ssl version was able to log-in.

  <hr><i>ron added on 2010-02-11 06:22:36:</i><br>
  works in recent builds


tkt_uuid: 2741e01c0ba2ceec292bfc2fc4495f0be1afca70
type: Code_Defect
status: Fixed
severity: Important
foundin: Fossil version [a3c97c9063] 2010-01-21 20:53:59
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: local clone of fossil repo does not let save zip archive of check-in
comment:
  local

  Fossil version [a3c97c9063] 2010-01-21 20:53:59

  ZIP archive link on Check-in [a3c97c9063] page:

  http://localhost:8080/zip/Fossil-a3c97c9063.zip?uuid=a3c97c9063bfe5b451233f38e21bdf7341c0bd49

  redirects to:

  http://localhost:8080/login?g=/zip/Fossil-a3c97c9063.zip%3Fuuid%3Da3c97c9063bfe5b451233f38e21bdf7341c0bd49

  local user has s rights to repository



  remote

  Fossil version [a3c97c9063] 2010-01-21 20:53:59 

  http://www.fossil-scm.org/fossil/zip/Fossil-a3c97c9063.zip?uuid=a3c97c9063bfe5b451233f38e21bdf7341c0bd49

  will prompt for saving zip file

  <hr><i>anonymous added on 2010-01-21 23:27:58:</i><br>
  the same operation (attemt to save ZIP archive) on local clone of sqlite repo will succed, e.g.

  http://localhost:8081/zip/SQLite-a82e6b4585.zip?uuid=a82e6b4585b9ddba581204976cd5ea8704339185

  will produce zip archive

  <hr><i>drh added on 2010-01-22 01:46:26:</i><br>
  Do you have ZIP permission turned on for users Nobody and/or Anonymous?  
  You have to do that in order to enable people (who are not logged in as
  a real user) to download ZIP archives.  It looks like ZIP permission might
  be turned off.

  <hr><i>altufaltu added on 2010-01-22 02:38:53:</i><br>
  Won't localhost have admin privileges?
  The original report says it has.

  <hr><i>drh added on 2010-01-22 03:10:16:</i><br>
  Fixed by check-in [9eb7f4fb1ec8a092d1c313461a2cc8ae6bcca34e]

  <hr><i>anonymous added on 2010-01-22 05:50:19:</i><br>
  Fossil version [9eb7f4fb1e] 2010-01-22 03:09:32 works as expected.

  Thanks.


tkt_uuid: 15f8f4a425248c35fe0babfcb6ccf45f1d5b9932
type: Code_Defect
status: Fixed
severity: Important
foundin: 3519169ea8801ec0480903c911e60226a51b1836
private_contact: 4b6281b0da561d3b4396c6498527621c42b4ad58
resolution: Fixed
title: fossil rm "not a ordinary file" errors
comment:
  Recently there was a change to how fossil rm works that completely breaks it.  Previously, you would fossil rm a file, and then you could remove the file manually.  On commit it would then register the rm just fine.

  Now I get this:

  <verbatim>
  Total network traffic: 309 bytes sent, 3684 bytes received
  fossil: not a ordinary file: /home/zedshaw/projects/mything/thedeletedfile.html
  </verbatim>

  The only solution is to touch that file and then commit.  Now, thinking that maybe fossil deletes the file on commit I went to check if these files are gone but they aren't.

  The problem is, fossil should either do one of three things:

  1) Ignore the deleted files like before on commit, since them being deleted is not an error.
  2) If it requires the file to be there on commit, then after commit it should delete them otherwise major consistency problems arise.
  3) Preferrably, if on fossil commit if the file is gone, then fine ignore it, if the file is there, then delete it.  Leave fossil rm as-is.

  Requiring a manual delete after a commit is just making me do accounting work that fossil can figure out.

  <hr><i>drh added on 2010-01-24 01:42:39:</i><br>
  Check-in [fbcefb6e4ebd5b8e186f86c48adcbaace0e13a45]


tkt_uuid: 66c6d4378e5e6ecce5527b2aa08750d090c96212
type: Code_Defect
status: Fixed
severity: Important
foundin: afe70a464686a3085141c03a1aee3eceb598ddd8
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: "<div>" not honored in wiki pages
comment:
  Create a wiki page, and put in content like this:
  <nowiki><pre>
  &lt;div dir="rtl">
  שלום
  &lt;/div>
  </pre></nowiki>

  The resultant web page has this instead of what was asked for:
  <nowiki><pre>
  &lt;div class="content">
  &lt;p>
  שלום
  &lt;/p>
  &lt;/div>
  </pre></nowiki>

  <hr><i>ron added on 2010-04-27 06:00:04:</i><br>
  Fixed by [99c26fccba] 

  Use 'class=' instead of dir, and change the css to support whatever class you want.


tkt_uuid: 9ac3352f157bb62b4a484cf470622eac39e87117
type: Code_Defect
status: Open
severity: Important
foundin: c4c231069e4bde488725c80689c834106a969b44
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
title: After merge, revert -- "update" refuses to cooperate
comment:
  Updated to the 'ssl' branch of the Fossil code.  After a while, did a 'merge --cherrypick' to get particular change.  

  Then decided to abandon the changes, so did 'revert'.  Fossil updated the changed files.

  Now, when doing "update", Fossil says: <tt>fossil: cannot update an uncommitted merge</tt>


tkt_uuid: 23b4017c39727ad02e7318d0c59e3a6180218632
type: Feature_Request
status: Closed
severity: Minor
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Not_A_Bug
title: Change compiler flags on TCC to use '-O3'
comment:
  Compiling with "-O3" (instead of the default "-Os") speeds up all operations (though it makes compilation slower).

  As a specific example, it make my huge repository "add" operation go from 18 seconds to 6; likewise, "update" went from 14 to 5.  

  I don't think there are any real problems with the optimizers in recent GCC builds, at least I haven't encountered any.


tkt_uuid: 017b54f42a59ca5fcbd2a5f230c8db793ba64793
type: Code_Defect
status: Closed
severity: Important
foundin: c4c231069e
private_contact: 75ccf14dca62728f6b2e151da4674a92b78e0e94
resolution: Works_As_Designed
title: fossil update -n does not work
comment:
  fossil update -n does not display anything and just returns to prompt (Windows and Ubuntu linux).  If I omit -n, everything works fine.

  <hr><i>drh added on 2010-02-09 12:34:37:</i><br>
  If the current check-out is up-to-date, then "fossil update -n" does nothing
  because there is nothing for it to do.  


tkt_uuid: 96af2fca6da1664bad1cdf319675214f5f89a3a7
type: Code_Defect
status: Closed
severity: Important
foundin: fc23960258
private_contact: be550bfd65ad2b35c5af076e5620344955089a2e
resolution: Duplicate
title: web "Sync Now" need to provide repository path argument.
comment:
  I am getting "use --repository or -R to specific the repository database" from Admin page when clicking "Sync Now".

  <hr><i>anonymous added on 2010-01-27 14:01:00:</i><br>
  This is related to fc23960258

  <hr><i>altufaltu added on 2010-01-27 14:19:51:</i><br>
  I'm getting 'cannot locate home directory - please set the HOMEPATH environment variable' on trying to sync.

  Also, can this be extended to multiple servers / URLs and option to do push, pull or both (sync) for each of them?


  <hr><i>ron added on 2010-01-27 14:29:31:</i><br>
  I see how being able to 'sync' the server via a click is very convenient.  But unless you have access to the server (ssh or ftp or something), you cannot get a repository on it to begin with.

  If you can put a repo on the server, you must necessarily have enough access to already tell it what URL to sync to.

  It seems to me that allowing web access to change the URL is asking for trouble, though others will disagree.

  I don't understand the HOMEPATH issue.  Why would we have to change the PATH?  That sounds like a server-side misconfiguration.

  <hr><i>ron added on 2010-01-27 14:33:09:</i><br>
  Regarding the multiple syncs -- the "right" way to sync multiple servers is to run a "cron" job (or whatever the equivalent would be on Windows), to have a "fossil sync ..." process run periodically.  One could then simply have more than one URL to sync to in separate fossil commands.  

  If you do not have access to cron functionality on the servers where you are hosting the repo (why wouldn't you?),  then you could do the 'click' sync on several separate servers individually (each one sync-ing to a specific other server).  

  <hr><i>anonymous added on 2010-01-29 03:43:06:</i><br>
  I'm running fossil as CGI through apache. Remote URL is fossil-scm.org with no permission to push. If I click on Sync Now from admikn page, I get the error about setting HOMEPATH.


  <hr><i>anonymous added on 2010-04-12 16:58:22:</i><br>
  I also get the <code>use --repository or -R to specify the repository database</code> error, but only when the server is running against an unopened project.

  <hr><i>anonymous added on 2010-04-22 13:51:48:</i><br>
  New server setup as per instructions in "<tt>fossil help cgi</tt>".
  Everything works from the web UI EXCEPT the Admin -> Sync Now option.
  It produces a page with a single line in red:
  <font color="red"><verbatim>
  use --repository or -R to specify the repository database
  </verbatim></font>


  <hr /><i>dmitry added on 2011-09-08 20:06:31 UTC:</i><br />
  Tracking "Sync now" in ticket [3b1533a090] as a "Feature request".


tkt_uuid: 1a99e30dd4d4f88682d157af46ae0ffe7fbe4b07
type: Code_Defect
status: Fixed
severity: Important
foundin: c4c231069e4bde488725c80689c834106a969b44
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: RSS link within the feed does not point to item matching the title
comment:
  Set up to pull the RSS feed from "http://www.fossil-scm.org/index.html/timeline.rss" 

  I get new tickets, the titles match what is shown.  For example, <b><tt><nowiki>Ticket [96af2fca6d] web "Sync Now" need to provide repository path argument. status still Open with 1 other change</nowiki></tt></b>.  

  But the link inside the feed body is something totally unrelated: <b><tt><nowiki>http://www.fossil-scm.org/index.html/ci/7d7a137c2f0e73ea43416d9d436c6fb467bd3da6</nowiki></tt></b> -- which is (apparently) the artifact which contains the ticket.

  I would expect clicking on the link to bring up the body of the ticket or whatever, not a bit of bookeeping which is not too interesting.

  <hr /><i>dmitry added on 2011-09-11 14:21:35 UTC:</i><br />
  Fixed in [66d93f33d5].


tkt_uuid: db4ce49690ba13eedda7221cf3bebbef29787158
type: Code_Defect
status: Closed
severity: Important
foundin: 20100124175507
private_contact: 37559fb36f80834f47d7028cbceb13084c143a41
resolution: Works_As_Designed
title: Files with attributes not overwritten
comment:
  If a file added to a repository has any attributes (hidden, read-only, system), it will commit without error, but if the file exists when a check-out occurs it cannot be overwritten.

  Fossil displays:
  <pre>
  fossil: unable to open file "C:/Users/Doug/fossil/hidden_file.txt" for writing
  </pre>
  The file cannot be removed from the repository until a full check-out has occurred, so the file has to be manually removed from the file system first.

  This happens whether fossil is run as an administrator or not.

  Script:
  <pre>
  echo "test data" > hidden_file.txt
  attrib +h hidden_file.txt
  fossil new hidden-file-test.fossil
  fossil open hidden-file-test.fossil
  fossil add hidden_file.txt
  fossil setting clearsign 0
  fossil commit -m "Add hidden file"
  fossil close
  fossil open hidden-file-test.fossil
  fossil rm hidden_file.txt
  fossil commit -m "rm test"
  fossil close
  </pre>

  <hr><i>rwilson added on 2010-01-29 01:43:09:</i><br>
  i think this works as designed; fossil does not preserve file attributes (by design) and the operating system doesn't allow fossil to overwrite hidden files - not fossil's fault.  perhaps the design could improve by adding some features to ignore certain file types or attributes on fossil add, but that is another topic.


tkt_uuid: de31897d11e277d0b581f3c65b0c7fee736f4edf
type: Code_Defect
status: Closed
foundin: c4c231069e
private_contact: 75ccf14dca62728f6b2e151da4674a92b78e0e94
resolution: Duplicate
title: Build problems on OpenBSD
comment:
  Culprit is line 51 in Makefile

  #### Include a configuration file that can override any one of these settings.
  #
  <br>
  -include config.mak

  which leads to

  "Makefile", line 51: Need an operator
  <br>
  Fatal errors encountered -- cannot continue

  Workaround: deleting that line

  <hr><i>jeremy_c added on 2010-01-29 23:43:50:</i><br>
  Duplicate of [2d2b158d75].


tkt_uuid: 396726fe9282ff707644aa358ec450a9e959eb70
type: Feature_Request
status: Open
private_contact: 8e5512298212f868fe073c222856411c5f59c68e
title: Accept extension .fsl in command "fossil server directory"
comment:
  New feature in "fossil server directory", creates a page for every repository stored in files with ".fossil" extension.

  As many people already stores fossil repositories with extension ".fsl", it would be a nice addition to the command to accept both extensions: ".fossil" and ".fsl"


tkt_uuid: 2b01b6cad02b0dc00759aeee1d8b7c330f4e558e
type: Feature_Request
status: Open
severity: Important
private_contact: fec507672984bbffdebabd2012a76e2eb2a0bf5c
resolution: Open
title: Mail Notifications for Tickets
comment:
  It would be great to see email notifications on ticket additions & status changes. For instance I'd love to know when this ticket has been accepted, fixed closed etc. This is one of the missing features that is forcing me to look at other bug tracking systems.

  <hr><i>jeremy_c added on 2010-02-02 05:02:04:</i><br>
  There are two ways of currently doing this, neither are exactly what you are looking for but maybe one will work until something more your style is implemented.

    #  Use the RSS feed. Many email programs now support RSS reading. You can then view all the activity, just tickets, just commits, etc.

    #  Similar to the above, use a tool like rss2email, http://rss2email.infogami.com/ ... That is how I keep up with happenings here and on other fossil repos.

  Jeremy


  <hr><i>anonymous added on 2010-02-02 12:53:47:</i><br>
  That sounds pretty interesting! But, how do I access the rss feed? I want to try this.

  <hr><i>anonymous added on 2010-02-02 13:16:45:</i><br>
  Gosh! How stupider can I ever be! 
  Well, I figured that out, thank you very much.

  Now let me try rss2email.


tkt_uuid: 6b498a792c0f9ca02b5b2c11f7ca9a6a2c01a0b1
type: Code_Defect
status: Fixed
priority: Medium
severity: Severe
foundin: c4c231069e
private_contact: e9c48a2f1eadc9f4c038b12d9dbb5928b81c28f1
resolution: Fixed
title: Cyrillic symbols does not display correctly
comment:
  In Wiki page and other pages, if web-server started by fossil ui reponame
  Encoding in browser UTF-8

  <hr><i>ron added on 2010-02-03 12:17:56:</i><br>
  Can you please post an example of UTF8 Cyrillic text which doesn't appear correctly?

  Are you sure the font you are using for the web page supports the characters you want to display?

  <hr><i>anonymous added on 2010-02-03 13:49:25:</i><br>
  Example of cyrillic text: 
  Пример печати примечаний

  <hr><i>anonymous added on 2010-02-03 13:51:58:</i><br>
  Example2 of cyrillic text: Пример печати комментария

  <hr><i>anonymous added on 2010-02-03 13:54:10:</i><br>
  I can't reproduce this problem :(

  <hr><i>ron added on 2010-02-03 14:00:57:</i><br>
  Nor can I.  Maybe it was a font problem.

  <hr><i>anonymous added on 2010-02-03 14:01:22:</i><br>
  Possible workaround: 
  In Windows, before start fossil ui reponame from cmd.exe, set encoding in cmd.exe to UTF-8 by chcp 65001

  <hr><i>anonymous added on 2010-02-04 06:01:18:</i><br>
  In my repository I can reproduce this. When create new ticket, in title field the symbol 'й' may bу print incorrectly.
  Same problem in comment field for ticket. And chcp 65001 not fix the problem.

  <hr><i>ron added on 2010-02-04 06:09:06:</i><br>
  It works fine for me, using [49cffc0187].  I can only assume you don't have the browser set to use UTF8 or something.  I can create a page with that name, and I can show content with that name.



  <hr><i>anonymous added on 2010-02-04 06:37:25:</i><br>
  Problem present in WindowsXP only.

  Steps for reproduce the problem:

  In Windows, start cmd.exe
  In cmd.exe console:
  fossil new test
  fossil ui test

  In browser select Tickets > New Ticket and in field 'Enter a one-line summary of the problem:' type cyrillic text with symbol 'й', for example type 'Это комментарий'.
  Also type text 'Это комментарий' in detailed description field. Click 'Submit' button. 
  And in View Ticket form loock at corrupted text for Title field and Description & Comments field.

  <hr><i>anonymous added on 2010-02-04 06:43:37:</i><br>
  And reproduced in Firefox, IE and Chrome

  <hr><i>ron added on 2010-02-04 06:55:05:</i><br>
  Can you please try this version: http://ronware.org/fossil.zip

  I do not have Windows, but it runs correctly under Wine on Linux ... not that that means anything, but please give it a try.

  <hr><i>anonymous added on 2010-02-04 07:50:02:</i><br>
  I try the version from http://ronware.org/fossil.zip and it have the same defect

  I can send you screenshot with example of corrupted text.

  <hr><i>ron added on 2010-02-04 09:10:57:</i><br>
  Try that fossil.zip again -- I updated it with a small fix.  Also, please email me (ron @ ronware.org) the images of the corrupted text.

  <hr><i>anonymous added on 2010-02-04 09:31:17:</i><br>
  Screenshot emailed, updated version has the defect too.

  <hr><i>ron added on 2010-02-04 13:37:25:</i><br>
  Can repro now, on XP (in a VirtualBox).

  <hr><i>ron added on 2010-02-04 14:55:03:</i><br>
  I think I understand the problem to some extent.

  The final character is 0x0439, and the last byte is 0x39, which is the same as the single-quote character.  I don't know where, but my guess is that some cleaning code is stripping out that quote. 

  What I don't understand is why it should fail on Windows but not on Linux.  I did confirm that XP can take the troublesome string and convert it to UCS2 and back to UTF8 without any loss, so that isn't the problem.

  <hr><i>ron added on 2010-02-15 20:29:15:</i><br>
  The routine 'fossilize' seems to be causing grief:

  <nowiki><pre>
  fossilize:
  [╨¡╤é╨╛ ╨║╨╛╨╝╨╝╨╡╨╜╤é╨░╤Ç╨╕╨╣]
  after fossilization:
  [╨¡\╤é╨\╛\s╨║╨\╛╨╝╨╝╨\╡╨\╜\╤é╨░\╤Ç╨\╕╨]

  removing backslashes:
  [╨¡╤é╨╛s╨║╨╛╨╝╨╝╨╡╨╜╤é╨░╤Ç╨╕╨]
  </pre></nowiki>

  The last character is getting munged.  I am guessing that fossilize and unfossilize should be made UTF8 aware...

  <hr><i>ron added on 2010-02-16 10:08:30:</i><br>
  Interesting:  this bug ONLY happens on XP.  I tried Vista and Windows 7, and on both it is ok.

  I wonder if it is actually a problem in IE 6?  I'll try Firefox on XP to see if that fixes the problem.

  <hr><i>ron added on 2010-02-16 10:56:14:</i><br>
  No, Firefox has the same problem (as the OP noted above).  So... what's the difference between XP and later Windows?

  <hr><i>ron added on 2010-02-16 20:03:28:</i><br>
  checkin [0e2281fc8a]


tkt_uuid: 79e9c64419137258126ccbd84b5612fba16b5ad5
type: Feature_Request
status: Open
severity: Minor
private_contact: 28f80c3f159caebeff1f3ebefacf65a18038eb5f
title: More flexible Wiki HTML Parser
comment:
  At present, the HTML parser that cleans up data entered appears to only work for HTML 4 standards and not XHTML. Whilst this may sound petty, expanding the parser to suit the latter means that bad habits such as <br/> are not rejected, it also gives the ability for inline SVG to be possible, so projects need not have to have image files for diagrams if they know that browser compatibility is a non-issue. In addition to this, any other crazy embeddable XML formats (like MathML) would also be possible.


tkt_uuid: 09ba8cea6fc21a4b44e426861e72e3ed88040e85
type: Code_Defect
status: Fixed
severity: Important
foundin: 49cffc0187
private_contact: 6984f5ff2d3f66a87d3c6ddcf777c37b54e478f0
resolution: Fixed
title: RSS Feed ignores access control
comment:
  I configured a fossil repository for non-public access only (nobody and anonymous have no privileges).

  The RSS feed still shows the timeline to unauthenticated users.

  Potential fix: If 'anonymous' cannot see the timeline turn RSS off.

  <hr><i>drh added on 2010-02-05 17:06:25:</i><br>
  Fixed in check-in [78a6270fdc6ee90ae2edeac25ec94f2004cf6624]


tkt_uuid: dc2b25030313be6d640f886e36e9f9340b459f56
type: Code_Defect
status: Fixed
resolution: Fixed
title: Maybe error in last ci
comment:
  In [93827b8450af7af33d] in file name.c new func 'date_to_uuid' has been appeared. Is it right zCopy var is freed twice?

  <hr><i>anonymous claiming to be Gé Weijers added on 2010-02-06 11:56:25:</i><br>
  It certainly looks that way. free(zCopy) is called twice, outside of any conditionals.

  <hr><i>drh added on 2010-02-06 12:16:08:</i><br>
  Check-in [01a769a9fa265971f5a9c09cb16a1211bb3dee33]


tkt_uuid: f64f9b57eb49f7917e6238c2c5399da5c119ce3e
type: Code_Defect
status: Fixed
severity: Minor
foundin: 01a769a9fa
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: warnings introduced in db.c since checkin [2f58d48cab]
comment:
  <pre>
  gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include  -I. -I./src -o db.o -c db_.c
  db_.c: In function `db_init_database':
  db_.c:533: warning: implicit declaration of function `sqlite3_win32_mbcs_to_utf8'
  db_.c:533: warning: assignment makes pointer from integer without a cast
  db_.c: In function `openDatabase':
  db_.c:568: warning: assignment makes pointer from integer without a cast
  db_.c: In function `db_open_or_attach':
  db_.c:594: warning: assignment makes pointer from integer without a cast
  </pre>

  <hr><i>rwilson added on 2010-02-08 14:52:56:</i><br>
  building in windows...

  <hr /><i>anonymous added on 2010-12-21 16:26:46:</i><br />
  Fixed with [73c24ae363]


tkt_uuid: 269a50335c606de24f1dcdfec0a7ee7475dfb681
type: Code_Defect
status: Fixed
severity: Minor
foundin: 01a769a9fa
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: warnings introduced in main.c since checkin [9cfc5cc672]
comment:
  building in windows...

  <pre>
  gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include  -I. -I./src -o main.o -c main_.c
  main_.c: In function `cmd_webserver':
  main_.c:1019: warning: passing arg 4 of `win32_http_server' discards qualifiers from pointer target type
  main_.c:1019: warning: passing arg 5 of `win32_http_server' discards qualifiers from pointer target type
  </pre>

  <hr /><i>anonymous added on 2010-12-21 16:25:10:</i><br />
  Fixed with [33fcca6b835cf077]


tkt_uuid: e42448edec179aadf130595d2d82df14713633cc
type: Code_Defect
status: Fixed
severity: Important
foundin: 4027ad4b7e
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
resolution: Fixed
title: "co --latest" not working anymore?
comment:
  with fossil repo latest ci [399d1ca000] (which corresponds to graph work), fossil co --latest fails:
  <pre>
  oxford$ fossil version
  This is fossil version [4027ad4b7e] 2010-02-06 20:20:59 UTC
  oxford$ fossil info 
  project-name: Fossil
  repository:   /home/bch/fossil_2/fossil.fsl
  local-root:   /home/bch/fossil_2/
  project-code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-code:  d88c5ddc09c25be88a931b3f85fa44b1630bf715
  checkout:     4027ad4b7e5d18294b0c102b242167df8314a599 2010-02-06 20:20:59 UTC
  parent:       2f58d48cabfb675fd418da343c05b15ba6b6418e 2010-02-06 17:25:07 UTC
  child:        1761fee0556d5e1b554e29a67462d18dceb5db83 2010-02-08 14:20:24 UTC
  tags:         trunk
  oxford$ fossil co --latest
  fossil: cannot locate "latest" checkout
  </pre>


tkt_uuid: 1927cbd979cb812c99389a73fed7cd6c5c67647f
type: Code_Defect
status: Fixed
severity: Important
foundin: b05cb4a0e1
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
resolution: Fixed
title: BSD Make broken w/ SSL merge
comment:
  <pre>
  oxford$ uname -a
  NetBSD oxford 5.0_STABLE NetBSD 5.0_STABLE (oxford) #32: Wed Feb  3 20:23:00 PST 2010  root@oxford:/usr/obj/sys/arch/i386/compile/oxford i386
  oxford$ make
  make: "/home/bch/fossil_2/Makefile" line 36: Need an operator
  make: "/home/bch/fossil_2/Makefile" line 38: Need an operator
  make: "/home/bch/fossil_2/Makefile" line 54: Need an operator
  make: "/home/bch/fossil_2/Makefile" line 56: Need an operator
  make: Fatal errors encountered -- cannot continue

  make: stopped in /home/bch/fossil_2
  oxford$ 

  </pre>

  <hr><i>bharder added on 2010-02-08 21:55:59:</i><br>
  [http://www.netbsd.org|NetBSD] users can use pkgsrc/devel/gmake to work around in meantime.


tkt_uuid: 1fad9cdbfc4e66a07f7d801ed5df8b0048a27f78
type: Code_Defect
status: Fixed
foundin: 5c30ad4ce154ac1b3a63b3f2adaf181e79fee202
resolution: Unable_To_Reproduce
title: clone w/ ssl has problems with logon
comment:
  Attempting to clone the Fossil repo doesn't work on SSL.  The login handshake seems to fail:

  <nowiki><pre>
  me ~/src$ fossil clone https://ron@www.fossil-scm.org fossil.ssl
                  Bytes      Cards  Artifacts     Deltas          
  Send:              49          1          0          0          

  Unknown SSL certificate:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte     
    organizationName          = SQLite.org    

  Issued By:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte     
    organizationName          = SQLite.org    


  Accept certificate [a=always/y/N]? a
  Received:      296235       6439          0          0
  Send:           10025        225          0          0
  password for ron:                                     
  Server Error: login failed                            
  Received:          20          1          0          0
  Send:            9443        200          0          0
  password for ron:                                     
  Server Error: login failed                            
  Received:          20          1          0          0
  Total network traffic: 11008 bytes sent, 159239 bytes received
  Rebuilding repository meta-data...                            
  6438 (100%)...                                                
  project-id: CE59BB9F186226D80E49D1FA2DB29F935CCA0333          
  server-id:  e86e08dbe4b89c7d0818e45056bd0046a27b2353          
  </pre></nowiki>

  <hr><i>ron added on 2010-02-09 07:01:46:</i><br>
  Note: SSL does work fine, since I can clone if I don't use a password.  But then if I do "fossil remote" with a username, I cannot access the repo.

  <hr><i>ron added on 2010-02-11 06:21:54:</i><br>
  it works in the most recent builds


tkt_uuid: 91683f49e8c168ba8f349a1e83cc36a2b7b249c1
type: Feature_Request
status: Open
severity: Minor
resolution: Open
title: Mechanism for i18n the product UI
comment:
  There is no obvious mechanism by which one might localize the UI in Fossil.  If I want to have Spanish-speakers (who don't know English well) use the product, I currently need to go through all the menus etc., and manually change them.  This is extremely time-consuming and prone to failure.

  I would like to request we use something like GNU gettext (which is very easy to use), and then whoever wants to contribute a localization may do so.  Then, one only needs a way to indicate to Fossil that it should use a specific locale (for example, adding "locale=es" as query parameters).

  <hr><i>ron added on 2010-02-10 11:06:23:</i><br>
  It occurs to me that it might be difficult to deploy a gettext type of solution across platforms; though if the "mo" files are deployed relative to the executable in a known manner, that's not a problem.

  Another possibility might be to leverage the SQLite backend and just store the translations there; but then, we would have to engineer a reasonable way for the data to get populated, and that adds (I think) quite a bit of complexity.

  <hr><i>anonymous added on 2010-02-19 12:29:49:</i><br>
  Whilst gettext is certainly a good practice towards i18n/l13n, it's certainly not the be-all and end-all of dealing with multiple languages. I'd be in favour of the languages being done at compile time, not inside the repository as much as possible. Constants, templates and lots of #define are suitable work arounds.


tkt_uuid: 46bf4baedcea6ca9df279e3ddd813c263db46f1c
type: Code_Defect
status: Fixed
severity: Important
foundin: 94bb313444
private_contact: d4bb048456b44e51cafa61c59ddc503a345fe5d0
resolution: Fixed
title: wrongly reported illigal character, "[" and "]"
comment:
  This has been tested under windows only.

  Create a file named: $ () + ,-!= @ [ ]^_{ }~.txt 

  This file is perfectly legal under windows (WinXP) but if i try to add it via:
  fossil add "testCase-fileUpload\$ () + ,-!= @ [ ]^_{ }~.txt"

  I get 

  fossil: filename contains illegal characters: testCase-fileUpload/$ (
  ) + ,-!= @ [ ]^_{ }~.txt

  Basically it chokes over the  &#93; and &#91; characters.

  Regards.

  <hr><i>drh added on 2010-02-10 13:20:00:</i><br>
  The &#91; and &#93; characters are also legal for Unix filenames.  (Any character 
  other than 0x00 and / is valid in a unix filename.)  But &#91; and &#93; are used
  as globbing characters by the shell, so there use must be escaped in the shell.
  this can lead to subtle problems.  So as a safety mechanism, I deliberately
  disallow such filename characters in Fossil.

  Behavior is by design.

  <hr /><i>anonymous added on 2012-11-19 01:46:46 UTC:</i><br />
  Yes, I agreed [ and ] has special usage under Unix, but I am a Win32 user, and I have a lots of files contains [ and ]. So I think we should add a option to check whether we need to valid those characters, by default, it's ON, but I can choose to disable it(OFF to check it) . It's the only blocker stops me to use fossil..


tkt_uuid: 727af73f467a64be0d0bbbcf46c513062a9e4704
type: Code_Defect
status: Open
severity: Important
foundin: [95ae79d5044a4401368e5633893dfb2044c8565f]
resolution: Open
title: ssl: on "pull -R repo", gets ssl certificate again, asks to accept a/y/N
comment:
  When cloning the fossil repo using https, I am asked if I want to accept the certificate.  I said "always". 

  Now, when doing "fossil pull -R fossil.ssl", it gives me:

  <nowiki><pre>
  me ~/src/fossil$ fossil pull -R fossil2
  Server:    https://ron@fossil-scm.org  
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0

  Unknown SSL certificate:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte     
    organizationName          = SQLite.org    

  Issued By:

    countryName               = US
    stateOrProvinceName       = North Carolina
    localityName              = Charlotte     
    organizationName          = SQLite.org    


  Accept certificate [a=always/y/N]? a
  fossil:                             
  REPLACE INTO global_config(name,value) VALUES('cert:fossil-scm.org'
  </pre></nowiki>
  ... etc 


  NOTE: If I do the normal "fossil open" in a directory, then "fossil pull", it works just fine.

  <hr><i>anonymous added on 2010-05-21 09:03:45:</i><br>
  Yes, there is some problem with accepting certificates.

  For me fossil always complains that the certificate is for a different site although I chose to always accept the certificate.

  <hr><i>anonymous claiming to be wfreeman added on 2010-09-02 22:28:45:</i><br>
  I also have the same issue, with it always prompting even though I hit "a". During commits, updates, and syncs.

  <hr><i>anonymous claiming to be wfreeman added on 2010-09-03 00:59:01:</i><br>
  I dug a little deeper and put some debug printing into the code.

  It's actually returning a:
  X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY

  Perhaps this only happens when the server cert is not self-signed. I'm running https with a GeoTrust issued cert. 

  I think we may need to use SSL_get_peer_cert_chain and go through the list of certs in order to get an OK return code. I'm not really sure how to do this, but I may come back and look at it later.

  As a temporary kludge to remove the annoyance, I think I will just comment out the prompt code, as it's not really necessary unless you are worried about someone spoofing your cert, which, if you're just hitting "a" every time, doesn't really matter anyway.

  <hr /><i>anonymous added on 2010-11-08 10:20:59:</i><br />
  Fossil first checks if ht e cert is valid and if it is not it does not take saved cert into account.

  If you accept a cert which fossil thinks is invalid (which would be the reason to accept it manually in the first place) it does not look at it when validating the cert next time.

  <hr /><i>jan added on 2011-03-29 12:47:24 UTC:</i><br />
  Since I'm anyways working with the PKI stuff, I thought I'd search for some related tickets, and I found this one.

  As wfreeman pointed out, SSL is returning X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY which means exactly what it says. 

  Slightly simplified:
  In a PKI trust model environment you have a central authority which you trust to sign certificate sign requests for client and server certificates. The problem here is that even if the server side can verify the authenticity of the relevant certificates, OpenSSL is paranoid enough (read: has the common sense) to want to validate the certificates against the CA certificate on the client side as well. But since fossil currently doesn't actually load the CA certificate into the SSL context, thus not making them accessible for the verification procedure, it won't succeed. The error says exactly that: "I found an issuer in a (server) certificate, but I can not locate the issuer's certificate (CA) on this local system (for verifying the authenticity of the server certificate)". 

  Though note that it's up to the application to choose whether to care about verification problems or not, SSL doesn't care other than flagging the problem, so fossil isn't technically doing anything wrong by simply marching on like nothing happened.


  There are two obvious solutions to this ticket:
    #  Configuring verify mode or verify depth to 0 (it won't care about verifying against the CA). See SSL_CTX_set_verify(3) for more information.
    #  Add support for adding the CA certificate(s) to the SSL context on the client side.

  As a direct result of my work on supporting client certificates, I'm working on point 2.

  For those who are interested (and only have a single-level CA), there's a one-line patch for point 2 if you don't mind a hard-coded temporary solution. Somewhere early (like after the call to ssl_global_init() in ssl_open()), add:

  SSL_CTX_load_verify_locations(sslCtx, "/etc/ssl/public/ca.crt", NULL);

  Adjust the cafile path, and make sure it's in the PEM format.

  <hr /><i>anonymous claiming to be Earl added on 2011-06-19 19:05:55 UTC:</i><br />
  Another quick fix:

  As an alternative to hard coding the certificate location, I added the following to ssl_global_init() in http_ssl.c

  <code>
          char *cert_file;<br>
          cert_file = mprintf("%s.pem", g.zRepositoryName);<br>
          SSL_CTX_load_verify_locations(sslCtx, cert_file, NULL);<br>
          free(cert_file);
  </code>

  This makes OpenSSL look for a certificate file in the same directory as the fossil, named the same as the repository but with .pem added on. For example, when syncing myrepo.fossil, OpenSSL will use myrepo.fossil.pem if it exists. If not, the default locations (e.g. /usr/local/ssl/certs or even C:\usr\local\ssl\certs) are used. This makes it possible to have different certificates for different repositories.

  The method works with clone as well as operations on established repositories. Of course, the .pem file should be present before you issue the clone command.

  PEM files can contain more than one certificate, up to the trusted root CA. This is not the case for files in directories like /usr/local/ssl/certs, which can only have one certificate per file and need to be named using the openSSL c_rehash utility.

  Thank you for developing Fossil. Looking forward to further SSL features.

  <hr /><i>ben added on 2011-06-20 07:12:46 UTC:</i><br />
  The ben-testing branch (which includes a competing implementation of SSL client and server certificate management) has an extra ssl-ca-location setting. This calls SSL_CTX_load_verify_locations().

  I'm not entirely convinced that fossil should be doing any certificate management. At least, not the way it's doing it now. Perhaps storing the fingerprint of the certificate, rather than the certificate itself, might be the way to go.


tkt_uuid: 4c636a73b06dcf18bbc70d9a66742a8f333fd067
type: Code_Defect
status: Open
severity: Cosmetic
foundin: 6fd9141368
title: Ticket table in Safari more than one line per row
comment:
  In Safari Version 4.0.4 (6531.21.10) the Ticket table is more than one line per row,
  because the date-time of the mtime column doesnt fit in one line, so the table scales up.


tkt_uuid: 8f7e657c693bfb49282f6ad99b7616a4eff0faa6
type: Code_Defect
status: Open
severity: Minor
foundin: 37f295c310
private_contact: 194c9ef8edbd9a57ef36f4f18fde1d57ce26e1e5
title: Example for report coloring by priority is wrong
comment:
  The example below is wrong.
  The reason ?
  According to the common TH1 code for reports priority is a TEXT column with values 'Immediate' ... 'Zero'. The example on the other hand assumes priority to be INT in range 1 ... 5.

      SELECT
        CASE priority WHEN 1 THEN '#f2dcdc'
             WHEN 2 THEN '#e8e8bd'
             WHEN 3 THEN '#cfe8bd'
             WHEN 4 THEN '#cacae5'
             ELSE '#c8c8c8' END as 'bgcolor',
      ...
      FROM ticket

  The code I am now using my ticket setup is

      CASE priority
         WHEN 'Immediate' THEN '#f2dcdc'
         WHEN 'High'      THEN '#e8e8bd'
         WHEN 'Medium'    THEN '#cfe8bd'
         WHEN 'Low'       THEN '#cacae5'
         ELSE                  '#c8c8c8'
         END as 'bgcolor',


tkt_uuid: 2245a1e3d058d85ec59c327a932a208109d46d45
type: Code_Defect
status: Closed
severity: Important
foundin: 95ae79d504
private_contact: e05c4b7600be973bfc338fbb2709b47357780bc8
resolution: Fixed
title: rm command mistakingly believes files are directories
comment:
  <pre>
  'fossil rm file' crashes:
  (gdb) where
  #0  0x91af1e9a in closedir$UNIX2003 ()
  #1  0x00002d43 in del_directory_content (zDir=0x202b00 "mdb.mk") at add_.c:223
  #2  0x00002de9 in del_cmd () at add_.c:255
  #3  0x00022fb7 in main (argc=3, argv=0xbffff49c) at main_.c:258

  mdb.mk is a plain file

  Suggested patch:
  --- src/add.c
  +++ src/add.c
  @@ -249,11 +249,11 @@
     db_begin_transaction();
     for(i=2; i<g.argc; i++){
       char *zName;
   
       zName = mprintf("%/", g.argv[i]);
  -    if( file_isdir(zName) ){
  +    if( file_isdir(zName) == 1){
         del_directory_content(zName);
       } else {
         char *zPath;
         Blob pathname;
         file_tree_name(zName, &pathname, 1);
  </pre>

  <hr><i>jeremy_c added on 2010-02-13 12:31:25:</i><br>
  Thanks for the patch. It has been applied.


tkt_uuid: c68457bff8b1869f4853b530a1d1647fea8c24a1
type: Build_Problem
status: Fixed
severity: Minor
foundin: 95ae79d504
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Link order of SSL libraries
comment:
  During the build process of Fossil I've got errors about undefined references.
  This is on FreeBSD 6.4 with gcc 3.4.6

  Changing the order of the SSL libraries in the Makefile from "-lcrypto -lssl" to
  "-lssl -lcrypto" solved the problem.

  -- tsbg


tkt_uuid: b32014507ab7528c68510343904ce33a1f31e6e5
type: Code_Defect
status: Closed
resolution: Not_A_Bug
title: fossil new --date-override issue
comment:
  It seems <code>--date-override</code> doesn't work correctly with <code>fossil new</code>, which is required for importing files from other repositories:
   
  <pre>
  $ fossil new test.fsl -A test --date-override "2010-01-01 UTC" 
  project-id: 05468b497577aa00211a76732a997723fb5a8acf
  server-id: 23567149953dd056df1d40062d214826895c9dae 
  admin-user: test (initial password is "5a4f69") 

  $ fossil timeline -R test.fsl 
  </pre> 
  → The timelime shows no entries!

  If I create a new repository without date override and then try to override date to a past value, fossil complains about time skew and doesn't accept commit!

  <hr><i>drh added on 2010-03-07 17:40:55:</i><br>
  Remove the "UTC" suffix from the date and it should work fine.  The
  --date-override option already assumes UTC.


tkt_uuid: 930a168303fd3c71c39001fb8c4cd16fb37d959d
type: Build_Problem
status: Fixed
foundin: 2010.02.13.123048
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Fixed
title: fossil is GPLed, openssl is GPL-incompatible, suggest adding clause to license
comment:
  fossil is licensed under the GNU GPL v2.
  unfortunately, openssl, while free, has a GPL-incompatible license.
  this means that distributors (like, say, debian) cannot ship fossil binaries linked to openssl.

  UNLESS you add an "exception" clause to the fossil license.
  Many programs have such an exception clause, e.g., wget has one,
  which I include below.  (This is an FSF-approved thing to do, BTW;
  the wording below is the wording the FSF uses when they add such
  a clause, and which they have recommended to others.)

  "In addition, as a special exception, the Free Software Foundation
  gives permission to link the code of its release of Wget with the
  OpenSSL project's "OpenSSL" library (or with modified versions of it
  that use the same license as the "OpenSSL" library), and distribute
  the linked executables.  You must obey the GNU General Public License
  in all respects for all of the code used other than "OpenSSL".  If you
  modify this file, you may extend this exception to your version of the
  file, but you are not obligated to do so.  If you do not wish to do
  so, delete this exception statement from your version."

  If the above is unclear (or unconvincing!) please do not hesitate to email.
  --
  Barak A. Pearlmutter <barak@cs.nuim.ie>


tkt_uuid: 068a65651254a5ad8b014226628d6b2859e29f7c
type: Feature_Request
status: Open
severity: Minor
private_contact: 8acf3524cad7ceb911d59819b76eaf17c4de540d
resolution: Open
title: Wiki Sections ==Section== (with possibly table of contents)
comment:
  It would really be nice if the wiki included in fossil would include basic sections syntax as implemented in most major wiki.

  An implementation of it could be:
  ==Section==
  ===Subsection===
  ====Sub-subsection====


  It would also be a nice addition if it included a table of contents (TOC) based on these sections.


  More information on these requests can be found here: http://en.wikipedia.org/wiki/Section_editing


  It would make navigating through the wiki easier, could be useful in organizing information on a page and for maintainability.

  <hr><i>anonymous claiming to be knu added on 2010-02-27 13:28:44:</i><br>
  /wiki_rules: 

  5. Hyperlinks
  ... You can also link to internal anchor names using [#anchor-name], providing you have added the necessary "<a name="anchor-name"></a>" tag to your wiki page.

  6. HTML. The following standard HTML elements may be used: <a> ... <h1> <h2> <h3>

  So, you can already achieve what you want, albeit by hand, and I would call it "Nice to have", not "Important".

  <hr><i>anonymous added on 2010-03-26 21:48:52:</i><br>
  I second this. It would be greate to use the wellknown wikisyntax with "==".


tkt_uuid: 4962a7b0b746ccd2dc80621fbadc358e57c5b985
type: Code_Defect
status: Open
severity: Important
foundin: 02f638a16fb83f3b4d1cfc3f9dc096e928f87725
title: "fossil ui repo --sqltrace" does not work on Windows
comment:
  Attempting to do a 'sqltrace' on Windows does not work.  Only the first two SELECT statements display information (reading the config); then no more SQL output is shown.

  The same command works as expected on Linux.


tkt_uuid: 6b8dcc1d67171f3e3039d08029c6b6097da69491
type: Documentation
status: Closed
severity: Cosmetic
private_contact: 194c9ef8edbd9a57ef36f4f18fde1d57ce26e1e5
resolution: Fixed
title: Superfluous word in sentence of fossil docs
comment:
  Page: http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki

  Quoting:
  <verbatim>
      when using SQL, can this can result in better
      ----------------^ This word is superfluous.
  </verbatim>

  <hr><i>bharder added on 2010-02-15 21:04:38:</i><br>
  Fixed as per [05b44d58a03aa27b].


tkt_uuid: eff2cbe5ae11c0b58e17e87b71cd5c953cba484e
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: 02f638a16f
resolution: Fixed
title: info prints two colons for user-home
comment:
  There is a second colon after 'user-home:' which lines up with the colon in 'project-code:' - the formatting here may not show this accurately.

  H:\Documents\Projects\~~~~~~~~~~~>fossil info

  project-name: ~~~~~~~~~~~

  repository:   H:/Documents/Projects/~~~~~~~~~~~/~~~~~~~~~~~.fossil

  local-root:   H:/Documents/Projects/~~~~~~~~~~~/

  user-home:  : C:/Documents and Settings/~~~~~~~~/Application Data

  project-code: e1bb4f699d6acc4fe77ec112d528d80ed80704b9

  server-code:  969b83d05256855b5e9efb4adedc31506126a58d

  checkout:     f6371826f7344157474803c92258e3c5c64728a3 2010-02-16 04:34:25 UTC

  tags:         trunk


  H:\Documents\Projects\~~~~~~~~~~~>fossil help

  Usage: fossil help COMMAND.

  ...

  This is fossil version [02f638a16f] 2010-02-13 12:30:48 UTC

  Obviously, this is on a windows platform.


tkt_uuid: ddd45723b9a214e2d32251e11dd1db5a714b2198
type: Code_Defect
status: Fixed
severity: Cosmetic
resolution: Fixed
title: About a half of check-in link on timeline is not clickable
comment:
  It may be due to canvas div

  <hr><i>anonymous added on 2010-02-16 10:27:49:</i><br>
  windows
  ff 3.5.7, opera 10.0
  but in ie 8.0 it's OK

  <hr><i>anonymous claiming to be anonymous pretending to be Darren Turland added on 2010-02-23 12:30:00:</i><br>
  The following patch will size the canvas div to the correct width.
  Tested on ff 3.5.7, and ie8

  <nowiki><pre>
  --- src/timeline.c
  +++ src/timeline.c
  @@ -502,19 +502,19 @@
       @   while( canvasDiv.hasChildNodes() ){
       @     canvasDiv.removeChild(canvasDiv.firstChild);
       @   }
       @   var canvasY = absoluteY("canvas");
       @   var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15;
  -    @   var width = left + nrail*20 + 20;
  +    @   var width = nrail*20;
       @   for(var i in rowinfo){
       @     rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY;
       @     rowinfo[i].x = left + rowinfo[i].r*20;
       @   }
       @   var btm = rowinfo[rowinfo.length-1].y + 20;
       @   canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+
       @      'style="position:absolute;left:'+(left-5)+'px;"' +
  -    @      ' width="'+(width-left+26)+'" height="'+btm+'"></canvas>';
  +    @      ' width="'+width+'" height="'+btm+'"></canvas>';
       @   realCanvas = document.getElementById('timeline-canvas');
       @   var context;
       @   if( realCanvas && realCanvas.getContext
       @        && (context = realCanvas.getContext('2d'))) {
       @     drawBox = function(color,x0,y0,x1,y1) {
  </pre></nowiki>


tkt_uuid: 993287b389d78384ca1ab16641e08885f04b898a
type: Feature_Request
status: Open
severity: Cosmetic
foundin: 94bb313444
private_contact: 89fb7932f6cf1ff580ce979fd5eefb40af6860a4
title: Patch to allow sidebox to be skinable.
comment:
  Small patch, of many I hope, to make more of fossil 'skinable'

  This patch renames the sidebox object -> infobox, to make it more useable elsewhere, and applies some css to the default skins to emulate current look and feel.

  Only tested against Firefox 3.5 and IE8.

  Patch generated against [94bb313444]
  <verbatim>
  Index: src/branch.c
  ===================================================================
  --- src/branch.c
  +++ src/branch.c
  @@ -229,11 +230,11 @@

     style_header("Branches");
     style_submenu_element("Timeline", "Timeline", "brtimeline");
     login_anonymous_available();
     compute_leaves(0, 1);
  -  style_sidebox_begin("Nomenclature:", "33%");
  +  style_infobox_begin("Nomenclature:");
     @ <ol>
     @ <li> An <b>open branch</b> is a branch that has one or
     @ more <a href="leaves">open leaves.</a>
     @ The presence of open leaves presumably means
     @ that the branch is still being extended with new check-ins.</li>
  @@ -240,11 +241,11 @@
     @ <li> A <b>closed branch</b> is a branch with only
     @ <a href="leaves?closed">closed leaves</a>.
     @ Closed branches are fixed and do not change (unless they are first
     @ reopened)</li>
     @ </ol>
  -  style_sidebox_end();
  +  style_infobox_end();

     db_prepare(&q,
       "SELECT DISTINCT value FROM tagxref"
       " WHERE tagid=%d AND value NOT NULL"
       "   AND rid IN leaves"

  Index: src/descendants.c
  ===================================================================
  --- src/descendants.c
  +++ src/descendants.c
  @@ -322,19 +322,19 @@
       style_submenu_element("Open", "Open", "leaves");
     }
     style_header("Leaves");
     login_anonymous_available();
     compute_leaves(0, showAll ? 0 : showClosed ? 2 : 1);
  -  style_sidebox_begin("Nomenclature:", "33%");
  +  style_infobox_begin("Nomenclature:");
     @ <ol>
     @ <li> A <b>leaf</b> is a check-in with no descendants.</li>
     @ <li> An <b>open leaf</b> is a leaf that does not have a "closed" tag
     @ and is thus assumed to still be in use.</li>
     @ <li> A <b>closed leaf</b> has a "closed" tag and is thus assumed to
     @ be historical and no longer in active use.</li>
     @ </ol>
  -  style_sidebox_end();
  +  style_infobox_end();

     if( showAll ){
       @ <h1>All leaves, both open and closed:</h1>
     }else if( showClosed ){
       @ <h1>Closed leaves:</h1>

  Index: src/skins.c
  ===================================================================
  --- src/skins.c
  +++ src/skins.c
  @@ -156,11 +156,19 @@
   @ /* The label/value pairs on (for example) the vinfo page */
   @ table.label-value th {
   @   vertical-align: top;
   @   text-align: right;
   @   padding: 0.2ex 2ex;
  -@ }');
  +@ }
  +@
  +@ /* Information/instruction boxes */
  +@ table.infoBox {
  +@   border:2px solid #606060;
  +@   float:right;
  +@   width:33%;
  +@ }
  +@');
   @ REPLACE INTO config VALUES('header','<html>
   @ <head>
   @ <title>$<project_name>: $<title></title>
   @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
   @       href="$baseurl/timeline.rss">
  @@ -361,11 +369,18 @@
   @ table.label-value th {
   @   vertical-align: top;
   @   text-align: right;
   @   padding: 0.2ex 2ex;
   @ }
  -@ ');
  +@
  +@ /* Information/instruction boxes */
  +@ table.infoBox {
  +@   border:2px solid #a09048;
  +@   float:right;
  +@   width:33%;
  +@ }
  +@');
   @ REPLACE INTO config VALUES('header','<html>
   @ <head>
   @ <title>$<project_name>: $<title></title>
   @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
   @       href="$baseurl/timeline.rss">
  @@ -594,11 +609,19 @@
   @ /* The label/value pairs on (for example) the ci page */
   @ table.label-value th {
   @   vertical-align: top;
   @   text-align: right;
   @   padding: 0.2ex 2ex;
  -@ }');
  +@ }
  +@
  +@ /* Information/instruction boxes */
  +@ table.infoBox {
  +@   border:2px solid #eeeeee;
  +@   float:right;
  +@   width:33%;
  +@ }
  +@');
   @ REPLACE INTO config VALUES('header','<html>
   @ <head>
   @ <title>$<project_name>: $<title></title>
   @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
   @       href="$baseurl/timeline.rss">

  Index: src/style.c
  ===================================================================
  --- src/style.c
  +++ src/style.c
  @@ -158,24 +158,22 @@
       cgi_append_content("</font>\n", -1);
     }
   }

   /*
  -** Begin a side-box on the right-hand side of a page.  The title and
  -** the width of the box are given as arguments.  The width is usually
  -** a percentage of total screen width.
  +** Begin a side-box on the right-hand side of a page.  The title
  +** of the box is given as arguments.
   */
  -void style_sidebox_begin(const char *zTitle, const char *zWidth){
  -  @ <table width="%s(zWidth)" align="right" border="1" cellpadding=5
  -  @  vspace=5 hspace=5>
  +void style_infobox_begin(const char *zTitle){
  +  @ <table class="infoBox">
     @ <tr><td>
     @ <b>%h(zTitle)</b>
   }

   /* End the side-box
   */
  -void style_sidebox_end(void){
  +void style_infobox_end(void){
     @ </td></tr></table>
   }

   /* @-comment: // */
   /*
  @@ -379,10 +377,15 @@
   @ /* The label/value pairs on (for example) the ci page */
   @ table.label-value th {
   @   vertical-align: top;
   @   text-align: right;
   @   padding: 0.2ex 2ex;
  +@ }
  +@
  +@ /* Info box */
  +@ table.infoBox {
  +@   width:33%;
   @ }
   ;

   /*
   ** WEBPAGE: style.css
  </verbatim>


tkt_uuid: f6b83821d6a6fa1cd5d4900a79d0ebb45b6ed6e6
type: Feature_Request
status: Open
severity: Important
resolution: Works_As_Designed
title: Tickets should have an 'assigned_to' field
comment:
  In a multi-developer environment, it is useful to assign tickets to people.  Fossil doesn't currently have a way to assign them.

  <hr><i>jeremy_c added on 2010-02-17 12:36:30:</i><br>
  The fossil ticket system is very versitle and does have the ability to assign tickets to people in a multi-developer environment, it's just not default.

  Simply add a new field named assign_to, create a new list of assignable people and update your edit/view templates.

  You can do about anything with the fossil ticket system.

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-02-18 16:56:34:</i><br>
  I read Jeremy's "how to" and understand the words, though still do not understand how to implement the feature I would also find useful.

  Please explain again how to implement, using language which assumes zero a priori knowledge.  New field/list where ?  edit/view templates ? where/what are those ? etc. Maybe this is a candidate for the wiki or embedded doc pages. thanks


  <hr><i>ron added on 2010-02-18 17:37:17:</i><br>
  Instructions on what to do [http://www.fossil-scm.org/index.html/doc/tip/www/custom_ticket.wiki|are here].

  <hr><i>anonymous claiming to be Michael McDaniel added on 2010-02-18 18:34:18:</i><br>
  Thank you for the details, Ron - worked fine.

  <hr /><i>anonymous added on 2011-04-08 17:46:00 UTC:</i><br />
  What if one wanted a dynamic list of certain users in the table (instead of a static one as specified in the example). It seems th1 doesn't have a way to do a sql command.


tkt_uuid: 19be0265ffe5d1103e739e636ffef86c1cc60543
type: Code_Defect
status: Fixed
severity: Important
foundin: 02f638a16f
private_contact: dc565ed5b6963a47e42a2afde5bc77bf41ed52c3
resolution: Fixed
title: Rebuild button on Shun page on UI generates incorrect output
comment:
  I shunned an artifact in the wiki and clicked on the rebuild button and the refreshed page didn't render properly in my browser. Here's the start of the page output to the browser (excluding the 'quote' pseudo-tags, of course):
  <quote>
   (0%)...
  HTTP/1.0 200 OK
  Date: Wed, 17 Feb 2010 19:49:24 GMT
  Connection: close
  Cache-control: no-cache, no-store
  Content-Type: text/html; charset=utf-8
  Content-Length: 3823
  </quote>

  <hr /><i>anonymous added on 2011-04-13 19:03:07 UTC:</i><br />
  still a problem with the latest release

  <hr /><i>dmitry added on 2011-09-12 19:43:14 UTC:</i><br />
  Fixed in [2cd21f8dc2].


tkt_uuid: cccd387b49b1d2a0304be19b6dfaca733eac8334
type: Code_Defect
status: Open
severity: Minor
foundin: e964b55dd6
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
title: "nowiki" tag doesn't take effect in ticket titles.
comment:
  "nowiki" is not parsed in ticket titles... the verbatim tag is displayed, and items in <nowiki>[blocks]</nowiki> are still rendered as URIs.


tkt_uuid: c68b4e0f1f0874c4dff0ed24966e25ac51e7cfe5
type: Incident
status: Open
severity: Severe
foundin: 4f24addea9
private_contact: 21c0f447532234366dbec18d60d747db150b5faa
resolution: Open
title: after committing "Fossil : no such file: in -E2F0FD85......."
comment:
  What we've tested.

  All machines are running fossil version 4f24addea9 2009-12-20 and for all of the following machines we tried a clone from my server machine.

  Using The Internet:
    His computer running Windows 7 - Didn't work
    His laptop running Windows 7 - Didn't work
    His server running XP - DID work
    My Computer using my DNS:Port running Windows 7 - DID work

  Using My Local Network:
    My Computer using my localhost:port running Windows 7 - DID work

      My friend can't commit to the database even after cloning.  

  He keeps getting an error message

   "Fossil : no such file: in -E2F0FD85.......".  

     Nothing in the database starts with a negative and doesn't have E2F0FD85 anywhere in the timeline.  This seems as if the database is corrupt but we've successfully clone/committed as specified above.  

  Has anyone seen this kind of error before?  

     The error occurs when I normally get the "unable to sign manifest. continue (y/N)?" message from fossil so the error is displayed after

  " 'gpg' is not recognized as an internal or external command, operable program or batch file.' 

  Though I realize some of you may not see these prompts I hope someone can be of help.

  <hr><i>anonymous added on 2010-02-23 11:09:24:</i><br>
  Cant help with the "Fossil : no such file: in -E2F0FD85.......", but the signing messages can be ignored by setting clearsign to a value of 0.

  <pre>fossil setting clearsign 0</pre>


tkt_uuid: cbda8d3bb0704c6ce6a7b321c320c702cf30f7e5
type: Code_Defect
status: Closed
foundin: 8fe33aa575
resolution: Rejected
title: Check-in [8fe33aa575] removed 'config.mak' for customization of make
comment:
  As mentioned.  Removal of 'config.mak' means adding or overriding make flags requires actually modification of the Makefile

  <hr><i>drh added on 2010-03-01 00:45:48:</i><br>
  Makefile customization is easy.  Simply copy the default "Makefile" into
  a file named "makefile" or possibly "GNUMakefile" or "BSDMakefile" (depending
  on what version of make you are running) and then apply your edits to the
  copy.  The "make" program looks for its makefile under name (GNU|BSD)Makefile,
  makefile, and Makefile, in that order.  So if you supply one of the earlier
  names, the one included with the Fossil distribution will not be used.

  You could also make a copy of the file into "local.mk" and then do
  "make -f local.mk".

  <hr><i>ron added on 2010-03-01 06:26:10:</i><br>
  I dislike that solution because then the private build may break whenever the main makefile is updated.  

  That is why I added a "make.sh" script, which simply drives the make, giving the functionality of the (removed) config.mak without messing around with the Makefile.  It is also cross-platform, working wherever "bash" is installed (maybe it works with other shells too, but I don't know).


tkt_uuid: 93166ec5cc5b429090137e6d65a8fc9f3cf31118
type: Code_Defect
status: Closed
severity: Severe
foundin: 0f27a59808
private_contact: 89fb7932f6cf1ff580ce979fd5eefb40af6860a4
resolution: Not_A_Bug
title: disk I/O error on commit (AIX)
comment:
  I have been getting a 'disk I/O error' when performing commits on an AIX system.
  The error prevents the autosync-push from taking place. A manual push works just fine.


  After a fair bit of tracking down, I found it is caused by the fsync(fd) call in unixDelete().

  <nowiki><pre>
  DBA0035:/home/dba0035/code/fossil-scm.org >fsl commit -m "where is>
  New_Version: ba79ed2621c11aad28ed30d6d3de9f922a5c445c
  dt: unixDelete(1) rc:0 zPath:/home/dba0035/code/fossil-scm.org/_FOSSIL_-mj544AAF
  2B fd:7
  dt: unixDelete(2) rc:1290 errno:9
  fossil: disk I/O error
  COMMIT

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  DBA0035:/home/dba0035/code/fossil-scm.org >
  </pre></nowiki>

  Tracked using the following patch
  <nowiki><pre>
  --- src/sqlite3.c
  +++ src/sqlite3.c
  @@ -25516,20 +25516,18 @@
     unlink(zPath);
   #ifndef SQLITE_DISABLE_DIRSYNC
     if( dirSync ){
       int fd;
       rc = openDirectory(zPath, &fd);
  +printf("dt: unixDelete(1) rc:%d zPath:%s fd:%d\n", rc, zPath, fd);
       if( rc==SQLITE_OK ){
   #if OS_VXWORKS
         if( fsync(fd)==-1 )
   #else
         if( fsync(fd) )
   #endif
         {
           rc = SQLITE_IOERR_DIR_FSYNC;
  +printf("dt: unixDelete(2) rc:%d errno:%d\n", rc, errno);
         }
         if( close(fd)&&!rc ){
           rc = SQLITE_IOERR_DIR_CLOSE;
         }
       }
  </pre></nowiki>

  The errno of 9 is <nowiki><pre>
  DBA0035:/usr/include >grep EBADF *
  errno.h:#define EBADF   9       /* Bad file descriptor                  */
  </pre></nowiki>



  To get around this I have applied the following patch to bypass the dirSync processing...  Not sure of the implications but nothing has broken yet!
  <nowiki><pre>
  --- sqlite3.c
  +++ sqlite3.c
  @@ -48918,13 +48918,12 @@
       }

       /* Delete the master journal file. This commits the transaction. After
       ** doing this the directory is synced again before any individual
       ** transaction files are deleted.
  +    rc = sqlite3OsDelete(pVfs, zMaster, 1);
  +    */
  +    rc = sqlite3OsDelete(pVfs, zMaster, 0);
  -    */
  -    rc = sqlite3OsDelete(pVfs, zMaster, 1);
       sqlite3DbFree(db, zMaster);
       zMaster = 0;
       if( rc ){
         return rc;
       }</pre></nowiki>

  <hr><i>drh added on 2010-02-24 21:51:43:</i><br>
  Seems like an easier fix is to simply recompile with 
  the -DSQLITE_DISABLE_DIRSYNC compile-time option.



  <hr><i>anonymous added on 2010-02-25 08:40:04:</i><br>
  Sometimes you cant see the answer for looking... :)

  Recompiled as suggested and autosync now working beautifully!!! Suddenly fossil comes alive.
  <nowiki><pre>
  Autosync:  http://nnn.nnn.nnn.nnn:8080/
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  Received:        1196         26          0          0
  Total network traffic: 315 bytes sent, 831 bytes received
  New_Version: 4d9585118174ba091078318d13942715b662c86b
  Autosync:  http://nnn.nnn.nnn.nnn:8080/
                  Bytes      Cards  Artifacts     Deltas
  Send:            2763         31          1          2
  Received:        1334         29          0          0
  Total network traffic: 1713 bytes sent, 903 bytes received
  </pre></nowiki>


tkt_uuid: 7c3ca0eae8287e75f79fdb05f2ed4942dcd2c0a0
type: Code_Defect
status: Fixed
severity: Important
foundin: 20100213123048
private_contact: 22e3b7a55e291d179313f4c2e34877f09743ee31
resolution: Fixed
title: "not a ordinary file" errors in update command
comment:
  With reference to ticket 15f8f4a425248c35fe0babfcb6ccf45f1d5b9932, the "not a ordinary file" problem is not restricted to the rm command.  Attempting to do "fossil update" or "fossil checkout --latest" when any file has been deleted will cause a similar error.

  This change in behavior appears to remove all straightforward means of restoring deleted files; multiple commands or extra scripting will be needed if one wishes to restore several files.

  Not to mention that it breaks existing scripts written to automate fossil processes, for unclear reasons.

  <hr><i>drh added on 2010-02-25 12:59:37:</i><br>
  "fossil update" now reverts files that are missing from the filesystem.
  I was unable to reproduce the problem with "fossil checkout".


tkt_uuid: 1b20ab6cdbeb33644f6d6c1a14028ac53c1c0941
type: Code_Defect
status: Open
severity: Critical
foundin: 4f24addea9
private_contact: 21c0f447532234366dbec18d60d747db150b5faa
resolution: Open
title: "Fossil : no such file: in -E2F0FD85......."
comment:
  What we've tested.

  All machines are running fossil version 4f24addea9 2009-12-20 and for all of the following machines we tried a clone from my server machine.

  Using The Internet: His computer running Windows 7 - Didn't work His laptop running Windows 7 - Didn't work His server running XP - DID work My Computer using my DNS:Port running Windows 7 - DID work

  Using My Local Network: My Computer using my localhost:port running Windows 7 - DID work

      My friend can't commit to the database even after cloning. 

  He keeps getting an error message

  "Fossil : no such file: in -E2F0FD85.......".

      Nothing in the database starts with a negative and doesn't have E2F0FD85 anywhere in the timeline. This seems as if the database is corrupt but we've successfully clone/committed as specified above. 

  Has anyone seen this kind of error before?

      The error occurs when I normally get the "unable to sign manifest. continue (y/N)?" message from fossil so the error is displayed after 

  " 'gpg' is not recognized as an internal or external command, operable program or batch file.'

  Though I realize some of you may not see these prompts I hope someone can be of help.

  <hr><i>drh added on 2010-03-01 00:48:07:</i><br>
  Please try running with the --httptrace option, like this:

      fossil clone http://whatever/ local.fossil --httptrace

  The debugging output that results might give us a clue about what is going wrong.

  <hr><i>anonymous added on 2010-03-01 18:07:52:</i><br>
  OK waiting for the user with the issue to run that command.  I have run it but it has always worked on my machine so that's probably not useful.  What part of the the report is what you want to see?  Should I email you the entire report?

  Also, while I have your attention, if I do have to start a new database is there a way to take all the settings and tickets from my current database to the new one without having to enter them by hand??  Like the tickets setup, users, all filled out tickets?  Has this export feature been requested?  If not, I guess this is my feature request.  If you'd like me to put it into a new ticket I will gladly do so. 

  <hr><i>anonymous added on 2010-03-03 19:57:59:</i><br>
  Instead of using --httptrace  to test over the internet we decided to have him create a new database and try to commit to it and he's still getting the same issue.  Anyone have any idea??? I'm dying here!!!



  <hr><i>anonymous added on 2010-03-08 00:15:29:</i><br>
  I just wanted to let everyone know that if they get the error I reported that it may have to do with the antivirus system you have installed.  The one we had installed was Computer Associates Antiviris version 6 and it actually stopped our commits.  Very odd.  After an uninstall it worked fine.


tkt_uuid: 80d3ba8b0ff0098d33350f24a37982f396b45e15
type: Code_Defect
status: Fixed
severity: Severe
foundin: 1efd09ed4f
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: fossil add can't add two files whose names only differ by an underscore or dash
comment:
  the following steps reproduce this problem.  in summary, when adding two files whose names differ only by a dash and underscore, e.g. a-1.txt and a_1.txt, only the file with the dash in its name will be added, even though fossil add reports that both were added.  this test was conducted using powershell on windows 7 64 bit.  i can test it on windows xp later this week.  i don't have a non-windows box to test this on.

  <pre>
  PS C:\rev\src> fossil new test.fossil
  project-id: 9968296e3e87d77b514493152ecc682e94e015cc
  server-id:  37ea13bc92c88ff92f41f5ec8c921a88eeca87a8
  admin-user: rev (initial password is "4cabdf")
  PS C:\rev\src> md test
  PS C:\rev\src> cd test
  PS C:\rev\src\test> fossil open ..\test.fossil
  PS C:\rev\src\test> echo "hello" > a_1.txt
  PS C:\rev\src\test> echo "goodbye" > a-1.txt
  PS C:\rev\src\test> ls

      Directory: C:\rev\src\test

  Mode                LastWriteTime     Length Name
  ----                -------------     ------ ----
  -a---         2/28/2010   6:23 PM         20 a-1.txt
  -a---         2/28/2010   6:22 PM         16 a_1.txt
  -a---         2/28/2010   6:22 PM       7168 _FOSSIL_

  PS C:\rev\src\test> fossil add *.txt
  ADDED  a-1.txt
  ADDED  a_1.txt
  PS C:\rev\src\test> fossil extras
  a_1.txt
  PS C:\rev\src\test> fossil ls
  a-1.txt
  PS C:\rev\src\test> fossil commit -m "underscore omitted"
  New_Version: e6cb6574e973b8743701ec4e8f7cfaa61066c99a
  PS C:\rev\src\test> fossil extras
  a_1.txt
  PS C:\rev\src\test> fossil ls
  a-1.txt
  PS C:\rev\src\test>
  </pre>

  <hr><i>rwilson added on 2010-03-02 17:17:01:</i><br>
  in the windows build, fossil uses the LIKE operator to compensate for the fact that windows has a case-insensitive file system.

  from add.c:
  <pre>
  #ifdef __MINGW32__
      if( db_exists("SELECT 1 FROM vfile WHERE pathname LIKE %Q", zPath) ){
        db_multi_exec("UPDATE vfile SET deleted=0 WHERE pathname LIKE %Q", zPath);
      }
  #else
      if( db_exists("SELECT 1 FROM vfile WHERE pathname=%Q", zPath) ){
        db_multi_exec("UPDATE vfile SET deleted=0 WHERE pathname=%Q", zPath);
      }
  #endif
  </pre>

  the problem is that LIKE treats dash and underscore oddly:

  <pre>
  PS C:\Documents and Settings\ma088024> sqlite3
  SQLite version 3.6.22
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> create table test (path);
  sqlite> insert into test values("a-1.txt");
  sqlite> insert into test values("a_1.txt");
  sqlite> select * from test;
  a-1.txt
  a_1.txt
  sqlite> select * from test where path like 'a-1.txt';
  a-1.txt
  sqlite> select * from test where path like 'a_1.txt';
  a-1.txt
  a_1.txt
  sqlite> .quit
  </pre>

  apparently, "-" is NOT LIKE "_", but "_" is LIKE "-".  this latter condition results in the confusion that this ticket describes.

  <hr><i>rwilson added on 2010-03-02 18:05:30:</i><br>
  sigh, '_' is a wildcard character in LIKE.  using LIKE to compare files in fossil add proves problematic because underscores are valid characters in file names.


tkt_uuid: 6c68067abb19bad2b1c548f91fc928975a9815c6
type: Feature_Request
status: Open
severity: Minor
resolution: Open
title: Request an option to allow cookies to not rely on IP address
comment:
  Those of us on non-static-IP DSL or cable connection have our IP addresses changed periodically (sometimes as often as every day).  As a result, our Fossil login cookies become invalid, which is very annoying.

  If it is not desirable to generally allow non-IP-based cookies, it would be nice to at least have an option to permit them for those of us who would like to manage our repositories and cookies differently.

  N.B. -- this issue also affects those of us who log in from different locations (something I do almost every day)

  <hr><i>anonymous claiming to be Ross Berteig added on 2010-03-03 01:06:57:</i><br>
  See [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01621.html|this message to fossil-users] from Kyle McKay describing one (largely untested) quick hack to get this effect. I plan to play with this a little myself since I would like to not loose sessions when working with tickets on my internal server over a VPN from home.

  The big web community sites do this (e.g. facebook, Yahoo, Google) and don't seem to be hugely worried about security issues so it must be possible to achieve. Whether it is practical to achieve and still maintain "enough" security is not obvious to me.


tkt_uuid: 0049db245ef59671d4fcefd45c02e37a70e2b622
type: Code_Defect
status: Open
severity: Cosmetic
private_contact: e408c15469a0da0ba8b15c021636ab3e715fecd7
resolution: Open
title: Firefox HTML Validator thinks all pages are full of errors
comment:
  I habitually install the HTML Validator add-on in Firefox, which provides fast feedback on the currently loaded page. The current version of that add-on (0.8.6.1) believes that every page generated by fossil has numerous errors.

  Many of these errors appear to stem from it not recognizing the DOCTYPE, which is likely because the DTD it names is spelled wrong: 

  <verbatim>"-//W3C/DTD XHTML 1.0 Strict//EN"</verbatim>

  should be 

  <verbatim>"-//W3C//DTD XHTML 1.0 Strict//EN"</verbatim>

  according to the list of "official" DTD names found at [http://www.w3.org/QA/2002/04/valid-dtd-list.html|the W3C]. (Note the extra slash between W3C and DTD.) As a red herring, the URL mentioned is at the alternate domain x3.org instead of the standard w3.org, but that isn't causing the issue.

  With that corrected (at line 94 of style.c) then the number of errors is much lower, but still significant. Typical examples (from the 12 or so listed for the home page of a clone of the fossil-scm.org repository) include:

    *  The <tt>link</tt> tags are all missing end tags.
    *  The <tt>img</tt> tags are all missing end tags.
    *  The <tt>nobr</tt> is not in the standard.
    *  There is a <tt>table</tt> element using the nonstandard <tt>hspace</tt> attribute.
    *  There is one or more extra <tt>ul</tt> end tags.
    *  There is at least one <tt>hr</tt> tag missing its end tag.
    *  There is at least one <tt>h3</tt> tag inside the span of a <tt>p</tt> tag.

  Some of these are probably correctable in the .wiki source text for this particular page, but some appear to result from the wiki translation itself.

  If the DOCTYPE is going to be XHTML Strict, then it would seem to make sense to clean up the generated HTML so that it passes a validation suite. I've rated this as Cosmetic, although there are probably implications for accessibility applications (screen readers) which could be more serious than that.

  <hr><i>anonymous added on 2010-03-03 06:16:12:</i><br>
  I'm not the original poster, I'm just adding some info.

  Ticket <a href="http://www.fossil-scm.org/fossil/tktview?name=feb61a11a0">feb61a11a0f8f911d72347daf334b76766e3a66a (XHTML standard compliance)</a> was related to this ticket.

  But this one is more up-to-date and brings more information.


tkt_uuid: 8b3c5d30f7e63cd7ed4fe0c48b1c970a58464d38
type: Build_Problem
status: Fixed
severity: Critical
foundin: 63d31b0448
private_contact: 63f4cb9d6971f7dbdee05412b8546975182b32e4
resolution: Fixed
title: Cannot build under MacOS/X 10.4 ... missing 'gethostuuid'
comment:
  If I try to build the mentioned version of Fossil under MacOS/X Tiger, the build process comes to a grinding halt due to missing symbol

     <code>gethostuuid()</code>

  referred to by <samp>sqlite.c</samp>.

  This function seems not to be available under Tiger.

  <hr><i>drh added on 2010-03-04 13:42:22:</i><br>
  Try updating the makefile to include:

  <blockquote>
  <tt>TCC += -U__APPLE__</tt>
  </blockquote>

  <hr><i>bharder added on 2010-03-04 18:14:51:</i><br>
  This fix does correct this error for me. I'd experienced same issue on my OS X 10.4.11.

  <hr><i>anonymous added on 2010-03-05 09:19:59:</i><br>
  Thanks for the quick reaction ...

  but unfortunately now it does not fail to link but to compile :-(

  <verbatim>
  gcc -g -Os -Wall -DFOSSIL_ENABLE_SSL  -I. -I./src -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c ./src/sqlite3.c -o ./obj/sqlite3.o
  ./src/sqlite3.c: In function 'unixOpen':
  ./src/sqlite3.c:25814: error: storage size of 'fsInfo' isn't known
  ./src/sqlite3.c:25815: warning: implicit declaration of function 'fstatfs'
  ./src/sqlite3.c:25814: warning: unused variable 'fsInfo'
  make: *** [obj/sqlite3.o] Error 1
  </verbatim>

  Sorry for the mess ...



  <hr><i>anonymous added on 2010-03-05 09:32:59:</i><br>
  Sorry, I did try the revision associated with that ticket, but did not follow the solution description here.

  Now as I did, all compiles fine. Sorry for the noise!


tkt_uuid: 4fe4de1b4d7e0ef592fe958b4dacf43e44eaae5e
type: Code_Defect
status: Fixed
severity: Severe
resolution: Fixed
title: "clone" does not work if the password is mistakenly entered once
comment:
  Attempt to clone, and enter an incorrect password.  You are asked for the password again.  Enter the correct password, and Fossil does <b>not</b> get the repository correctly:


  <nowiki><pre>
  fossil clone http://ron@fossil-scm.org/ fossil.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:      305113       6632          0          0
  Send:           10025        225          0          0
  password for ron:
  Server Error: login failed
  Received:          20          1          0          0
  Send:            9443        200          0          0
  password for ron:
  Total network traffic: 10909 bytes sent, 163956 bytes received
  Rebuilding repository meta-data...
  </pre></nowiki>


tkt_uuid: ebea029045e38bec44d745329d74b217f72dd73c
type: Feature_Request
status: Open
severity: Important
foundin: sqlite fossil repo
private_contact: 6d98f6f6077df35640d815a6d1223d1dfa227ac6
resolution: Open
title: Cannot view related checkins from a ticket URL
comment:
  Given the ticket URL:

  http://www.sqlite.org/src/info/9abd6aa831

  How does one view checkins related to this ticket?

  Trac shows related checkins on the ticket page.

  <hr><i>jeremy_c added on 2010-03-04 20:19:38:</i><br>
  Please see the cookbook entry:

  http://fossil-scm.org/index.html/wiki?name=Cookbook#ticket-checkin-links

  Jeremy

  <hr><i>jeremy_c added on 2010-03-04 20:20:13:</i><br>
  Oh. This is in regards to a particular install of Fossil, not fossil itself? i.e. the sqlite.org project?


tkt_uuid: fcbcdb66ff0e8a6f19a628e6d5354f256a3cc859
type: Code_Defect
status: Fixed
severity: Important
foundin: 99a98377ec
resolution: Fixed
title: Mac OS/X 10.5 build fails
comment:
  After latest changes, sqlite is not building:
  <nowiki><pre>
  gcc -g -Os -Wall -DFOSSIL_ENABLE_SSL  -I. -I./src -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -DSQLITE_ENABLE_LOCKING_STYLE=0 -c ./src/sqlite3.c -o ./obj/sqlite3.o
  ./src/sqlite3.c: In function 'unixOpen':
  ./src/sqlite3.c:25811: error: storage size of 'fsInfo' isn't known
  ./src/sqlite3.c:25812: warning: implicit declaration of function 'fstatfs'
  ./src/sqlite3.c:25811: warning: unused variable 'fsInfo'
  make: *** [obj/sqlite3.o] Error 1
  </pre></nowiki>


tkt_uuid: a2de4526a0d36bc37535350dbec9012ecb612b66
type: Code_Defect
status: Fixed
severity: Minor
foundin: Fossil version [71edacd95f] 2010-03-03 04:08:18
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: timeline graphs shows trunk line many times
comment:
  If you check link like the one below:<br>
  [http://www.fossil-scm.org/fossil/timeline?n=400&u=drh&c=2010-03-05+13%3A56%3A22]<br>
  resulting timeline shows about 24 graph lines, many of those related to trunk. That seems like a bug as seen especially on the bottom of displayed page.


tkt_uuid: c03b86469651ddc20d735a1f3d7de6cc141d8e5d
type: Feature_Request
status: Open
severity: Important
foundin: all versions before 2010-03-06 19:35:16
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Open
title: support for standalone https server in fossil
comment:
  It would be usefull to have ability to start fossil as an https server (fosssil server, fossil ui). <br>As far as I know fossil can operate as https server only in cgi mode. On window systems without server installed/configurable preparing such setup seems unachievable.

  <hr><i>ron added on 2010-03-08 05:16:39:</i><br>
  It is also an issue for those of us hosting on shared servers where we don't have a fixed IP.  However, that is an SSL issue -- how to get around the problem of IP-specific SSL certificates?  

  A typical problem scenario would be a small business or project, which hasn't the funds to buy a "wildcard" SSL cert, but wants to prevent snoopers from reading the project data as it moves on the wire.

  <hr /><i>anonymous claiming to be fossil.nrb@9ox.net added on 2012-11-13 11:39:25 UTC:</i><br />
  Note that setting https-login on via web front end can cause a lockout when a repository is hosted and https access is not supported, e.g.:

  [http://fossilrepos.sourceforge.net/cgi-bin/demo.cgi/setup_settings]

  I got out of this by downloading the login page source, editing the line to use http e.g.:

      form.action = "http://fossilrepos.sourceforge.net/cgi-bin/demo.cgi/login";

  I suggest https setting is only available to turn on via the command line, and not by the web interface.

  Rational: setting via the web offers no guaranteed way back, setting on the command line ensures the originator of the change can update it the same way.


tkt_uuid: 6166fbed08be68f7ce1a9a7822ec50438c8d03f0
type: Code_Defect
status: Fixed
severity: Minor
foundin: Fossil version [9405e691ad] 2010-03-06 19:35:15
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: timeline graphs with search shows trunk line many times
comment:
  If you check link like the one below:<br>
  [http://www.fossil-scm.org/fossil/timeline?n=200&s=graph]<br>
  resulting timeline shows about 31 graph lines, most, perhaps all related to trunk. That seems like a bug.


tkt_uuid: f35bb2003cc81e6c62b6f51377144e860280d9a5
type: Feature_Request
status: Open
severity: Minor
title: Request cmd line return 1 if no files updated, 2 for errors
comment:
  As it currently works, Fossil returns '0' on any command which succeeded, or '1' if the command was unknown or ambiguous.

  It would be useful to be able to differentiate between 'no files were updated' and 'there was an error' in scripts.  Therefore I would like to request that "0" be returned when 'all is well', '1' when 'upd' or other command updated files on disk (adding, removing or updating), and '2' if there was a problem understanding the command.  Perhaps '3' if the command actually failed but was understood.


tkt_uuid: 46241f6acb2b1ea0abb21d5636bbf004541ace64
type: Incident
status: Open
severity: Minor
foundin: [10989b5c42] 2010-03-06 19:21:10 UTC
private_contact: c2c0adc39ae945fd1e8ae97daac758c43a2c38b7
resolution: Open
title: password prompt problem in bash from MSYS on Windows NT
comment:
  When doing "fossil commit" or "fossil update" in the MSYS-bash, after I enter the password, there will be no respond (no screen output, not committed or updated, fossil seems to be still waiting for the password).

  I can enter password for other tools (svn, plink, etc.) in the MSYS-bash without any problem.

  With the older version of fossil, this problem remains.

  And there will be no such problem if I use "cmd" or the bash shell on Linux.

  <hr><i>anonymous claiming to be RBerteig added on 2010-03-09 00:07:42:</i><br>
  If bash is running under rxvt, you should try this with bash running under the stock Windows console as there are some known bugs with rxvt's emulation of Unix pseudo-tty devices under Windows.

  If your installed version of MSYS is new enough, you can just edit the shortcut to add -norxvt to the command line. If not, rename rxvt.exe to xxx-rxvt.exe so that MSSY.bat can't find it. Either way, it will launch bash with the standard Windows console and many things will work better. More information can be found by searching the archives of the [http://sourceforge.net/mailarchive/forum.php?forum_name=mingw-users|MinGW mailing list] for email mentioning problems with rxvt.


tkt_uuid: 5bba7eaa4cc1172c6f0a6657a3c6f9da852336c1
type: Documentation
status: Fixed
severity: Cosmetic
foundin: Fossil version [599e6abfb1] 2010-03-08 14:18:44
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: Fossil "Files" menu does not default to ""only the files in tip"
comment:
  Unless I am missing something "Files" (/dir link) link on main fossil menu does not default to "only the files in tip" as check-in [599e6abfb1]  comment state, but  "Tip" (/dir?ci=tip link) submenu does.

  <hr><i>drh added on 2010-03-08 19:22:19:</i><br>
  New repositories default to the new behavior.  I have not yet updated the
  legacy Fossil self-hosting repository to do the same.


tkt_uuid: 4aa8218a0e8d58ff23f9f304aa2fc33e1925d4e5
type: Code_Defect
status: Closed
severity: Critical
foundin: latest
private_contact: 3c8672754681876b69a480ef49796c023a7bf6ad
resolution: Not_A_Bug
title: Can checkout branch?
comment:
  I want to know that if fossil support to checkout branch only when more than one branch in my storage?

  <hr><i>drh added on 2010-03-09 12:20:42:</i><br>
  Yes.

  Please ask questions about fossil on the fossil mailing list: fossil-users@fossil-scm.org.  Reserve tickets for reporting actual bugs.  Thanks.


tkt_uuid: b718806816b110d428c6b341567f1cec4500f206
type: Incident
status: Closed
severity: Minor
private_contact: 42d374a94fb729c9f34defde8b63f63bc1349917
resolution: Fixed
title: Mailing list link broken
comment:
  The "mailing list" link (http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users) on frontpage of fossil-scm.org goes to a broken link on the linked page.

  This link is broken:
  http://lists.fossil-scm.org:8080/pipermail/fossil-users/

  on this page  "fossil-user Archives":
  http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

  <hr><i>drh added on 2010-03-10 21:34:34:</i><br>
  This is a well-known problem.  It is some kind of bug in the mailing list
  manager: MailMan.  Nobody knows how to fix it.

  <hr /><i>lrem added on 2011-08-24 23:12:52 UTC:</i><br />
  The front site contains now working links for both sign-up and archives.


tkt_uuid: 13536c292b60ec8598f2ae6c326a3975f2d01169
type: Code_Defect
status: Fixed
severity: Minor
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: Timeline graph cease to be displayed when number of requested events cross some arbitrary number
comment:
  Timeline graph cease to be displayed when number of requested events cross some arbitrary number<br>
  e.g.<br>
  [http://www.fossil-scm.org/fossil/timeline?n=1200]<br>
  graph is shown<br>
  [http://www.fossil-scm.org/fossil/timeline?n=1300]<br>
  only space is reserved, no graph.<br>

  If differend type of url is used, numbers are different<br>
  e.g.<br>
  [http://www.fossil-scm.org/fossil/timeline?n=855&t=trunk&y=ci]<br>
  graph is shown<br>
  [http://www.fossil-scm.org/fossil/timeline?n=900&t=trunk&y=ci]<br>
  only space is reserved, no graph.<br>

  On my local clone of fossil repo numbers differ somewhat, but are closely related to the ones presented above.

  <hr><i>drh added on 2010-03-11 17:47:32:</i><br>
  Apparently the &lt;canvas&gt; object blows up if it is taller than 32767
  pixels.


tkt_uuid: 274b530475ce1bee97d30e232ad08932c4709864
type: Code_Defect
status: Fixed
severity: Minor
foundin: 4276853ef8
resolution: Fixed
title: Tags->Timeline shows timeline of tags in huge font (firefox 3.6)
comment:
  just follow this link:
  [http://fossil-scm.org/index.html/tagtimeline]

  or klick tags->timeline

  the resulting timeline of tags is in firefox 3.6 is in very big font.
  some times larger than the normal timeline.


tkt_uuid: 7b8f21b8762189662b70c10745a8d40f78c93d45
type: Code_Defect
status: Fixed
severity: Important
foundin: 479637167a
private_contact: 62b30e8bb7d5cd4f0b99838d4d6c42622362654f
resolution: Overcome_By_Events
title: Segmentation fault when opening a clone of http://www.sqlite.org/src
comment:
  <pre>
  $cd
  $cd fossil
  $fossil clone http://www.sqlite.org/src sqlite2
      ...
  Total network traffic: 1235641 bytes sent, 15936166 bytes received
  Rebuilding repository meta-data...
  31344 (100%)...
  project-id: 2ab58778c2967968b94284e989e43dc11791f548
  server-id:  65fd455f4dffe08321c1e9895d6f6a9cad7904a0
      ...
  $cd
  $cd Lemon/fossil
  $mkdir fossil2
  $cd fossil2
  $fossil open ~/fossil/sqlite2 590d4ac1ee0db824c00c1f6b0ec3cc9437cb1477
      ...
  tool/speedtest8inst1.c
  tool/vdbe-compress.tcl
  project-name: SQLite
  repository:   /home/vincent/fossil/sqlite2
  local-root:   /home/vincent/Lemon/fossil/fossil2/
  project-code: 2ab58778c2967968b94284e989e43dc11791f548
  server-code:  65fd455f4dffe08321c1e9895d6f6a9cad7904a0
  checkout:     590d4ac1ee0db824c00c1f6b0ec3cc9437cb1477 2009-11-04 18:51:17 UTC
  parent:       f228c7ca0682c370f8c435fcade1d78b78da8e07
  Segmentation fault
  $date
  Fri Mar 12 19:15:35 CET 2010
  $fossil version
  This is fossil version [479637167a] 2010-02-13 21:11:48 UTC
  $uname -a
  Linux vincent 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010 x86_64 GNU/Linux
  $dpkg -l fossil
  Desired=Unknown/Install/Remove/Purge/Hold
  | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name     Version               Description
  +++-========-=====================-===============================================
  ii  fossil   2010.02.13.123048-1   DSCM with built-in wiki, http interface and ...
  $
  </pre>

  <hr><i>drh added on 2010-03-13 02:14:18:</i><br>
  There is no version "479637167a" in the Fossil source tree.  The
  only version from 2010-02-13 is "02f638a16f".  

  Where did you get this version of Fossil?

  Have you tried using the latest precompiled Fossil from the download page?

  <hr><i>anonymous added on 2010-03-16 19:42:03:</i><br>
  This version of fossil is the one in the Debian testing distribution. As with most Debian packages, it has some Debian-specific adaptations.

  Naturally I should have reported into the Debian bug tracking system first, and I have done so now. The Debian bug report can be found at <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574161">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574161</a>.

  I'll keep an eye on both that and this bug report.

  <hr><i>anonymous added on 2010-03-18 09:59:42:</i><br>
  Well, it turns out the latest precompiled binary has a problem as well:

  <pre>
  $fossil open ~/fossil/sqlite2 590d4ac1ee0db824c00c1f6b0ec3cc9437cb1477
  ...
  tool/speedtest8inst1.c
  tool/vdbe-compress.tcl
  project-name: SQLite
  repository:   /home/vincent/fossil/sqlite2
  local-root:   /home/vincent/Lemon/fossil/fossil3/
  project-code: 2ab58778c2967968b94284e989e43dc11791f548
  server-code:  65fd455f4dffe08321c1e9895d6f6a9cad7904a0
  checkout:     590d4ac1ee0db824c00c1f6b0ec3cc9437cb1477 2009-11-04 18:51:17 UTC
  parent:       f228c7ca0682c370f8c435fcade1d78b78da8e07 
  *** glibc detected *** fossil: free(): invalid pointer: 0x0000000000491c6b ***
  ======= Backtrace: =========
  /lib/libc.so.6[0x7f344d119d16]
  /lib/libc.so.6(cfree+0x6c)[0x7f344d11e9bc]
  fossil[0x415f09]
  fossil[0x40d038]
  fossil[0x418502]
  /lib/libc.so.6(__libc_start_main+0xfd)[0x7f344d0c7abd]
  fossil[0x402559]
  ======= Memory map: ========
  00400000-004cd000 r-xp 00000000 fe:00 402741                             /home/vincent/bin/fossil
  006cd000-006cf000 rw-p 000cd000 fe:00 402741                             /home/vincent/bin/fossil
  006cf000-006d1000 rw-p 00000000 00:00 0 
  013c5000-01ec3000 rw-p 00000000 00:00 0                                  [heap]
  7f3448000000-7f3448021000 rw-p 00000000 00:00 0 
  7f3448021000-7f344c000000 ---p 00000000 00:00 0 
  7f344ce93000-7f344cea9000 r-xp 00000000 08:03 22444                      /lib/libgcc_s.so.1
  7f344cea9000-7f344d0a8000 ---p 00016000 08:03 22444                      /lib/libgcc_s.so.1
  7f344d0a8000-7f344d0a9000 rw-p 00015000 08:03 22444                      /lib/libgcc_s.so.1
  7f344d0a9000-7f344d1f3000 r-xp 00000000 08:03 48703                      /lib/libc-2.10.2.so
  7f344d1f3000-7f344d3f3000 ---p 0014a000 08:03 48703                      /lib/libc-2.10.2.so
  7f344d3f3000-7f344d3f7000 r--p 0014a000 08:03 48703                      /lib/libc-2.10.2.so
  7f344d3f7000-7f344d3f8000 rw-p 0014e000 08:03 48703                      /lib/libc-2.10.2.so
  7f344d3f8000-7f344d3fd000 rw-p 00000000 00:00 0 
  7f344d3fd000-7f344d414000 r-xp 00000000 08:05 196539                     /usr/lib/libz.so.1.2.3.4
  7f344d414000-7f344d613000 ---p 00017000 08:05 196539                     /usr/lib/libz.so.1.2.3.4
  7f344d613000-7f344d614000 rw-p 00016000 08:05 196539                     /usr/lib/libz.so.1.2.3.4
  7f344d614000-7f344d631000 r-xp 00000000 08:03 48454                      /lib/ld-2.10.2.so
  7f344d813000-7f344d815000 rw-p 00000000 00:00 0 
  7f344d82c000-7f344d830000 rw-p 00000000 00:00 0 
  7f344d830000-7f344d831000 r--p 0001c000 08:03 48454                      /lib/ld-2.10.2.so
  7f344d831000-7f344d832000 rw-p 0001d000 08:03 48454                      /lib/ld-2.10.2.so
  7fff78586000-7fff7859b000 rw-p 00000000 00:00 0                          [stack]
  7fff785ff000-7fff78600000 r-xp 00000000 00:00 0                          [vdso]
  ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
  Aborted
  $fossil version
  This is fossil version [599e6abfb1] 2010-03-08 14:18:44 UTC
  $
  </pre>

  By the way, this is the 64-bit linux version.

  <hr><i>anonymous added on 2010-03-18 10:43:12:</i><br>
  A debug build of [599e6abfb1] run under valgrind mentions:

  <pre>
  ==2952== Invalid free() / delete / delete[]
  ==2952==    at 0x4C21DBC: free (vg_replace_malloc.c:325)
  ==2952==    by 0x4333A0: show_common_info (info_.c:86)
  ==2952==    by 0x433A6B: info_cmd (info_.c:157)
  ==2952==    by 0x4214EC: cmd_open (db_.c:1386)
  ==2952==    by 0x43C60C: main (main_.c:258)
  ==2952==  Address 0x5569b3 is not stack'd, malloc'd or (recently) free'd
  </pre>

  <hr><i>drh added on 2010-03-18 10:50:43:</i><br>
  Already fixed by check-in [0cbc5d295c9911b00ed405d301a7b8e76db77b41].


tkt_uuid: 644116e6384f6a0d3d3b637a2bf6f6639f4af680
type: Code_Defect
status: Open
priority: Medium
severity: Critical
foundin: 599e6abfb1
private_contact: cc92e9d516b0ea41d4c7d14b43b2c4dfdc22b7ae
resolution: Open
title: The last Chinese character does not show
comment:
  Let's input some Chinese summary to a new ticket, and save it. The last character is changed to a weird one.

  For example:

  中文问题

  <hr><i>anonymous added on 2010-03-14 13:04:49:</i><br>

  If we append a space and an English character, fossil crashes.

  中文问题 s

  This occurs on windows XP.

  <hr><i>anonymous added on 2010-03-14 13:07:35:</i><br>
  The original problem occurs only on Windows.


tkt_uuid: 5e624dbfca4c3735394a9fc88a35f93460926b95
type: Code_Defect
status: Open
severity: Minor
foundin: 599e6abfb1
private_contact: ab5c04693d4ea3b3339a1e41947ceb8da8054625
resolution: Open
title: branch doesn't obey clearsign setting
comment:
  The 'branch new' command always attempts to use gpg signing, even if the clearsign  setting is off.

  The code appears to check for the "omitsign" setting rather than the "clearsign" setting. (checkin also checkd for the omitsign option; nothing appears to set it anywhere -- is this a relic of an older version?)

  The --nosign option works to bypass signing; however this is not listed in the usage.

  <hr><i>anonymous added on 2010-04-07 18:04:09:</i><br>
  It seems like the preferred/expected way to create a branch is by specifying --branch on the checkin command.  Still, this command is here, and it should work the right way (or be removed altogether).  Here's a 1-line patch for this:

  <verbatim>
  Index: src/branch.c
  ===================================================================
  --- src/branch.c
  +++ src/branch.c
  @@ -53,10 +53,11 @@
     if( g.argc<5 ){
       usage("new BRANCH-NAME BASE-CHECK-IN ?-bgcolor COLOR?");
     }
     db_find_and_open_repository(1);
     noSign = db_get_int("omitsign", 0)|noSign;
  +  if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; }
   
     /* fossil branch new name */
     zBranch = g.argv[3];
     if( zBranch==0 || zBranch[0]==0 ){
       fossil_panic("branch name cannot be empty");
  </verbatim>


tkt_uuid: ce73fc217320601b9c8ba2c94507e25e82879edc
type: Code_Defect
status: Open
severity: Minor
foundin: [599e6abfb1] 2010-03-08
private_contact: 85642192e67e1e669fd6547f4b92074c6e91c71e
title: ui doesn't work on Windows 9x (portable_system() broken)
comment:
  On Windows 9x I get "Invalid command or file name" when issuing "fossil ui" command and each time browser sends a request to a fossil server.

  The problem is in portable_system() -- 9x doesn't like a hack with double quotes around a command string. Since system(string) function on Windows is implemented as %COMSPEC% /c string, on 9x we get: %COMSPEC% /c ""fossil" http "foo"", which does not work, instead of normal: %COMSPEC% /c "fossil" http "foo", which doesn't work on NT etc.

  A hack using double quotes around entire command string on Windows NT (2000, XP etc.) [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true|is documented] and works because
  cmd.exe strips the first and the last quote if a command starts with a quote. So there exists another dirty (and IIRC undocumented) hack. We could start command string with something that both cmd.exe and command.com ignore:
  <pre>%COMSPEC% /c ="fossil" http "foo"
  %COMSPEC% /c ="fossil" http foo
  %COMSPEC% /c =fossil http "foo"
  %COMSPEC% /c =start http://127.0.0.1/</pre>

  Commands above work just fine both in 9x and NT (up to Windows 7) as long as internal commands like echo or start are NOT quoted (<code>="start" http://127.0.0.1/</code> doesn't work nor <code>"start" http://127.0.0.1/</code> does). So, maybe <code>mprintf("=%s", zOrigCmd)</code> would be better? Any other ideas? And yes, I know, that it is 2010 now and 98 must be already dead… :-)


tkt_uuid: 74782e5f7cf9c3b3430c1b6debbc57c20fe7f3f8
type: Feature_Request
status: Closed
severity: Cosmetic
private_contact: ab5c04693d4ea3b3339a1e41947ceb8da8054625
resolution: Rejected
title: auto-discovery of a repository from a webpage
comment:
  It would be a nice addition if there was a way for a webpage to specify where its source repository was, for example by including a html link element in a webpage - 
  <link rel="fossil-repository" href="http://www.fossil-scm.org">
  This way, one could easily get to the source repository even if the site url is not being served by fossil directly.  

  It wouldn't make sense for this to be built into "clone"; a separate "autoclone" command that fetched the given url and looked for the link reference and then called "clone".   This functionality can be achieved with an external 2-line shell script, but that goes against fossil's all-in-one philosophy.

  <hr><i>drh added on 2010-03-19 01:06:30:</i><br>
  I do not understand what is being requested here.  Please elaborate.

  <hr><i>anonymous added on 2010-03-19 02:47:35:</i><br>
  It would not be a stretch to say that this feature request is poorly thought-out, needless bloat, or unnecessary.

  The inspiration comes from setting up a self-hosted project on sourceforge.  The project homepage is http://myproject.sourceforge.net/ which can be redirected (with php) to some other page.  As it stands, I don't think fossil will follow a 301/302 http redirect, so it would do no good to instruct people to "fossil clone http://lilypad.sourceforge.net".  They need to find the explicit url of the repository and use "fossil clone http://lilypad.sourceforge.net/cgi-bin/lilypad.fsl"   But wouldn't it be nice if they could just use the home page?  

  Just following redirects is helpful but not enough - what if the home page is still some plain html page?  So instead, if the home page had some indicator on it to allow a program to discover where the source is (similar to rss autodiscovery) then an interested user/developer could clone the repository right from the home page, without needing to track down the link to the actual repository.  (I don't know if any other systems have a similar convention, but if such a thing became widespread the search engines could make use of it)

  The effect would be roughly the same as the shell command:

  $ fossil clone `curl http://app-landing-page | grep '<link rel="fossil-source" '| sed 's/.*href="[^"]"/\1/'`

  <hr><i>anonymous added on 2010-03-19 06:48:33:</i><br>
  IMO, it is not a problem of fossil. Use RewriteEngine or whatever else. It would be enough. My Apache .htaccess is like:
  <verbatim>
  # You don't need this part:
  <FilesMatch "\.repo$">
    Options +ExecCGI
    AddHandler cgi-script .repo
    RewriteEngine Off
  </FilesMatch>

  # But you need this (you might want to replace foo.repo with /cgi-bin/foo.cgi):
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^Fossil/\[[a-z0-9]{10}\]
  RewriteRule ^(.*) /foo.repo/$1 [L]
  </verbatim>


tkt_uuid: 43bf069f44586396669e7b3e2e75e5245950293c
type: Feature_Request
status: Open
severity: Minor
foundin: 73c24ae363
resolution: Open
title: rebuild hint after updating to a newer fossil version
comment:
  i dont know if its a lack of documentation or if its just me, but i am confused about when to do a rebuild.

  ok i know that if the table structure of fossil changes, i have to do a rebuild.
  but looking from the end-user perspective, i have no clue when an update changes the structure and when not.

  i am still new to fossil, but as far as i know the user updates, try to executes a command and the command fails due to an old table structure and the user have to be so "clever" to rebuild before submitting a ticket...

  what about saving inside the table structure the fossil version from the last rebuild and check for this version by every command. if i update now fossil, it recognizes that the structure is to old and gives a hint or just do a rebuild.


tkt_uuid: f630d61ed8f048ff3ae41b8ec343107a16c68b03
type: Feature_Request
status: Open
severity: Minor
foundin: 73c24ae363
resolution: Open
title: adding comments to a tag
comment:
  in fossil there is no way to add a comment to a tag (to explain the concept behind this tag). 

  i know there are values, but the value can change per checkin:

  i.e.: <br>
  checkin 53739292 tag foo=bar<br>
  checkin 39203748 tag foo=bar2

  i think it could be useful to have a comment which explains a tag. <br>
  this comment could also be displayed in the taglist (http://www.fossil-scm.org/index.html/taglist)

  <hr><i>anonymous added on 2010-03-19 14:32:06:</i><br>
  this could be also useful for branches...

  <hr /><i>martin.weber added on 2011-09-07 13:21:24 UTC:</i><br />
  This would be helpful for everything, wouldn't it? Not only to document something, but also to discuss things; just like we have the audit trail in the ticket system where you can append remarks, that would be nice to have (imho) for anything. Right now in fossil development itself we bring things up on the mailing list -- not everyone has a mailing list though, so discussing things "in place" would/could be a nice fossil feature.

  <hr /><i>viriketo added on 2011-09-07 13:41:06 UTC:</i><br />
  I usually explain the meaning of the branch at two moments: creation checkin, and merge into parent checkin (as the purpose may have changed among the two).


tkt_uuid: 178db4bfff231152db5c5febb0f77c159ab36484
type: Code_Defect
status: Closed
severity: Important
foundin: fossil-macosx-x86-20100318142033
private_contact: 36f0fb79a71d7f6f746a9380e7eab81fa1eb1b8a
resolution: Withdrawn
title: cannot clone www.fossil-scm.org/
comment:
  I'm just trying to clone fossil to compile,
  The error
  1./fossil: unknown command: 
  occurs when I try to clone fossil, with or without an id:password in the clone URL.

  This is happening on my x86 mac, but I want to update my server which can't use a precompiled binary. (~5yo PPC Powermac)



  ---

  sp-laptop:fossil-src spdegabrielle$ ./fossil clone http://www.fossil-scm.org/ myclone.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:      316751       6885          0          0
  Send:           10025        225          0          0
  Received:      555629        254         24        176
  Send:           18849        415          0          0
  Received:      447882        440         52        348
  Send:           37649        801          0          0
  Received:      712231        840         54        746
  Send:           75249       1601          0          0
  1./fossil: unknown command: 
  sp-laptop:fossil-src spdegabrielle$ ls
  fossil

  <hr><i>anonymous added on 2010-03-25 20:33:48:</i><br>
  Worked out should exclude the password - then it works fine. 

  Still the error message wasn't hepfull.


tkt_uuid: 6977cd82d8269fd3bfbbb5bee16237713b2883d4
type: Feature_Request
status: Closed
severity: Important
private_contact: 05563413d3071de12dce19402f83fc309cfff308
resolution: Withdrawn
title: Add hidden columns to ticket reports
comment:
  Just like columns starting with '_' are displayed on separate lines, columns starting with '__' could not be displayed at all in report view. 

  My use case for this one is ordering on ticket status. As the statuses do not progress alphabetically, I added a CASE to the report query that converts them to numbers. But this CASE column adds unneeded clutter to the view.

  <hr><i>drh added on 2010-03-20 15:50:11:</i><br>
  Can you not move your CASE expression into the ORDER BY clause?

  <hr><i>anonymous claiming to be lrem added on 2010-03-22 10:11:35:</i><br>
  Agh, so easy. Of course you're right.


tkt_uuid: 45f89e504b49833746286e9c2674b838250e3776
type: Code_Defect
status: Fixed
severity: Important
foundin: 73c24ae363
private_contact: 7a46edbdd4ae23c7f1340663be03348341c2cb57
resolution: Fixed
title: Syncing a "bare" repository over SSL fails to store certificate
comment:
  I have several repositories setup on a server at home which I want to sync periodically to an external server <a href="https://code.linuxfood.net/pub/repo/git-import">Like this one</a>

  To reproduce (seen on OS X and Linux (Centos 5.3)):
  <verbatim>
  fossil clone https://code.linuxfood.net/pub/repo/git-import gi.fsl # (or probably any other ssl repo. See below).
  fossil sync -R gi.fsl

  Output:
  ...
  Send:            1091         21          0          0

  Unknown SSL certificate:

    countryName               = --
    stateOrProvinceName       = SomeState
    localityName              = SomeCity
    organizationName          = SomeOrganization
    organizationalUnitName    = SomeOrganizationalUnit
    commonName                = nudibranch.linuxfood.net
    emailAddress              = root@nudibranch.linuxfood.net

  Issued By:

    countryName               = --
    stateOrProvinceName       = SomeState
    localityName              = SomeCity
    organizationName          = SomeOrganization
    organizationalUnitName    = SomeOrganizationalUnit
    commonName                = nudibranch.linuxfood.net
    emailAddress              = root@nudibranch.linuxfood.net


  Accept certificate [a=always/y/N]? a

  REPLACE INTO global_config(name,value) VALUES('cert:code.linuxfood.net','-----BEGIN CERTIFICATE-----
  MIIEIDCCA4mgAwIBAgICX/IwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAi0t
  MRIwEAYDVQQIEwlTb21lU3RhdGUxETAPBgNVBAcTCFNvbWVDaXR5MRkwFwYDVQQK
  [snip for brevity]
  XQ6rdn5/eMocYvA0BOXd0pD5HWKX6WfX+kvqdo4P6l/2tBWCLXBlBuaLUfwZtm1S
  XBbhCw==
  -----END CERTIFICATE-----
  ')
  </verbatim>

  This behavior only occurs when you press 'a' for always.
  It appears to be a result of the fact that sync didn't used to need to write to the config database until SSL support was introduced. Accepting the cert temporarily causes it to not write it to the config.

  Opening <code>~/.fossil</code> in <code>process_sync_args()</code> appears to fix the problem. Patch:
  <verbatim>
  Index: src/sync.c
  ===================================================================
  --- src/sync.c
  +++ src/sync.c
  @@ -84,10 +84,11 @@
     const char *zPw = 0;
     int urlOptional = find_option("autourl",0,0)!=0;
     g.dontKeepUrl = find_option("once",0,0)!=0;
     url_proxy_options();
     db_find_and_open_repository(1);
  +  db_open_config(0);
     if( g.argc==2 ){
       zUrl = db_get("last-sync-url", 0);
       zPw = db_get("last-sync-pw", 0);
     }else if( g.argc==3 ){
       zUrl = g.argv[2];

  </verbatim>

  Additionally, I added an assert to be a little more violent about this kind of bug. This one is less necessary, but was useful in verifying the bug and might catch other instances as well. Patch:
  <verbatim>
  Index: src/db.c
  ===================================================================
  --- src/db.c
  +++ src/db.c
  @@ -1194,10 +1194,11 @@
   ** so this routine is a no-op.
   */
   void db_swap_connections(void){
     if( !g.useAttach ){
       sqlite3 *dbTemp = g.db;
  +    assert(g.dbConfig);
       g.db = g.dbConfig;
       g.dbConfig = dbTemp;
     }
   }
   

  </verbatim>

  Thanks,

  -B


tkt_uuid: e382a8bce330bf98df065377deef51374df9cdb7
type: Documentation
status: Open
severity: Minor
foundin: artifact/4f78615239
private_contact: 53f86f78f251171b8790b45a9e4e51835e7b2011
title: Corrections to delta format description
comment:
  Recommend the following changes to src/delta_format.wiki

  1. Revert the output of the unified diff to its oldest original (delta_format.html, not .wiki) form in artifact/403bbf0aac. As it is computer generated output, the two 'decendent' typos should never have been spell-corrected (the point of the diff is to show the spelling error being corrected by a delta).

  2. The checksum computed by src/delta.c/checksum() is actually modulo 2^32, not modulo 2^32 - 1.

  3. The base-64 encoding is not identical to any described in the RFC; Fossil's encoding uses a different alphabet starting at '0' rather than 'A' as in the RFC.

  4. typo s/This is there the/This is where the/

  I can supply a patched copy of the file if you would like.


tkt_uuid: 40aeb4f9fc18389bd73de68700365076689ec6b7
type: Code_Defect
status: Open
severity: Important
foundin: 73c24ae363
private_contact: 9ae376a210ac6f3d9868a3c52c963d462034f9cb
title: pull -R and sync -R doen't add the repository in .fossil db
comment:
  Hello,
  in the documentation, we can read in this page (http://www.fossil-scm.org/index.html/doc/tip/www/reference.wiki#all) that pull and sync command add the repository in the .fossil db.

  But if I use "fossil pull|sync -R repository" command, the repository doesn't add in .fossil db.
  The fossil info repository works, as the pull command in a checkout Repository.

  I am on mac os 10.6.2.


tkt_uuid: fba6685a5ddf573c84798ba2d9d226fedc97e782
type: Feature_Request
status: Closed
severity: Minor
resolution: Works_As_Designed
title: allow no space after -m
comment:
  A little thing, I know, but it's driving me crazy...

  fossil doesn't allow the following construction::

    $ fossil ci -m"this is my message"

  Instead, you must say::

    $ fossil ci -m "this is my message"

  Most command line utilities (notably SVN) allow the first form, without a space, and I'm constantly caught by this. It would be nice if the fossil param parsing allowed the no-space form.


tkt_uuid: 0120af475c97a8515f5522e6d68786e55a2bec40
type: Code_Defect
status: Open
severity: Minor
foundin: [73c24ae363] 2010-03-18
private_contact: 668a819fc68ae3df87285ba92d1fd8ef824e2d2b
title: branch new only works in open working directory (Win32)
comment:
  On Windows XP SP3, using a precompiled binary from fossil-scm.org (73c24ae363] 2010-03-18), the following command fails unless a fossil repository has been opened in the current directory:

    fossil branch new BranchA 2848a7f6d9 -R ..\my.repo

    --> fossil: use --repository or -R to specify the repository database

  The following succeeds:

    fossil open ..\my.repo

    --> ... checkout: e5f12d6eef...

    fossil branch new BranchA 2848a7f6d9 -R ..\my.repo

  And correctly creates the new BranchA off basis 2848a7f6d9.  Also works (in the latter case) without the -R.


tkt_uuid: 49929a3557ab0d357c2f5b2b5f672d59b3aacd25
type: Feature_Request
status: Fixed
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Fixed
title: Support REMOTE_USER CGI variable to auto login when using fossil cgi mode
comment:
  When using https or other authentication solutions such as single signon etc., the web server provides the authenticated user name in the REMOTE_USER environment variable when running a cgi script.

  I would be really nice if fossil cgi could take advantage of this.

  If REMOTE_USER is set to an existing fossil user name then that user is automatically logged in.
  If REMOTE_USER is set to a user name that is not present in the fossil user table, then the anonymous user is automatically logged in.

  This would be a really handy way to integrate fossil with preexisting authentication solutions.

  Some support seen for this on the mailing list:

  http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01711.html

    "Nothing to contribute other than to say, yeah, that would be pretty cool."

  NOTE: Supporting REMOTE_USER only makes sense when running in "fossil cgi" mode.


tkt_uuid: 18ea58d26e4edb86c21f935c61abf229ff07ccb0
type: Incident
status: Open
severity: Important
foundin: Fossil version [73c24ae363] 2010-03-18 14:20:33
private_contact: ddb110ae6d44153351f29ff08ed5f1bf476ee43e
resolution: Open
title: Unable to login
comment:
  I created a new repository and fired up the command: fossil server /path/to/proj.db

  When I try to login on port 8080 I get the following error message:

  unable to open database file
  REPLACE INTO config(name,value) VALUES('captcha-secret', lower(hex(randomblob(20))));

  I tried the precompiled version and compiled the source myself. The result is the same. OS is a Debian 5 standard system. 

  Help appreciated.

  <hr /><i>stephan added on 2011-09-15 22:09:29 UTC:</i><br />
  Is the _directory_ containing the fossil file writable? It needs to be for sqlite3 journaling to work (at least in my experience).


tkt_uuid: 741c14501ff327c212e7a3440f9f97d71c93e02b
type: Documentation
status: Open
severity: Cosmetic
private_contact: 0b8aac100efea12886cc63039f65ad822ec66d1c
title: Documentation Edit for Customising the Ticket System.
comment:
  http://www.fossil-scm.org/fossil/doc/tip/www/custom_ticket.wiki

  Change:

  Look for the text "Contact:" (about halfway through). Then insert these lines after the closing tr tag and before the "enable_output" line: 

    &lt;td align="right"&gt;Assigned to:&lt;/td&gt;&lt;td bgcolor="#d0d0d0"&gt;

  To:

  Look for the text "Contact:" (about halfway through). Then insert these lines after the closing tr tag and before the "enable_output" line: 

    &lt;/tr&gt;&lt;tr&gt;

    &lt;td align="right"&gt;Assigned to:&lt;/td&gt;&lt;td bgcolor="#d0d0d0"&gt;

  -----------

  This corrects a misalignment in the table layout where the new
  fields are displayed to the right of the existing layout
  instead of as a new line within the layout.


tkt_uuid: 3dbc12f49d069512ce8c4b9da084e851602e356a
type: Code_Defect
status: Fixed
severity: Important
foundin: Fossil version [61c52dd6aa] 2010-03-30 14:29:32
private_contact: 0b8aac100efea12886cc63039f65ad822ec66d1c
resolution: Fixed
title: Edit ticket fails to save changes if assigned_to AND remark are changed.
comment:
  1. I used instructions from http://www.fossil-scm.org/fossil/doc/tip/www/custom_ticket.wiki to add the assigned_to and opened_by fields to the ticket system.

  2. Created new ticket. There is no access to assigned_to field so it defaults to 'unassigned'.

  3. Edited this ticket. Changed the assigned_to field to another of the pulldown list values, AND appended a remark in the description and comment field.

  4. Clicked on 'Submit Changes'.

  5. Result was re-display of view ticket page with neither change made.

  6. Edited this ticket again. Changed the assigned_to field again.

  7. Clicked on 'Submit Changes'.

  8. Result was re-display of view ticket page with the new value of the assigned_to field as expected.

  9. Created another new ticket and edited to append text only. This change was accepted with assigned_to remaining as 'unassigned'.

  10. Made second edit of ticked to change assigned_to and it was accepted.

  It appears that the combination of edits to the two fields cause a failure where single field changes do not.

  I did not try other field combinations.

  <hr><i>ron added on 2010-04-04 09:57:00:</i><br>
  I don't understand what's going on.  I added "-th-trace" to my "fossil ui" on a test repo, and reproduced the problem.  Here is the output of the TH trace on submittion:
  <nowiki><pre>
  if {![info exists username]} {set username $login} if {[info exists submit]} { if {[info exists cmappnd]} { if {[string length $cmappnd]>0} { set ctxt "\n\n
  [htmlize $login]" if {$username ne $login} { set ctxt "$ctxt claiming to be [htmlize $username]" } set ctxt "$ctxt added on [date]:
  \n$cmappnd" append_field comment $ctxt } } submit_ticket } 

   
   Fossil version [251fd001a8c6e7af99500a8ca3ac38ad95577995] 2010-04-02 19:28:00 
   BEGIN_HEADER
   set project_name {JOE}
   set title {Edit Ticket}
   set baseurl {http://localhost:8080}
   set index_page {/home}
   set current_page {tktedit}
   set manifest_version {[251fd001a8c6e7af99500a8ca3ac38ad95577995]}
   set manifest_date {2010-04-02 19:28:00}
   set login {ron}
   BEGIN_HEADER_SCRIPT
   [hascap jor] => 1
   [hascap oh] => 1
   [hascap o] => 1
   [hascap r] => 1
   [hascap j] => 1
   [hascap s] => 1
   END_HEADER
   BEGIN_TKTEDIT
   set CONTENT_LENGTH {228}
   set CONTENT_TYPE {application/x-www-form-urlencoded}
   set GATEWAY_INTERFACE {CGI/1.0}
   set HTTP_HOST {localhost:8080}
   set HTTP_REFERER {http://localhost:8080/tktedit?name=98c889a3cd}
   set HTTP_USER_AGENT {Mozilla/5.0 (compatible; Konqueror/4.4; Linux) KHTML/4.4.2 (like Gecko) Frugalware Linux}
   set PATH_INFO {/tktedit}
   set QUERY_STRING {}
   set REMOTE_ADDR {127.0.0.1}
   set REQUEST_METHOD {POST}
   set REQUEST_URI {/tktedit}
   set assigned_to {ron}
   set cmappnd {adef}
   set csrf {localhost}
   set foundin {}
   set name {98c889a3cd}
   set opened_by {ron}
   set priority {Immediate}
   set private_contact {}
   set resolution {Open}
   set severity {Critical}
   set status {Open}
   set submit {Submit Changes}
   set title {test1}
   set type {Code_Defect}
   set username {ron}
   set tkt_datetime {2010-04-04 09:40:12}
   set tkt_id {1}
   set tkt_uuid {98c889a3cd6b2e555b8dc43dbec8c9b3c3f4e201}
   set tkt_mtime {2455290.90291667}
   set subsystem {}
   set comment {blah}
   set login {ron}
   set date {2010-04-04 09:47:57}
   BEGIN_TKTEDIT_SCRIPT
   append_field comment { &lt;hr>&lt;i>ron added on 2010-04-04 09:47:57:&lt;/i>&lt;br> adef}
   submit_ticket { 
  D 2010-04-04T09:47:57
  J assigned_to ron
  J +comment \n\n&lt;hr>&lt;i>ron\sadded\son\s2010-04-04\s09:47:57:&lt;/i>&lt;br>\nadef
  J priority Immediate
  J resolution Open
  K 98c889a3cd6b2e555b8dc43dbec8c9b3c3f4e201
  U ron
  Z a9dbf9bb131bee3ff365cace02d69d82


   }
   BEGIN_TKTEDIT
   BEGIN_FOOTER
   END_FOOTER
  </pre></nowiki>



  <hr /><i>anonymous added on 2010-11-25 11:21:08:</i><br />
  drh said in the mailing list that it's fixed in [e1dac0e4f6]


tkt_uuid: 786d01dc532813d0a635ec7c203f8503c2383609
type: Build_Problem
status: Open
severity: Important
foundin: 1f607de1db
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Open
title: Fix some build issues on Windows
comment:
  The attached patch against version [1f607de1db] fixes the following build issues on Windows:

    #  Fossil always gets built from the ground up.
    #  Added a flag to build a static binary.
    #  Determine the libraries to link with, according to the enabled flags (FOSSIL_BUILD_STATIC and FOSSIL_ENABLE_SSL).

       Remember to execute makemake.tcl after applying this patch.

  --tsbg

  <hr><i>anonymous claiming to be tsbg added on 2010-04-05 20:07:16:</i><br>
  I didn't find a possibility to attach the patch. Now it follows after here:

  <verbatim>
  diff -Naur -x _FOSSIL_ -x build fossil-org/Makefile.w32 fossil-src/Makefile.w32
  --- fossil-org/Makefile.w32	2010-04-04 15:15:42 +0000
  +++ fossil-src/Makefile.w32	2010-04-05 10:19:38 +0000
  @@ -19,9 +19,13 @@
   #
   E = .exe
   
  -#### Enable HTTPS support via OpenSSL (links to libssl and libcrypto)
  +#### Make a binary with all libraries statically linked.
   #
  -# FOSSIL_ENABLE_SSL=1
  +# FOSSIL_BUILD_STATIC = 1
  +
  +#### Enable HTTPS support via OpenSSL.
  +#
  +# FOSSIL_ENABLE_SSL = 1
   
   #### C Compile and options for use in building executables that 
   #    will run on the target platform.  This is usually the same
  @@ -41,18 +45,25 @@
   endif
   
   #### Extra arguments for linking the finished binary.  Fossil needs
  -#    to link against the Z-Lib compression library.  There are no
  -#    other dependencies.  We sometimes add the -static option here
  -#    so that we can build a static executable that will run in a
  -#    chroot jail.
  -#
  -#LIB = -lz
  -#LIB = -lz -lws2_32
  -LIB = -lmingwex -lz -lws2_32
  +#    to link against the Z-Lib compression library and to the OpenSSL crypto
  +#    libraries when FOSSIL_ENABLE_SSL is defined. There are no other
  +#    dependencies.
  +#
  +ifdef FOSSIL_BUILD_STATIC
  +  LIB += -static
  +  SSLLIBS = -lssl -lcrypto -lgdi32
  +else
  +# SSLLIBS = -lssl32 -leay32  # OpenSSL Versions <  1.0.0
  +  SSLLIBS = -lssl -lcrypto   # OpenSSL Versions >= 1.0.0
  +endif
  +#
   # OpenSSL:
   ifdef FOSSIL_ENABLE_SSL
  -LIB += -lcrypto -lssl
  +  LIB += $(SSLLIBS)
   endif
  +#
  +# Normal required libraries:
  +LIB += -lmingwex -lz -lws2_32
   
   #### Tcl shell for use in running the fossil testsuite.
   #
  diff -Naur -x _FOSSIL_ -x build fossil-org/src/makemake.tcl fossil-src/src/makemake.tcl
  --- fossil-org/src/makemake.tcl	2010-04-04 15:18:11 +0000
  +++ fossil-src/src/makemake.tcl	2010-04-05 10:42:39 +0000
  @@ -114,7 +114,10 @@
     puts -nonewline " \\\n \$(OBJDIR)/$s.o"
   }
   puts "\n"
  -puts "APPNAME = $name\$(E)"
  +puts "APPNAME     = $name\$(E)"
  +puts "TRANSLATE   = translate\$(E)"
  +puts "MAKEHEADERS = makeheaders\$(E)"
  +puts "MKINDEX     = mkindex\$(E)"
   puts "\n"
   
   puts {
  @@ -126,13 +129,13 @@
   $(OBJDIR):
   	-mkdir $(OBJDIR)
   
  -translate:	$(SRCDIR)/translate.c
  +$(TRANSLATE):	$(SRCDIR)/translate.c
   	$(BCC) -o translate $(SRCDIR)/translate.c
   
  -makeheaders:	$(SRCDIR)/makeheaders.c
  +$(MAKEHEADERS):	$(SRCDIR)/makeheaders.c
   	$(BCC) -o makeheaders $(SRCDIR)/makeheaders.c
   
  -mkindex:	$(SRCDIR)/mkindex.c
  +$(MKINDEX):	$(SRCDIR)/mkindex.c
   	$(BCC) -o mkindex $(SRCDIR)/mkindex.c
   
   # WARNING. DANGER. Running the testsuite modifies the repository the
  @@ -161,7 +164,7 @@
   
   clean:	
   	rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h
  -	rm -f translate makeheaders mkindex page_index.h headers}
  +	rm -f $(TRANSLATE) $(MAKEHEADERS) $(MKINDEX) page_index.h headers}
   
   set hfiles {}
   foreach s [lsort $src] {lappend hfiles $s.h}
  @@ -175,23 +178,23 @@
   append mhargs " \$(SRCDIR)/sqlite3.h"
   append mhargs " \$(SRCDIR)/th.h"
   append mhargs " VERSION.h"
  -puts "page_index.h: \$(TRANS_SRC) mkindex"
  -puts "\t./mkindex \$(TRANS_SRC) >$@"
  -puts "headers:\tpage_index.h makeheaders VERSION.h"
  -puts "\t./makeheaders $mhargs"
  +puts "page_index.h: \$(TRANS_SRC) \$(MKINDEX)"
  +puts "\t./\$(MKINDEX) \$(TRANS_SRC) >$@"
  +puts "headers:\tpage_index.h \$(MAKEHEADERS) VERSION.h"
  +puts "\t./\$(MAKEHEADERS) $mhargs"
   puts "\ttouch headers"
   puts "headers: Makefile"
   puts "Makefile:"
   set extra_h(main) page_index.h
   
   foreach s [lsort $src] {
  -  puts "${s}_.c:\t\$(SRCDIR)/$s.c translate"
  -  puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n"
  +  puts "${s}_.c:\t\$(SRCDIR)/$s.c \$(TRANSLATE)"
  +  puts "\t./\$(TRANSLATE) \$(SRCDIR)/$s.c >${s}_.c"
     puts "\$(OBJDIR)/$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h"
  -  puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c\n"
  -  puts "$s.h:\theaders"
  -#  puts "\t./makeheaders $mhargs\n\ttouch headers\n"
  -#  puts "\t./makeheaders ${s}_.c:${s}.h\n"
  +  puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c"
  +  puts "$s.h:\theaders\n"
  +#  puts "\t./$(MAKEHEADERS) $mhargs\n\ttouch headers\n"
  +#  puts "\t./$(MAKEHEADERS) ${s}_.c:${s}.h\n"
   }
  </verbatim>


tkt_uuid: 427938e2f69393d22b884be577e2e670ec23bea4
type: Feature_Request
status: Fixed
severity: Minor
private_contact: 58d7f093230d4b46d75dd37c4f48e709a9ed1400
resolution: Fixed
title: three-way merge
comment:
  I would like to request support for 3-way merge using external diff tool instead of the default auto-merge. The feature can be seen for example in [http://doc.bazaar.canonical.com/latest/en/user-guide/resolving_conflicts.html|bazaar docs] or [http://www.perforce.com/perforce/products/merge.html|perforce web] and was discussed [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01854.html|on the mailing list].

  Bazaar creates 3 files in addition to the auto-merged file, which can be passed to the external merge tool. A bzr resolve command is then called which checks the merged file and deletes the temporary files.
  Perforce uses internal merge tool which accesses the repository directly.
  Since the Perforce-way would require support for accessing fossil repos directly, a reasonable way would be using the temporary files as bazaar does.

  Many tools are capable of this type of merge (meld, diffuse, kdiff, winmerge, ...)

  <hr /><i>dmitry added on 2011-09-11 15:00:38 UTC:</i><br />
  See <i>gmerge-command</i> in [http://www.fossil-scm.org/index.html/help?cmd=settings | settings].


tkt_uuid: 303b8b118281ca4897aed7bb1ddd9cc1f7593301
type: Incident
status: Fixed
severity: Important
foundin: 5721bce8853fc3594aa52c4191b5ff46f41fa031
resolution: Overcome_By_Events
title: Very slow checkin on large repository
comment:
  A large repo takes a long time to do a 'checkin' (autosync is off, and the machine is a very fast one with lots of RAM):

  <nowiki><pre>
  time fossil ci -m 'ci time test'
  New_Version: 4434f3a0489357cd396359b85fcab7f531d5aefd

  real    2m44.684s
  user    0m44.612s
  sys     0m10.444s
  </pre></nowiki>

  The corresponding "push" was fast: <tt>real    0m7.062s</pre>

  The repository is big, but not enormous:
  <nowiki><pre>
  fossil rstats
   Number of Artifacts: 2160
    2151 full text + 9 delta blobs
   198473 bytes average, 428701769 bytes total

    Number Of Checkins: 7
       Number Of Files: 37264
  Number Of Wiki Pages: 1
     Number Of Tickets: 0
   Duration Of Project: 2 days
  </pre></nowiki>

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-12-21 16:29:38:</i><br />
  Isn't this a side effect of the setting repo-cksum=on? As it is now optional, I think this can be closed.

  <hr /><i>anonymous added on 2010-12-28 18:30:52:</i><br />
  What Joerg was pointing to requires a newer version of Fossil. Updating to the newest version will provide you the said setting.

  <hr /><i>joerg added on 2011-03-25 01:01:35 UTC:</i><br />
  Addressed by setting repo-cksum to off.


tkt_uuid: beb8f31ea5432c49e74181e7b40c44a06742264d
type: Code_Defect
status: Open
resolution: Open
title: Wrong redirect after successful logon
comment:
  I have own server configured to host several fossil repos.

  For example, on <font color=blue>http://host/repos/luaodbc/timeline</font> fossil offers me to use anonymous login and link looks like<br>
  <font color=blue>http://host/repos/luaodbc/login?anon=1&<b>g=/sls/timeline</b></font><br>
  but must be<br>
  <font color=blue>http://host/repos/luaodbc/login?anon=1&<b>g=<b>/repos/sls/timeline</b></font><br>
  As a result redirect is wrong.

  Is it misconfigured server problem or fossil one?

  <hr><i>anonymous added on 2010-04-16 02:02:38:</i><br>
  I am sorry, of course g-part of link is <b>g=/odbc/timeline</b>

  <hr><i>anonymous added on 2010-04-16 02:06:22:</i><br>
  It seems like I sleep too little <b>g=/luaodbc/timeline</b> & <b>g=/repos/luaodbc/timeline</b>


tkt_uuid: 2666a003164e0080eea24b3bdcab58d9f2a251e2
type: Code_Defect
status: Open
severity: Important
foundin: 5721bce885
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
title: failure w/ cryptic error when file missing.
comment:
  Transcript as follows:
  <nowiki>
  <pre>
  kamloops# fossil commit -m "cvs update, including taking Sverre's newest iwn-related changes; may not include 'Centrino Ultimate-N 6300' support, but is more inline w/ that driver"
  fossil: no such file: /usr/src/share/man/man9/cpu_swapout.9
  fossil: SQLITE_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress
  kamloops# fossil rebuild
  118085 (100%)....
  kamloops# fossil commit -m "cvs update, including taking Sverre's newest iwn-related changes; may not include 'Centrino Ultimate-N 6300' support, but is more inline w/ that driver"
  fossil: no such file: /usr/src/share/man/man9/cpu_swapout.9
  fossil: SQLITE_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress
  kamloops# fossil chan  | grep -i missing
  MISSING    share/man/man9/cpu_swapout.9
  kamloops# fossil rm ./share/man/man9/cpu_swapout.9
  DELETED  share/man/man9/cpu_swapout.9
  kamloops# fossil commit -m "cvs update, including taking Sverre's newest iwn-related changes; may not include 'Centrino Ultimate-N 6300' support, but is more inline w/ that driver"
  unable to sign manifest.  continue (y/N)? y
  New_Version: 42eabbd23375ca2c5db5867269ac8b92d00b117f
  kamloops# 
  </pre>
  </nowiki>


tkt_uuid: c3971eac71a1bd01cc2e47b8c1f2d109b54d5574
type: Code_Defect
status: Open
priority: Medium
severity: Minor
foundin: [7c37b46b12] 2010-04-15 23:53:15 UTC, [528c581154] 2010-09-28 18:40:01 UTC
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Open
title: fossil breaks if HOME points to read-only directory
comment:
  Try the following:

  <pre>
  export HOME=/
  cd /tmp
  fossil new test.fossil
  </pre>

  The following message is produced:

  <pre>
  fossil: SQLITE_CANTOPEN: cannot open file at source line 26294
  fossil: unable to open database file

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  </pre>

  This example assumes that the logged in user does not have write access to / but does have write access to /tmp.
  This is a contrived example that demonstrates the problem; the actual problem was encountered while attempting to use fossil when running as another user (via sudo), but with the old value of HOME (the default sudo behavior of preserving the original environment).

  If instead HOME points to another user's directory that has a .fossil, but the current user does not have write access to it and you attempt to clone (instead of just new) you get:

  <verbatim>
  fossil: SQLITE_READONLY: statement aborts at 19: [INSERT OR IGNORE INTO 
  global_config(name,value)VALUES('repo:/tmp/foo.fos',1)] attempt to write a readonly database
  fossil: attempt to write a readonly database
  INSERT OR IGNORE INTO global_config(name,value)VALUES('repo:/tmp/foo.fos',1)

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  fossil: SQLITE_ERROR: statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active
  </verbatim>

  I was expecting fossil to work whether or not it can muck around with ~/.fossil.  vim works whether or not it can write to ~/.viminfo (although it does complain if it can't).

  <hr /><i>anonymous added on 2010-10-06 12:35:15:</i><br />
  This also happens when using "sudo" to impersonate another user, because "sudo" doesn't change the HOME variable like "su" does. I have just encountered this on Ubuntu Lucid 32-bit. I am using fossil version [528c581154] 2010-09-28 18:40:01 UTC.

  buildbot@nikko:/var/lib/buildbot/Reu2/slave/bin/nikko/build$ fossil clone http://fatman@dreamtrack.dnsalias.com/fossils/reu2.cgi/reu2 ./reu2.fossil
  <br>fossil: home directory /home/fatman must be writeable

  Regards,
  Adam J Richardson


tkt_uuid: 9c8d43bfa6927905203200b118f7224542f3741b
type: Code_Defect
status: Closed
severity: Minor
foundin: [7c37b46b12]
resolution: Works_As_Designed
title: RSS permissions too strict
comment:
  rss.c requires "okRead, okRdTkt and okRdWiki" in order to produce an RSS.

  I want an anonymous user who can only read tickets and wiki to be able to get an RSS feed ... that is, I want the RSS to be useful even if I have restricted anonymous users to the minimum access.

  From what I can see, "okRead" means the user can check-out.  This seems unnecessary to me for someone to simply get an RSS feed.

  <hr><i>drh added on 2010-04-21 23:43:46:</i><br>
  Looking at the code, i seems that one or more of okRead, okRdWiki, or okRdTkt is required to
  receive RSS.  Are you sure you are looking at the latest code?

  This was updated by [78a6270fdc6ee90ae2edeac25ec94f2004cf6624] on [2010-02-05].

  <hr><i>ron added on 2010-04-22 03:18:39:</i><br>
  rss.c line 55:

  <tt>  if( !g.okRead && !g.okRdTkt && !g.okRdWiki ) </tt>

  It requires all permissions, not any of them.

  <hr><i>ron added on 2010-04-22 03:19:57:</i><br>
  oh, sorry; that was a misread on my part.

  Nevertheless, an anonymous user with low permissions cannot get an RSS feed.  I'm just looking at the wrong spot for he probllem (and it's before my coffee)...

  <hr><i>drh added on 2010-04-22 12:23:58:</i><br>
  I think that if permissions are relaxed to open up RSS further, it will start to "leak" information.
  As currently implemented, you must have check-out permission in order to get RSS information
  about check-ins, and you must have the ability to read wiki in order to get an RSS feed about
  wiki, and you must have the ability to read tickets in order to get RSS data on tickets.  This seems
  like the right level of permissions to me.


tkt_uuid: 901936cf06df1b9b9a93e7b6001f61d59f8fb53f
type: Code_Defect
status: Fixed
severity: Minor
foundin: [7c37b46b12] 2010-04-15 23:53:15
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Fixed
title: web interface behaves badly
comment:
  Going to this URL:
  <pre>
    [http://www.sqlite.org/src/artifact/c167e90]
  </pre>
  Produces a non-themed white page with this text on it:
  <pre>
    Document Not Found
    The document /home is not avaivable on this server
  </pre>
  (The URL causes a redirection to /home which then produces the above page.)

  Older versions of fossil used to do something different that was less confusing.

  In the case of an ambiguous hash prefix like this that matches multiple hashes in the fossil db, it would be most helpful if the result page simply showed a list of the possible hash matches and their types so that it's a simple matter to click on the one you want to go there.

  <hr><i>anonymous added on 2010-04-20 15:53:00:</i><br>
  Still Open.  Just trying to modify an existing ticket


tkt_uuid: e5419400994525e8ace483caa3063a7101115dbc
type: Feature_Request
status: Open
severity: Important
foundin: [7c37b46b12] 2010-04-15 23:53:15
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
title: RSS (timeline.rss) should accept t=tag option to generate RSS for checkins on a branch
comment:
  timeline.rss should support the <tt>t</tt> parameter just like timeline does so that you can do for example:
  <pre>
  http://www.fossil-scm.org/index.html/timeline.rss?t=trunk
  </pre>
  to restrict the RSS feed to just checkins on a branch just like you can already do
  <pre>
  http://www.fossil-scm.org/index.html/timeline?t=trunk
  </pre>
  to restrict the timeline display to checkins on a branch


tkt_uuid: 683457aa0f15fadc093028b59c7f3174517d81d0
type: Feature_Request
status: Open
priority: Low
severity: Minor
foundin: 1.28 [3d49f04587]
private_contact: c23353d879b71913cdff54350ae86d1235e69038
resolution: Open
title: localtime on server not syncronized. "strange" behaviour in fossil
comment:
  Hi. let me first say that fossil is a great tool witch is fun to use, and it really helps me with my workflow.

  While playing with fossil on my eee i could not understand why my wiki edits did now show.

  I was able to create new wikipages, but not able to edit old ones.

  After a short while i finally noticed that the clock on my system was completly wrong because my eee had been off so long that BIOS clock was reset to year 2002(!)

  I wonder if unsynced clocks might create similar or other issues for normal use, and if this problem could be solved in any way.

  If the local fossil server creates artifacts with timestamp in the past, it could be useful with a warning. 

  It could be other way of dealing with this, and there is also a posibility to reject this ticket and expect people to have good clocks and ntpservices on their computers. - if so, maby some lines about this in the documentations.

  Thank for a great tool.

  Kjell. 

  Norway.


tkt_uuid: 39a340063da5b2efddcdb45d534100b31d9c5118
type: Code_Defect
status: Open
severity: Cosmetic
foundin: 73c24ae363
private_contact: ace2a438fb254e5d21ba2ed1295b2da8392d271c
title: In HTML mode, wiki inserts stray paragraph for [] links
comment:
  In the fossil version dated 2010-03-18 14:20:33, When the wiki is set to HTML mode and the [some link] syntax is used, in the generated HTML a stray <p></p> tag is inserted starting before the link, so for example this html-mode wikitext:

  <verbatim>
  <p>You should do a [TODO] today!</p>
  </verbatim>

  Is turned into this html:
  <verbatim>
  <p>You should do a <p><a href="http://localhost:8117/wiki?name=TODO">TODO</a> today!</p></p>
  </verbatim>

  Which displayed looks roughly like this (notice unexpected line break):
  <verbatim>
  You should do a
  TODO today!
  </verbatim>

  This makes the square bracket link syntax pretty much unusable when in HTML mode in this version.


tkt_uuid: 466e4bbdc7c90d5e031a7e358fe5a08944ceebba
type: Code_Defect
status: Closed
severity: Important
foundin: 7c37b46b12
resolution: Fixed
title: "title" html tag doesn't seem to work properly
comment:
  Create a new repository.  Create a file there called 'index.wiki', whose
  contents are:

  <nowiki><pre>
       &lt;title>Manual&lt;/title>

       This is a test page
  </pre></nowiki>


  Add, commit and then do 'fossil ui'.  Navigate to "doc/tip/index.wiki" and you
  will see the title tags literally rather than causing the page title to
  change.

  I think the "&lt;" is getting escaped on commit or something

  <hr><i>drh added on 2010-04-22 12:25:11:</i><br>
  Please attach the exact text of your document so that I can try to reproduce the problem.

  <hr><i>ron added on 2010-04-27 19:12:53:</i><br>
  I can't see a way to attach to the ticket, so here is the zip w/ the fossil database as well as the wiki file:

  http://ronware.org/test-466e4bbdc7.zip

  <hr><i>ron added on 2010-04-28 05:43:12:</i><br>
  thanks!


tkt_uuid: a534227710d3e560aa47499e6f80f764a6444f7d
type: Code_Defect
status: Fixed
severity: Minor
foundin: [7c37b46b12] 2010-04-15 23:53:15
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Fixed
title: Web UI "Admin -> Sync Now" should be removed except maybe for "fossil ui"
comment:
  The fossil web interface provides a "Sync Now" option on the Admin page.  However, in order for this to work correctly, the following must all be true:

  <ol>
  <li>The running fossil serving the request must have a current directory within a "fossil open" checkout or exactly one repository must be specified on the command line (not a directory).  &#91;<font size="-1">It appears that a single-repository cgi script is no longer good enough as the repository is closed by the time the process_sync_args function runs and since no repository name is available in the options list (it's embedded in the script instead) fossil fails to find the repository.</font>]

  <li>The environment must have a HOME (or equivalent) variable set to a path that allows writing/creating both .fossil and .fossil-journal files.  &#91;<font size="-1">This may be a particularly challenging requirement to satisfy in a secure manner when the fossil cgi is running as the www user on a web server.  Although certainly using the /usr/bin/env command in the #! line of a fossil cgi script to set HOME then run fossil may be of some help here, but that seems clumsy.</font>]
  </ol>

  This breaks down if fossil was started with the "fossil server directory" option (or the corresponding fossil cgi "directory: ..." option).  Which repository will get sync'd when you select "Sync Now"?  In fact it looks like if the above conditions are true, you'll always sync the same repository which may or may not be related at all to the the repository being viewed via the web ui.

  However, for the "fossil ui" command only, none of the above applies since a single repository must be specified and it's reasonable to expect the conditions listed above to always be satisfied correctly.

  Is it possible to just suppress the "Sync Now" option unless the command that started the server was "fossil ui"?

  P.S. Even when using "fossil ui" to run the "Sync Now" option (and it does work) the sync progress output corrupts the content being returned -- all the progress details from the sync are output before the initial "HTTP/1.0 200 OK" response so it's kind of surprising that the browser even displays the real html content correctly at all (after the mash of sync progress output at the top of the page).  It might be simpler just to get rid of the web interface to "Sync Now" completely.

  <hr><i>drh added on 2010-04-22 15:22:03:</i><br>
  I agree that the current Sync Now implementation is entirely inadequate and has been
  removed.  But this reopens feature request [3b1533a090eebd09] which seems to be a
  real need.  There needs to be some mechanism added back to SQLite to do a sync or push
  or pull from the web interface for use on servers without command-line access.


tkt_uuid: e5e2e0408ed3d237e803a06a221291e909f55ea8
type: Feature_Request
status: Open
severity: Important
foundin: [7c37b46b12] 2010-04-15 23:53:15
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
title: Universal binary builds for Mac OS X
comment:
  The downloads available on:

  [http://www.fossil-scm.org/download.html]

  are for Mac OS X 10.5/10.6 intel only.  Please build a universal binary that works with Mac OS X 10.4+.  If the 10.4 SDK is installed (should be installed by default with the 10.5 developer tools -- it may be an optional install with the 10.6 tools) into the normal default location of <tt>/Developer/SDKs/MacOSX10.4u.sdk</tt> then simply using this command:

  <pre>
  make \
    CFLAGS='-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4' \
    LDFLAGS='-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4'
  </pre>

  instead of just "<tt>make</tt>" in the fossil source checkout will produce a universal binary that runs on 10.4 or later on PowerPC or Intel machines.  (Of course it doesn't hurt to run <tt>strip</tt> on the final <tt>fossil</tt> file produced either.)

  There are still a lot of PowerPC machines out there (and a fair number of 10.4 ppc machines -- that's the last version of Mac OS X that will run classic apps) and this change is a relatively painless thing to do to support more platforms and make fossil accessible to more folks who are unwilling (or unable) to build from sources themselves on Mac OS X.

  I have verified that the universal binary fossil executable built this way runs successfully on these platforms:
  <ul>
  <li>10.4 PowerPC G4
  <li>10.5 PowerPC G5
  <li>10.5 Intel x86_64
  <li>10.6 Intel x86_64
  </ul>
  and so believe there are no problems with the universal binary produced this way.


tkt_uuid: b7b9a4d6eed812252bf189762dde0a147b57db82
type: Code_Defect
status: Open
severity: Important
foundin: 7c37b46b12
resolution: Open
title: TH variable "$current_page" does not show the expected value
comment:
  Add code such as:

  <nowiki><pre>html "<a href='$current_page'>$current_page</a>"</pre></nowiki>

  to the 'header'.  Notice that the value display changes as you move from page to page.  Notice further that all 'doc/...' pages say 'doc', and not the name of the actual page!  This essential renders this variable useless.

  <hr><i>ron added on 2010-04-26 19:33:10:</i><br>
  Oof.  I mean to type:

  <nowiki><pre>
  html "&lt;a href='$current_page'>$current_page&lt;/a>"
  </pre></nowiki>


tkt_uuid: 66be806dbed81a8c4c8576add879c8f9bc4e2bc0
type: Code_Defect
status: Open
severity: Minor
foundin: [73c24ae363] 2010-03-18 14:20:33 UTC
private_contact: 2a0086d1467a9270dd9451448b75d6cb9eba0ed7
title: Out of memory error when cloning non-existant repository
comment:
  Server was set up as per manual, but path in test.cgi was wrong, so fossil CGI replied:
  <verbatim>
  HTTP/1.1 200 OK
  Server: nginx
  Date: Sun, 02 May 2010 11:14:55 GMT
  Content-Type: text/html; charset=utf-8
  Connection: close
  Cache-control: no-cache, no-store
  Content-Length: 122

  <p><font color="red">repository does not exist or is in an unreadable directory: /home/username/etc/test.fossil</font></p>
  </verbatim>
  And fossil said:
  <verbatim>
  C:\foo>fossil clone http://www.site.ru/cgi-bin/test.cgi test.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  out of memory
  </verbatim>


tkt_uuid: a90a412aef33a237bbc88594d331d6808c4bf10a
type: Feature_Request
status: Open
severity: Important
foundin: [c56af61e5e] 2010-04-22 15:48:25
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Open
title: fossil tag command does not accept -m / -M options
comment:
  The fossil tag command does not accept the -m or -M option to specify a comment.
  In other words, the C card should be optionally allowed on control artifacts (just like it is optionally allowed on attachments according to the docs) and the -m or -M option to the fossil tag command should set the C card if a -m or -M option is given.


tkt_uuid: 7995323ab2ae7e8b388cfbd654bd39ebfc934357
type: Code_Defect
status: Closed
severity: Important
foundin: [c56af61e5e] 2010-04-22 15:48:25
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Works_As_Designed
title: ignore-glob setting does not work on directory names
comment:
  1. Create a new fossil repository and open it in a new directory like so:
  <pre>
  mkdir showbug
  cd showbug
  fossil new showbug.fossil
  fossil open showbug.fossil
  </pre>
  2. In the open fossil checkout, create a new file and a new directory with a single file in it:
  <pre>
  touch tarfu.bar
  mkdir fu.bar
  touch fu.bar/snafu
  </pre>
  3. Verify that it shows up in the fossil extra output.<br />
  <pre>
  $ fossil extra
  fu.bar/snafu
  tarfu.bar
  </pre>
  4. Use '<tt>*.bar</tt>' for the ignore-glob setting like so:
  <pre>
  fossil setting ignore-glob '*.bar'
  </pre>
  5. The fu.bar directory's contents still show up in the fossil extra output:
  <pre>
  $ fossil extra
  fu.bar/snafu
  </pre>
  6. Expected behavior is that the <tt>foo.bar</tt> directory and all its contents will be ignored since its name matches the <tt>ignore-glob</tt>.

  <hr><i>drh added on 2010-05-03 11:05:59:</i><br>
  The correct glob pattern would be this:

     fossil setting ignore-glob '*.bar/*'


tkt_uuid: fba687385ffa1096b1a4622dbaddf4b6e693adb9
type: Incident
status: Closed
severity: Important
foundin: 73c24ae363
private_contact: cb9895983f32946f27a57b1ea169270321707822
resolution: Not_A_Bug
title: Successful merge (no conflicts) cannot be checked in
comment:
  I was following the tutorial on Branching/Tagging/Merging and was trying to emulate the situation on Figs 2 & 3.

  I checked out the text file from the trunk branch, and ran the "fossil merge" command followed by the version number of the fork's leaf. The merge appeared to be successful since no conflicts were listed, but when I tried to commit it, I got the message "fossil: cannot do a partial commit of a merge." Doing it the other way (merging the one from the trunk into the forked leaf) got me the same result: merge had no conflicts, but Fossil cannot check it in.

  Sorry if I cannot look into the underlying code, I'm no programmer. I'm using Fossil mainly for my writing projects, since it's pretty much self-contained. I hope to hear from you guys soon!

  Thanks,
  Isxek

  <hr><i>drh added on 2010-05-04 11:29:24:</i><br>
  After a merge, you need to commit the entire tree, not individual files.

  <blockquote><pre>
  fossil commit
  </pre></blockquote>

  Not

  <blockquote><pre>
  fossil commit somefile.txt
  </pre></blockquote>


tkt_uuid: 43e2fc335c6d6b7e39149d685b0840ccb28f86a7
type: Code_Defect
status: Open
severity: Important
foundin: Fossil version [6f9901dd42] 2010-05-02 19:21:11
private_contact: 53f86f78f251171b8790b45a9e4e51835e7b2011
title: Filenames containing spaces are downloaded with + signs from the browser link
comment:
  Add a filename containing a space and commit it. Then when using the browser to download the file from the download link, the file will be saved with a + where the space character(s) were

  Example.
  If the file is 'file 2.txt', you will get a link such as

  http://localhost:8081/raw/file+2.txt?name=139084078bfa5217c37fd09f7d15d719344c605c

  and by default the browser (IE6, chrome, safari) will save it as 'file+2.txt'

  I first encountered this using the windows version of fossil. However a self compiled macintosh version of fossil does the same thing.


tkt_uuid: 64386b2221309d766835c42a18a876b09b2dd9f1
type: Documentation
status: Fixed
priority: Low
severity: Cosmetic
foundin: 6f9901dd4231a587a33ccb72b971a0c82d296b7d
private_contact: 0f513cfb5833ce83e3034c8904053ae6a46caff5
resolution: Fixed
title: small typo in webpage branching.wiki "once" => "one"
comment:
  Trivial typo

  <pre>
  In page:
     http://www.fossil-scm.org/index.html/doc/tip/www/branching.wiki<br>
  In the phrase
     "Thus the two tags on check-in once cause all ..."<br>
  I suspect "once" should instead be "one".
  </pre>


tkt_uuid: 97d8f830b7e5e2505546809e7ec5752fc850111b
type: Code_Defect
status: Fixed
severity: Important
foundin: [6f9901dd42] 2010-05-02 19:21:11 UTC
private_contact: 5b06cbfac6af383308ac23d75ace1bba970322f9
resolution: Fixed
title: Fossil journal file included when adding files
comment:
  A file named "_FOSSIL_-journal" gets added when I try adding a bunch of files into the new repo:

  <pre>C:\ARNEL\test1
  >fossil open testing2.fsl

  C:\ARNEL\test1
  >fossil add .
  ADDED  00-ReadMe.txt
  ADDED  Copydatshit.bat
  ADDED  HashMyFiles.chm
  fossil: cannot add _FOSSIL_
  ADDED  _FOSSIL_-journal
  ADDED  lipsum.txt
  ADDED  quittersettings.xml
  ADDED  readme.txt
  fossil: cannot add testing2.fsl

  C:\ARNEL\test1
  >fossil rm _FOSSIL_-journal
  DELETED  _FOSSIL_-journal</pre>

  It does get removed from the list, but it should probably avoid this file as well since it issues an error for the _FOSSIL_ file itself.


tkt_uuid: 4497341fa070690c4938fdad92cdd53be86635ed
type: Build_Problem
status: Fixed
severity: Important
foundin: [11b3f31de9] 2010-05-09 16:51:12 UTC
private_contact: 5b06cbfac6af383308ac23d75ace1bba970322f9
resolution: Fixed
title: "zlib1.dll not found" error after building latest leaf
comment:
  After compiling the latest Fossil source for Windows using the instructions on the Cookbook wiki section, opening an existing Fossil or creating a new one results in the error message "This application has failed to start because zlib1.dll was not found. Re-installing the application may fix the problem." It will not create the repo or open it.

  The source was compiled on a Windows XP Pro SP3 machine.

  Here's what I did:
    *  Uninstalled both MingW and MSYS, then made another fresh install of both.
    *  Downloaded the latest source from zlib.net, used its Makefile.gcc to build "libz.a"
    *  Copied libz.a over to the "lib" folder inside MingW
    *  Downloaded the Zip file from the latest Fossil leaf and extracted it into a separate folder
    *  Mounted the folder in the bash shell and compiled the Fossil source using the same Makefile.w32 included with it.

  Now it works fine.

  <hr><i>anonymous claiming to be anonymous (said to be Arnel) added on 2010-05-09 22:07:14:</i><br>
  The same error message appeared now after I tried to commit a bunch of files into the new repo. No error occurred when creating a repo, opening it, and adding files into it.

  <hr><i>anonymous claiming to be Arnel added on 2010-05-09 22:30:33:</i><br>
  Please ignore my last comment. It was the first Fossil build I created (with the zlib1 error) causing the commit error, not the second one.


tkt_uuid: 173e80a4df2d12f239850a28237968cf5713b07e
type: Feature_Request
status: Open
severity: Cosmetic
foundin: 11b3f31de959dc5bb81c8d20a4716d6354d2801a
private_contact: bcda72702795946817fd2b0d0b138988a5ad7989
resolution: Open
title: fossil header/footer/css/ticket pages should be version controlled
comment:
  Fossil header/footer/css/ticket pages (possibly everything under fossil config) should be version controlled. I understand that it is not desiderable to have them synced by default, but when you DO want to keep them synchronized between several repositories, it would be much simpler if the system automatically knew what is the most current one so the "fossil config sync ..." would do the right thing (currently I must think if I want pull or push, and doing the synchronization automatically is impossible ; also, configuration is transfered even when already identical).

  Also, ticket [bf536aff75] mentioned that "it would also be nice if these elements were revision controlled, but that is an entirely different ticket" ... I didn't found such ticket so I'm writting it.

  <hr><i>anonymous claiming to be anonymous (reporter) added on 2010-05-09 23:14:46:</i><br>
  Based on my (possibly limited) understanding of syncing process, I would propose following implementation:

  1) Instead of storing value of config variable directly, the value would be stored in artefact (with additional information like parent artefact) and the ID of artefact would be stored in config variable.

  2) On config push/pull, the "pushing side" would say "I'm using artefact with ID X for this config variable". The "pulling side" would then compare ancestors of the pushing side artefact and its own artefact for this variable and determine which is newer. In case of conflict, the configuration would stay unchanged but user would be warned and given some tool to resolve the conflict on "pulling side" repository (use local, use remote, "merge" and edit).


tkt_uuid: 3e3018e96f64363cf0bd863b5fd99c16ddbed61e
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: 8d246c2ef2694126833b191922369b1c6b0f7311
title: ticket history (ala roundup)
comment:
  Hello,

  what do you think about adding ticket history when displaying data for the certain ticket?

  It is, imho, nice feature in Roundup which enables one to quickly see what is going on with the ticket.

  See eg. example at: http://bugs.darcs.net/issue1103


  Sincerely,
  Gour


tkt_uuid: 9d0f274589133330c2b59b355386eb2166f25955
type: Code_Defect
status: Fixed
severity: Minor
foundin: Fossil version [73c24ae363] of 2010-03-18 14:20:33
private_contact: 9d51a8b06966fd2ab0f28ccfb14200a7623c7eed
resolution: Fixed
title: Ticket attachment shows garbage
comment:
  I'm doing some testing to see if fossil would be something I can use.
  In a new repository, I created a ticket, then added an attachment to it.
  I then went to look at the ticket's attachment page, but that displays garbage in the ticket name.

  I'll add a few screen shots to show you what I mean.

  <hr><i>anonymous added on 2010-05-11 06:33:03:</i><br>
  Ah. Turns out you've disabled uploading of attachments to this site. :-)


  Anyway, here's what I get:

  Artifact 9ae3976b33df2675379e8573fe0183512a660870

  Attachment "openfromwine" to ticket [69ac5866fe
  ̄ڿ���ڿ] added by tinus on 2010-05-11 06:20:58.


  Looks nifty, huh?  But clicking the link results in an error, because the ticket can't be found anymore.

  <hr><i>anonymous claiming to be zachtodd added on 2010-05-21 13:25:59:</i><br>
  Just tried this locally by uploading a gif and reproduced the same error.  

  46dd273456
  �䟿��,@�
  �䟿�

  Looks like the valid hash followed by garbage.  Maybe missing a null terminator?

  I'll try to find out what's going on and fix it if possible.

  <hr /><i>dmitry added on 2011-09-11 14:26:17 UTC:</i><br />
  Fixed in [65d2067247].


tkt_uuid: fc428d2107d6b810fff67892896137c66abd3484
type: Code_Defect
status: Fixed
severity: Important
foundin: trunk
private_contact: d6f2a74089d9103282b467c349a7ad1d144e22c6
resolution: Fixed
title: fossil extras generates SQL error after c193d2c2e0
comment:
  Running `fossil extras` on seemingly any repository generates this error:
  fossil: SQLITE_ERROR: near ",": syntax error
  fossil: near ",": syntax error
  SELECT x FROM sfile WHERE x NOT GLOB ('manifest','manifest.uuid','_FOSSIL_','_FOSSIL_-journal','.fos','.fos-journal');   AND NOT 0 ORDER BY 1

  Reverting the GLOB function back to IN as it was before seems to fix the issue:
  -      " WHERE x NOT GLOB ('manifest','manifest.uuid','_FOSSIL_',"
  +      " WHERE x NOT IN ('manifest','manifest.uuid','_FOSSIL_',"

  <hr><i>rwilson added on 2010-05-12 14:09:08:</i><br>
  fixed by checkin [b24b2e1bba681bc13fa17830a6f874e36628d644]


tkt_uuid: c198af688022e3781e69a27d27bc78b03e1fbd5b
type: Code_Defect
status: Fixed
severity: Severe
foundin: b24b2e1bba
private_contact: e8353b1e9ee35f57daacf6c405daaabdd612486a
resolution: Fixed
title: url_parse passes paths through mprintf, breaking % encoding (thus ~ too)
comment:
  <verbatim>
  fossil test-urlparser http://donkey.vernier.se/~fossil/picmidi
  correctly parses and generates http://donkey.vernier.se/%7Efossil/picmidi, which is stored in the fossil.

  On loading the remote-url for sync, pull, push, or merely display, this is passed through url_parse again, with devastating results:

  fossil test-urlparser http://donkey.vernier.se/%7Efossil/picmidi
  g.urlPath      = /-1.094057E-02fossil/picmidi

  I believe the failing line is in src/url.c:
      g.urlPath = mprintf(&zUrl[i]);
  </verbatim>

  <hr /><i>anonymous added on 2010-09-23 02:02:45:</i><br />
  Fixed in [a203674aa54063b166fe5999dd55c0443ed3f717], although never acknowledged.


tkt_uuid: 4149936e4450af2e6e15388bd03580dfb80f0326
type: Documentation
status: Open
severity: Minor
private_contact: ab45d2de52b84283c23a30c052e703175f339b72
title: show fossil command lines on branching.wiki
comment:
  It would be quite helpful if the wiki page explaining the concepts for branching and tagging also showed some sample commands that would reproduce the pictured trees.


tkt_uuid: 98b976f05a47aa7ba06a20dd8b303c18feae0789
type: Build_Problem
status: Closed
severity: Minor
foundin: [1a987869e0] 2010-05-16 19:38:58 UTC
private_contact: 5b06cbfac6af383308ac23d75ace1bba970322f9
resolution: Open
title: "Behavior" menu disappeared
comment:
  The <em>Admin</em> &gt; <em>Behavior</em> menu disappeared with the latest build (the one with the new Simplified BSD license).

  Compiling the latest leaf in the "gpl" branch restores it.

  <hr><i>anonymous claiming to be Arnel added on 2010-05-23 16:35:41:</i><br>
  Closing the ticket since the change is related to the license. Going with the GPL version for now till the said option gets merged back to the trunk.


tkt_uuid: 0d18db83e1dccf3f18830e2692ab3adca5e06ce5
type: Code_Defect
status: Closed
severity: Minor
foundin: [4c931047ef] 2010-05-14 17:02:31
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Not_A_Bug
title: You heve to log in to view tickets
comment:
  http://fossil-scm.org/index.html/rptview?rn=2 has a list of tickets.

  Unless I log in I cannot view them, there are no links to individual tickets on the page.

  <hr /><i>anonymous added on 2010-12-21 17:17:58:</i><br />
  Richard doesn't want Google et al to scan the various file sets and that's why login is required to enable hyperlinks. You can change this in your own repositories.


tkt_uuid: 53aa95f382289c25ee847521762edbe7e5da768e
type: Code_Defect
status: Open
severity: Important
foundin: [4c931047ef] 2010-05-14 17:02:31
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Open
title: web colors broken
comment:
  It is possible and completely reasonable to set the default web colors to white text and links on black background.

  Since the fossil web pages set the background color to white and leave the text color at default you can imagine how well this meshes with different defaults.

  FYI you can easily change the default colors in the preferences dialog of Firefox and Internet explorer. Some browsers require more effort to change these.

  <hr><i>anonymous added on 2010-05-17 17:47:19:</i><br>
  To get the intended behaviour you probably want to add 

  BODY { color:black } 

  to the CSS.


tkt_uuid: 1511c1ef255e00d43dee8534867bd7b5d0a89bca
type: Build_Problem
status: Open
severity: Important
foundin: 20100318142033
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Open
title: The makedeb.sh script should be more robust
comment:
  1) The script asks to run in built source directory but since it can tell the source is not built it can just run make (assuming it is run as debian/makedeb.sh so there is good chance there actually is the fossil source in the current directory).

  2) when run in a built source directory it does not really work, it has to be run in the debian subdirectory of the built source directory.

  3) the version of the package is determinad by the build date, not the source date.

  $ sh makedeb.sh 
  Creating .deb package [/home/hramrach/Downloads/fossil-src-20100318142033/debian/fossil-scm-2010.05.17-1-dev-i386-ubuntu-gutsy.deb]...
  Generating md5 sums...
  Generating Debian-specific files...
  Generating DEBIAN/control...
  dpkg-deb: building package `fossil-scm' in `/home/hramrach/Downloads/fossil-src-20100318142033/debian/fossil-scm-2010.05.17-1-dev-i386-ubuntu-gutsy.deb'.


tkt_uuid: 78d8659da37dcf08a93aae8bdb89bc296431b085
type: Code_Defect
status: Open
severity: Minor
foundin: 96beb40d8e
title: fossil does not ask for password when autosync
comment:
  I do 'fossil update'. Fossil autosyncs but does not ask for password just prints 'Error: login failed'


tkt_uuid: 4404464b0dd64dd389e80c3f474488f5d3239725
type: Documentation
status: Review
severity: Critical
foundin: Fossil version [4c931047ef] 2010-05-14 17:02:31
private_contact: 867649f1e43e51eb74694c33676acc0c33f743f3
resolution: Open
title: Typo, Quick-start and newbies
comment:
  I want to get my company using fossil, but can't figure it out from the web site and can't find a forum or email to seek help, so I'm adding this!
  The tutorial in the wiki is no help.
  The 'quick start' is all out of order: a newbie needs a process to follow to see things happening.
  The first thing any user will want to do is put a file into a new repository, get it to another PC, change it, and see the changes on the first PC...
  Here's what I'm trying (using Windows at the moment):

    1)  Get fossil.exe on each of two PCs, in the Windows folder and open a comman
  d prompt.

    2)  on one PC which I'll call Server, create a file Test.txt with the following two lines:
  <blockquote><pre>
  Line 1
  Line 2
  </pre></blockquote>

    3)  still on server, type:
  <blockquote><pre>
  fossil new Test.fossil
  fossil open Test.fossil
  fossil add Test.txt
  fossil commit -m "First version"
  fossil close Test.fossil
  fossil ui Test.fossil
  </pre></blockquote>

    4)   Set up the new project name, description and logo in the browser

    5)   Set the (Windows) firewall (control panel) to listen to TCP port 80

    6)  on the other PC, which I'll call Client, type:
  <blockquote><pre>
  fossil clone http://Server/Test.fossil Test.fossil
  </pre></blockquote>

  The party ends here. I get told:

  <blockquote><pre>
  __________________________________________________________
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  ERROR. server says:  405 Method not allowed
  Send:             619         24          0          0
  ERROR. server says:  405 Method not allowed
  Total network traffic: 603 bytes sent, 2000 bytes received
  Rebuilding repository meta-data...
  0 (0%)...
  project-id: (null)
  server-id:  cdc358fe23c4aeb03e467e6e9c44d8b4547bb4d8
  admin-user: Ross (password is "0f00ea")
  __________________________________________________________
  </blockquote></pre>

  Apparently Artifacts should be artefacts (i->e)

  What does "ERROR. server says:  405 Method not allowed" mean?
  How do I get a copy of Test.txt out of the repository to edit?

  You must have spent hundreds of hours on the code, but it's wasted if it takes an enthusiastic newbie I.T. manager a day to get this far! I'd love to use fossil and support it, but it needs a forum for help (I can't find one) or at least a walk-through in the style I started above (perhaps a flow chart to include potential errors like forgetting to open ports). If it needs me to write the docs, I'll do it, but first I need to make it work!

  <hr><i>anonymous claiming to be Arnel added on 2010-05-18 23:14:33:</i><br>
  The repo cloning needs to be done this way:
    *  Launch the server instance using either <tt>fossil ui</tt> or <tt>fossil server</tt> using the first repo.
    *  On the user's own PC (where the clone will be kept), run <tt>fossil clone http://&lt;servername or IP address&gt;:&lt;port #&gt; clone_repo.fossil</tt> to process the cloning.

  The documentation's a little sparse than what I would have liked, yes, but I've found the text within the "help" command sufficient for what I needed. Most of the wikis go deeper into some of the concepts involved with Fossil and DVCS in general. Is there anything in particular that you're looking for?

  <hr><i>anonymous claiming to be Ross added on 2010-05-20 21:26:32:</i><br>
  Specifically, I'd like a forum to ask questions on, but for now, to know what this means:

  ERROR. server says: 405 Method not allowed

  and how to get a copy of a file from the server to the client (I've got as far as your bullet points, but something is wrong... 405

  My previous attempt at writing a post lost every other newline, so I'll reformat it and make it legible here:

  __________________________________________________________

  I want to get my company using fossil, but can't figure it out from the web site and can't find a forum or email to seek help, so I'm adding this! The tutorial in the wiki is no help. The 'quick start' is all out of order: a newbie needs a process to follow to see things happening.

  The first thing any user will want to do is put a file into a new repository, get it to another PC, change it, and see the changes on the first PC...

  Here's what I'm trying (using Windows at the moment):

  1) Get fossil.exe on each of two PCs, in the Windows folder and open a command prompt.

  2) on one PC which I'll call Server, create a file Test.txt with the following two lines:

  Line 1

  Line 2

  3) still on server, type:

  fossil new Test.fossil

  fossil open Test.fossil

  fossil add Test.txt

  fossil commit -m "First version"

  fossil close Test.fossil

  fossil ui Test.fossil

  4) Set up the new project name, description and logo in the browser

  5) Set the (Windows) firewall (control panel) to listen to TCP port 80

  6) on the other PC, which I'll call Client, type:

  fossil clone http://Server/Test.fossil Test.fossil

  The party ends here. I get told: 

  __________________________________________________________

  Bytes Cards Artifacts Deltas Send: 49 1 0 0

  ERROR. server says: 405 Method not allowed

  Send: 619 24 0 0

  ERROR. server says: 405 Method not allowed

  Total network traffic: 603 bytes sent, 2000 bytes

  received Rebuilding repository meta-data...

  0 (0%)...

  project-id: (null) server-id: cdc358fe23c4aeb03e467e6e9c44d8b4547bb4d8 admin-user: Ross (password is "0f00ea")

  __________________________________________________________

  Apparently Artifacts should be artefacts (i->e)


  What does "ERROR. server says: 405 Method not allowed" mean?

  How do I get a copy of Test.txt out of the repository to edit?


  You must have spent hundreds of hours on the code, but it's wasted if it takes an enthusiastic newbie I.T. manager a day to get this far! I'd love to use fossil and support it, but it needs a forum for help (I can't find one) or at least a walk-through in the style I started above (perhaps a flow chart to include potential errors like forgetting to open ports). If it needs me to write the docs, I'll do it, but first I need to make it work!

  <hr><i>anonymous claiming to be Arnel added on 2010-05-21 00:13:01:</i><br>
  Thanks for the reformat - it does read better that way.

  I think the 405 error is related to the way you're trying to clone the repo with <pre>fossil clone http://Server/Test.fossil Test.fossil</pre>

  If you need to clone another repo file, you will need to use <pre>fossil clone --repository &lt;repo filename&gt;</pre> rather than the HTTP method. The HTTP method makes fossil act as if it's cloning the repo from a server, not from a repo file - hence the 405 error.

  Once you're done cloning, you should run <pre>fossil open &lt;repo filename&gt;</pre> to make the source tree contents available for editing.

  <hr><i>anonymous added on 2010-05-21 21:11:52:</i><br>
  But I _am_ trying to clone from the server (see my number 6 says:


  6) on the other PC, which I'll call Client, type:

  fossil clone http://Server/Test.fossil Test.fossil 


  I'm trying to work on the same repo from two computers, so I'm making a test text file, adding it to test.fossil, then trying to edit that file from a different computer. I thought that's what this is for, and that this is the simplest thing to start with...

  I also want to find out how to do other simple things, like edit the home page (web page) but can't find any way to do so.

  Hence my request for documentation - a list of what error numbers mean, a walkthrough of each process users would expect to go through etc.


  <hr><i>anonymous added on 2010-05-22 09:52:44:</i><br>
  It's just occurred to me that Error 405 might be an HTTP server reply.

  It would be helpful if the error message said that: I thought it was a fossil error number, but if it's HTTP I can simply look up what to do on the Internet...

  See how much a little documentation could help! Several days of no progress, thinking I couldn't find the error, when really I could! = frustrating.

  <hr><i>anonymous claiming to be Ross added on 2010-05-22 13:51:40:</i><br>
  I can finally document the first steps for a newbie (to Version Control as well as fossil)!

  On the server:

  Make a simple text file (Test.txt):
  <pre>
  Line 1
  Line 2
  </pre>

  Create a new repository and put the text file in it, noting the User and Password that 'new' gives, and the port that 'server' gives:
  <pre>
  fossil new Test.fossil
  fossil open Test.fossil
  fossil add Test.txt
  fossil commit -m "First version"
  fossil close Test.fossil
  fossil server Test.fossil
  </pre>

  Now on another network-connected PC (the Client) type:
  <pre>
  fossil clone http://User:Password@Server:8080/Test.fossil Test.fossil
  </pre>
  where User and Password are what <kbd>fossil new</kbd> told you (case-sensitive) and Server is the URL or IP address of the Server you set up.
  <ul>
  <li>If the server has another application listening to port 8080, you may get <kbd>ERROR. server says:  405 Method not allowed</kbd> an HTTP error 405.</li>
  <li>If you forget the User and Password, and are using port 80, you will get <kbd>ERROR. server says:  401 Unauthorized</kbd> an HTTP error 401.</li>
  <li>If you forget the User and Password you will get <kbd>Error: not authorized to clone</kbd>.</li>
  <li>If you get the Password wrong (it is case-sensitive) you get <kbd>Error: login failed</kbd>.</li>
  </ul>

  To access Test.txt, open the repository and check out the file:
  <pre>
  fossil open Test.fossil
  </pre>
  This saves three files to the current directory plus the Test.txt file:
  <pre>
     211 manifest
      41 manifest.uuid
  50,176 Test.fossil
      18 Test.txt
   7,168 _FOSSIL_
  </pre>

  The contents of the checked out repository can be listed with <kbd>fossil ls</kbd>

  now for the reverse journey, edit the text file, Test.txt, adding <kbd>Line 3</kbd> in the middle:
  <pre>
  Line 1
  Line 3
  Line 2
  </pre>

  After saving the file, use <kbd>fossil commit -m "Added Line 3"</kdb> to update the local repository, and <kbd>fossil push</kbd> to update the Server repository.

  Now you can go to a third PC and go through the same client process to alter Text.txt again.

  <hr><i>drh added on 2010-05-22 14:45:51:</i><br>
  The message "Method not allowed" is not an error message generated by Fossil.

  The "fossil ui" command uses TCP port 8080 by default.  This suggests that the
  original poster has some other web server or web service running on port 80 and
  that other web server is the thing generating the "Method not allowed" error.



  <hr><i>anonymous claiming to be Ross added on 2010-05-22 19:26:28:</i><br>
  That's right: IIS was running on the Server, but that wasn't my only problem: I hadn't figured out that I had to specify the 8080 or the user and password on the clone url.

  I couldn't get a clear picture in my head about how fossil was making the connection because the user,password,port and url are not demonstrably linked in the documentation.

  Any help on how to edit the home page? I still can't figure that out either!

  <hr><i>anonymous claiming to be Ross added on 2010-05-22 19:48:53:</i><br>
  OK -I've logged into the fossil server from the client on my browser and seen the description of how to edit the home page - I haven't made a wiki page yet.
  You can close this ticket now - thanks for helping, and above all, thanks for making the application in the first place. Hopefully my attempt at a quick-start (above) will be useful for someone else.


tkt_uuid: 1cc5145ac8b36f3af3fa9228e4910f1d581455da
type: Feature_Request
status: Closed
severity: Important
foundin: [73c24ae363] 2010-03-18 14:20:33
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Works_As_Designed
title: wiki does not support images
comment:
  When a non-text file is attached to a wiki page it is shown as text.

  This not only makes use of figures and such impossible in the wiki pages unless the images are hosted elsewhere, it is also incorrect.

  <hr /><i>dmitry added on 2011-09-08 20:20:22 UTC:</i><br />
    *  Click on the link to attached file.
    *  Grab an URL of the image (e.g., right-click, Copy Image URL).
    *  Paste anywhere on the wiki page: <verbatim><img src="COPIED LINK"></verbatim>


tkt_uuid: 0830da5a069727721137e268affd48daced863b9
type: Code_Defect
status: Open
severity: Minor
foundin: Fossil version [73c24ae363] 2010-03-18 14:20:33
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
title: wiki sandbox does not support attachments
comment:
  The wiki sandbox page does not allow attachments.

  This makes it impossible to test this wiki feature in the sandbox.


tkt_uuid: 1ec8be0c5332ef57cf4dbe1b3e96fe25ca4ddf00
type: Code_Defect
status: Open
severity: Important
foundin: [e09af364aa] 2010-03-22 09:38:44
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Open
title: /doc on fossil web shows index.wiki but links on the page are broken
comment:
  When you point the browser to /doc on a fossil web (such as http://127.0.0.1/doc when using the "fossil ui" command) the file index.wiki is rendered but the links in the file point to nonexistent pages.

  When the (presumably) same file is accessed as /doc/tip/index.wiki it works as expected.

  This "feature" is quite confusing.

  <hr><i>anonymous added on 2010-06-17 14:37:45:</i><br>
  Attached patch applies on top of patch from ticket 0e5d75657faa7a7cefb3ba8546d2b377e8bee4ed and changes /doc to a redirect.


tkt_uuid: a5a415b41401161327f8ca0c2ca0fe24e5f6af83
type: Code_Defect
status: Open
severity: Severe
foundin: Fossil version [73c24ae363] 2010-03-18 14:20:33
title: new wiki page with the name of Chinese
comment:
  Create a new wiki page with the name of Chinese, and fill the content page.
  Click the "Preview your Changes", show your view you wanted, then click "Apply
  these Changes".
  But after that, click "List All wiki pages", got the latest added page with the name of Chinese, click into it, got the default "Empty Page" and lost the previous
  change.


tkt_uuid: 6a70408ccb230a20856117a84ff2eb332f807202
type: Documentation
status: Fixed
severity: Cosmetic
foundin: [3343450e64] 2010-05-21 16:21:04
private_contact: 867649f1e43e51eb74694c33676acc0c33f743f3
resolution: Fixed
title: Typo on Access Control Settings page
comment:
  The second occurrence of 'that' on http://server/setup_access, should be 'tha<b>n</b>'

  "This is less secure tha<b>t</b> forcing the user to do it "


tkt_uuid: aa0497a331e05e4683f6972b5e179735c6ddccd5
type: Incident
status: Closed
severity: Important
foundin: [3343450e64] 2010-05-21 16:21:04
private_contact: 867649f1e43e51eb74694c33676acc0c33f743f3
resolution: Not_A_Bug
title: Fossil SCM Behavior page, Web Browser field needs more...
comment:
  I don't know what to type in the last field of the Fossil SCM Behavior page:
  <blockquote>
  <table><tr><td>
  <table border="1" cellspacing="0" width="100"><tr><td>|</td></tr></table>
  </td><td>
  <b>Web browser</b>
  </td></tr></table>
  <p>Default web browser for "fossil ui".</p>
  </blockquote>

  Should I type firefox? or mozilla? or the full path to the browser?
  It would be nice if it was a drop-list (installed browsers from registry)... or at least showed a few examples :-)

  <hr /><i>dmitry added on 2011-09-08 20:26:20 UTC:</i><br />
  See documentation at the bottom of the settings page (or [http://www.fossil-scm.org/index.html/help?cmd=settings | here]). You don't have to input anything there unless you want to use a different browser.


tkt_uuid: 09310d1a057f743be29db7c505f105933ddd14c5
type: Documentation
status: Fixed
severity: Cosmetic
foundin: [3343450e64] 2010-05-21 16:21:04
private_contact: 867649f1e43e51eb74694c33676acc0c33f743f3
resolution: Fixed
title: Typos in Wiki Theory page
comment:
  http://www.fossil-scm.org/index.html/doc/tip/www/wikitheory.wiki

  In the last sentence of the second paragraph of "Embedded Documentation",
  "project" should be "project<b>s</b>"; and "wiki" should be "<b>a</b> wiki", at least according to this page: [http://en.wikipedia.org/wiki/Wiki]


  <h2>Embedded Documentation</h2>

  <p>Files in the source tree that use the ".wiki" suffix can be accessed
  and displayed using special URLs to the fossil server.  This allows
  project documentation to be stored in the source tree and accessed 
  online.  (Details are descripted <a href="./embeddeddoc.wiki">separately</a>.)</p>

  <p>Some project prefer to store their documentation in wiki.</p>

  <hr><i>anonymous added on 2010-05-22 21:57:01:</i><br>
  Oh, and the last sentence of that paragraph has "move file" which should be "move <b>a</b> file...

  <hr><i>anonymous added on 2010-05-23 11:49:24:</i><br>
  "discripted" would probably be better as "described" too: easier for folk whose first language isn't English. Another place with a rare word (elided) is near the bottom of the "Wiki Formatting Rules" page (wiki_rules) - "removed" or "filtered out" would be plainer English...

  <hr /><i>dmitry added on 2011-09-12 19:44:36 UTC:</i><br />
  Fixed in [9150a8a234].


tkt_uuid: 58339f7b10de7c67e09ef41ba9d90c7dc4c972f1
type: Documentation
status: Open
priority: Low
severity: Minor
foundin: [3343450e64] 2010-05-21 16:21:04
resolution: Open
title: The excellent branching wiki, needs a similar "how to merge" page...
comment:
  I found the branching page very useful:
  <pre>
  http://www.fossil-scm.org/index.html/doc/tip/www/branching.wiki
  </pre>
  thank you for writing that.

  One bit needs expanding for those of us who are new to version control as well as fossil (just above figure 3):

  <blockquote>
  To resolve this situation, Alice can use the fossil <b>merge</b> command to merge in Bob's changes in her local copy of check-in 3. Then she can commit the results as check-in 5. This results in a tree as shown in figure 3.
  </blockquote>

  ...but how?!!!

  I created a fork in the manner described, but it seems that Alice has no indication that Bob has made a fork and would happily carry on on her own making more and more changes... Is there some indicator I'm missing?

  If she does a <kbd>fossil update</kbd>, I can see that <kbd>fossil diff</kbd> notices a change, and <kbd>fossil merge</kbd> says bad things have happened, but I have no idea what to do about it...

  Here is what I've been up to:
  <verbatim>
  C:\tmp\fossil>dir
   Volume in drive C has no label.
   Volume Serial Number is 4C8C-4143

   Directory of C:\tmp\fossil

  22/05/2010  08:42 PM    <DIR>          .
  22/05/2010  08:42 PM    <DIR>          ..
  22/05/2010  08:38 PM           864,768 fossil.exe
  22/05/2010  08:41 PM               209 manifest
  22/05/2010  08:41 PM                41 manifest.uuid
  22/05/2010  08:41 PM            52,224 Test.fossil
  22/05/2010  08:40 PM                32 Test.txt
                 5 File(s)        917,274 bytes
                 2 Dir(s)  61,822,676,992 bytes free

  C:\tmp\fossil>type test.txt
  Line 1
  Line 2
  Line 3
  Line 4
  C:\tmp\fossil>fossil open Test.fossil
  Test.txt
  project-name: <unnamed>
  repository:   C:/tmp/fossil/Test.fossil
  local-root:   C:/tmp/fossil/
  user-home:    C:/Users/Alice/AppData/Local
  project-code: cd278cccb1fe96312af904be9d2fac0e942a777c
  server-code:  2b9fde97a0fdf6a42774b4417e325d201b783491
  checkout:     6b297dec4f5a51d94e53e416b8926ce84e7f79e2 2010-05-22 19:41:29 UTC
  parent:       5b5b6a6cc6ab0069b7c5edc3894a01f323ddf651 2010-05-22 19:18:34 UTC
  tags:         trunk

  C:\tmp\fossil>type test.txt
  Line 1
  Line 2
  Line 3
  Line 4
  C:\tmp\fossil>fossil checkout --latest

  C:\tmp\fossil>type test.txt
  Line 1
  Line 2
  Line 3
  Line 4
  C:\tmp\fossil>fossil update
  Autosync:  http://Ross@mesh-elite-d805:8080/Test.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  Received:        1012         22          0          0
  Total network traffic: 330 bytes sent, 737 bytes received

  C:\tmp\fossil>type test.txt
  Line 1
  Line 2
  Line 3
  Line 4
  C:\tmp\fossil>fossil merge e6fb455f91
  MERGE Test.txt
  ***** 1 merge conflicts in Test.txt

  C:\tmp\fossil>fossil diff
  Index: Test.txt
  ===================================================================
  --- Test.txt
  +++ Test.txt
  @@ -1,4 +1,6 @@
   Line 1
   Line 2
   Line 3
  -Line 4
  +>>>>>>> BEGIN MERGE CONFLICT
  +Line 5============================
  +Line 4<<<<<<< END MERGE CONFLICT


  C:\tmp\fossil>fossil merge --cherrypick e6fb455f91
  MERGE Test.txt
  ***** 1 merge conflicts in Test.txt
  </pre>

  What does --cherrypick do?

  Oh, and Bob's Test.txt looks like this:
  <pre>
  Line 1 
  Line 2 
  Line 3
  Line 5
  </verbatim>

  So how is Alice to know Bob made a fork (without having to look on the web page for Branches before editing every file)?

  She presumably has to use the Branches page to find out the version of her prong of the fork to do the merge, but how does she actually do the merge?

  <hr><i>anonymous claiming to be Arnel added on 2010-05-23 17:00:51:</i><br>
  Alice needs to do a <tt>fossil pull</tt> to update her repo with the changes, then she can do a <tt>fossil merge</tt>.

  If there are conflicts that Fossil cannot resolve on its own (like changes made on the same line), you may need to step in and resolve the conflicts yourself.

  <hr><i>anonymous added on 2010-05-23 19:47:41:</i><br>
  That's so cool! It definitely needs explaining and showing off!

  I expected Alice to have to notice that a fork had happened, somehow, then copy her local Test.txt elsewhere so it didn't get overwritten, then pull, then use some diff app like kdiff3 to compare the two versions...

  but all that happens is that fossil adds MERGE CONFLICT to the file in the problem areas, so she can search for those and edit in just the one file.

  Checked-in binaries are, I guess, a whole different problem?

  I need to try it again to make sure I've got it: I merged before pulling, which may have made it so Alice didn't need to realise there was a fork...


tkt_uuid: 2bda0f13c6549c83bfc0e9a57a77caf99d537f14
type: Code_Defect
status: Closed
severity: Important
foundin: 2010.03.18.142033
private_contact: 3299242f9eeb048063fa0161cd817ed02be44d65
resolution: Unable_To_Reproduce
title: The baseurl parameter must be used in submenus of web-interface
comment:
  Main menu items use "baseurl" parameter for links as "$baseurl/dir". But submenus does not use this. So when fossil repository is placed into subdir (as example /src like to sqlite.org) we see the right links in main menu:


  ...

  http://sqlite.mobigroup.ru/src/wiki

  ...

  but wrong links in submenu:

  http://sqlite.mobigroup.ru/wikiappend?name=sqlite3-rdiff

  http://sqlite.mobigroup.ru/wikiedit?name=utils


  And on page http://sqlite.mobigroup.ru/src/wiki we see wrong links like to

  http://sqlite.mobigroup.ru/wiki?name=sqlite3-rdiff


  P.S. The site is hosted on Debian Squeeze host with fossil from debian repository.


tkt_uuid: 048c1c8210732f9666a2b63bd847506bddca90ee
type: Code_Defect
status: Closed
severity: Minor
foundin: [5fbd593aa7] 2010-05-22 13:24:28 UTC
private_contact: 5b06cbfac6af383308ac23d75ace1bba970322f9
resolution: Withdrawn
title: "http:" command when doing "fossil ui"
comment:
  Something must have been changed in the <tt>fossil ui</tt> command's default behavior. Apparently nothing was set by default.

  <pre>
  C:\ARNEL\test1>fossil settings unset web-browser
  fossil: no such setting: unset

  C:\ARNEL\test1>fossil ui
  Listening for HTTP requests on TCP port 8080
  Launch webbrowser:  http://127.0.0.1:8080/
  'http:' is not recognized as an internal or external command,
  operable program or batch file.
  Type Ctrl-C to stop the HTTP server
  </pre>

  <hr><i>anonymous claiming to be Arnel added on 2010-05-24 04:11:52:</i><br>
  I'm withdrawing this ticket. Inexplicably, I can't reproduce the symptoms after doing a reboot.

  Now "start" gets automatically added before the "http:" part when doing <tt>fossil ui</tt>. Weird.


tkt_uuid: 0e5d75657faa7a7cefb3ba8546d2b377e8bee4ed
type: Feature_Request
status: Open
severity: Important
foundin: [e09af364aa] 2010-03-22 09:38:44
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Open
title: browsing /doc/ckout shows files not added to repository
comment:
  When browsing /doc/ckout files which are present in the filesystem but not added in the repository are shown.

  $ fossil new test.fossil
  $ fossil open test.fossil
  $ fossil server&

  http://127.0.0.1:8080/doc/ckout/index.wiki now should show an error as should http://127.0.0.1:8080/doc/tip/index.wiki

  $ echo Hello World! > index.wiki

  http://127.0.0.1:8080/doc/ckout/index.wiki now should show "Hello World!"

  $ fossil commit

  Now since the file was not added it is not committed and hence http://127.0.0.1:8080/doc/tip/index.wiki still shows an error.
  http://127.0.0.1:8080/doc/ckout/index.wiki should have been showing something like "file not added to repository" all the time so that it is consistent with the committed state created by committing the checkout.

  <hr><i>anonymous added on 2010-06-17 14:27:45:</i><br>
  Attached patch adds /doc/idx which shows only files already added.


tkt_uuid: e39122fcc434125c686d1965bd5b286f35235b4c
type: Documentation
status: Fixed
priority: Low
severity: Cosmetic
foundin: [cb44f7dea4] 2010-05-24 18:43:32
resolution: Fixed
title: Typo on "Fossil Self-Hosting Repositories" Page
comment:
  http://www.fossil-scm.org/index.html/doc/tip/www/selfhost.wiki

  "pathnames are modified to suit<b>e</b> the environment"

  should be 

  "pathnames are modified to suit the environment"


tkt_uuid: fb47088db591c3521d294dedcc7600577ceb22ca
type: Code_Defect
status: Closed
severity: Minor
foundin: [cb44f7dea4] 2010-05-24 18:43:32
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Not_A_Bug
title: The default editor on Linux is ed
comment:
  When new repository is created or cloned on Linux and changes are committed the commit log is opened in ed.

  I do have visual editors like sensible-editor, vi, vim, or even nano.

  <hr><i>eric added on 2010-05-26 18:12:00:</i><br>
  If you don't do a <verbatim>fossil set editor ...</verbatim> fossil checks the VISUAL and EDITOR environment variables, in that order, since they are the normal Linux/Unix way to set a default editor. If they don't exist either then fossil has very little choice but to fall back to the only editor that is almost certain to exist on every system. All other editors are optional.

  <hr><i>anonymous added on 2010-06-03 13:19:53:</i><br>
  ed is rather rare since sed is the standard for use in scripts for some time already.

  vi is much more likely to be present and more useful.

  <hr><i>eric added on 2010-06-04 22:44:46:</i><br>
  ed in scripts is rather rare (though not unknown), that's not what it's for. sed is almost as old as ed anyway.

  vi is a nightmare for someone who has used only GUI editors, and as for an emacs enthusiast's opinion of it...

  There is no way for Fossil to make the right choice, so it makes the traditional default choice. Set EDITOR in your .profile or whatever, and programs other than Fossil will use it too.


tkt_uuid: d33a99196744f63ebca109aa8cec0a0250c6c2a8
type: Feature_Request
status: Fixed
severity: Severe
foundin: 73c24ae363
private_contact: 474afea8b7508cfcd7156d89965d9e10a51ceba7
resolution: Fixed
title: Option to add directory and subdirectories that start with a "."
comment:
  It would be quite usefull in conjection with eclipse to be able to, with one command, add the .metadata subdirectory. Since this seems to be where alot of eclipse project data is stored. At the moment I am adding the directories one by one since alot of the subdirectories under .metadata also start with a ".".

  Perhaps along the lines of; 

  fossil add followhidden .metadata
  or
  fossil add all .metadata

  <hr><i>anonymous added on 2010-06-02 09:46:56:</i><br>
  You can do command "add" with this option "--dotfiles" .


tkt_uuid: 270033a5d513472b9d9f28db7e2b465e4cc978f9
type: Code_Defect
status: Open
severity: Cosmetic
foundin: 2010-03-18
private_contact: 5ddc9ef2cc5a1544558a56a3cba910a0ba4d422a
title: fossil: tree checksum does not match repository after commit
comment:
  When I new a repository and add files, then do the "commit" command, the following message is showed.

  "fossil: tree checksum does not match repository after commit"

  In the reposotory, no files was added, only a checkin tag.
  I think the checkin tag should not be recorded, if commit failed.


tkt_uuid: a483f0ab3f0d4da07bb764bf6bd0625a2faddcd7
type: Code_Defect
status: Open
priority: Medium
severity: Critical
foundin: [64459dd091]
private_contact: c01be5897083c3b89b54d91e3d4c5ce64d2a10db
resolution: Open
title: tree checksum does not match repository after commit
comment:
  Cannot check in file changes to my repository, getting the error above, 100% repeatable.  Repository is about 148MB.  Repository file and content files to be applied by the commit available for download from a website I run on request.

  <hr><i>drh added on 2010-06-07 12:18:38:</i><br>
  This error is a safety mechanism to prevent corrupt check-ins.

  Please checkout a separate copy of the source tree you are trying to commit against and run a recursive "diff" on the two directories and send me the results.
  Also please send the output of "fossil status".

  <hr><i>anonymous added on 2010-06-09 02:56:09:</i><br>
  Sent in email response to Dr. Hipp.  Also occurs in version 2010-05-21.  Does not occur if I blow away the _FOSSIL_ and manifest files, open the repository again, and re-apply my changes manually to the directory tree, then commit, so it appears to be corrupt checkout files rather than an inability for fossil to handle the file changes in the directory tree.

  -----------------

  Dr. Hipp,
   
  Attached is a diff and status output as requested.  Note that the error occurs also in the latest fossil.exe from 5/21/10.
   
  Note that the repository is at M:\fileshare\dev\v73.fossil on my system.  I created a separate copy of the tree at M:\fileshare\devcopy and ran the diff between those two directories.  There are some files that in dev directory that I exclude from fossil, and the diff will show that.
   
  I can get you the entire M:\fileshare\dev directory zipped or otherwise compressed and put it on a website if you need that to reproduce the problem on your systems.
   
  Note that the problem will go away if I 'blow away' my checkout by removing the _FOSSIL_ and manifest files, and then do fossil open v73.fossil again, and update the files manually in this tree to match what they were before, so the problem appears to be corrupt checkout files rather than inability to handle the file changes in the directory tree.
   
  At this point the error is not critical for me, as I 'resolved' it last night by completely recreating the repository from scratch in a separate area in order to continue with my work.  I recognize that that was a extreme solution, but did not know what else to do at that time.  In the future, I would choose to resolve it instead by blowing away my checkout connection files '_FOSSIL_' and the 'manifests', and then do the open, apply changes, and commit again.
   
  I am keeping this set of files solely so that you can debug the problem in case fossil needs patching.  If there is no real problem with fossil or nothing that you can do to debug and fix a potential code defect in fossil, let me know so that I can remove the old files from my system.
   
  Also, I tried to move M:\fileshare\dev to some other area to continue with the rest of my work, but it appears that the checkout file _FOSSIL_ hardcodes the absolute path to the v73.fossil repository file, and so moving it would result in a non-usable test case, unless I want to try editing the _FOSSIL_ file with HxD to relocate my repository.  You might consider having _FOSSIL_ use a relative path instead to the repository if possible, since many people will choose to put their tree and repository in the same area.
  ---------




  repository:   M:/Fileshare/dev/v73.fossil
  local-root:   M:/Fileshare/dev/
  server-code:  3eb7635abee9a2e55353eb8bdd0acef65f41e50c
  checkout:     e327322ee19fcc6c2d1aa7aea2c2bccd4b2f9dfc 2010-06-07 00:38:19 UTC
  parent:       ec426f797e99280e70ff5a4193267324544cb4fc 2010-05-25 02:51:54 UTC
  tags:         trunk
  EDITED     V73/Common/Common.vbproj
  EDITED     V73/Common/Info.vb
  EDITED     V73/Common/source/database/databaseLink.vb
  EDITED     V73/Common/source/database/databaseLinkType.vb
  EDITED     V73/Common/source/debug/debugMethods.vb
  EDITED     V73/Common/source/generic/dictionary.vb
  EDITED     V73/Common/source/generic/generics.vb
  EDITED     V73/Common/source/generic/interface.vb
  EDITED     V73/Common/source/generic/list.vb
  EDITED     V73/Common/source/language/sql.vb
  EDITED     V73/Common/source/language/xml.vb
  EDITED     V73/Common/source/object/matchList.vb
  ADDED      V73/Common/source/string/hexadecimal.vb
  EDITED     V73/Common/source/string/stringMethods.vb
  ADDED      V73/Common/source/windows/assembly.vb
  ADDED      V73/Common/source/windows/controls.vb
  ADDED      V73/Common/source/windows/encryption.vb
  ADDED      V73/Common/source/windows/form.vb
  ADDED      V73/Common/source/windows/guid.vb
  ADDED      V73/Common/source/windows/path.vb
  ADDED      V73/Common/source/windows/process.vb
  ADDED      V73/Common/source/windows/registry.vb
  ADDED      V73/CommonWeb/Info.vb
  ADDED      V73/CommonWeb/Web.sln
  ADDED      V73/CommonWeb/Web.vbproj
  ADDED      V73/CommonWeb/source/web/cookie.vb
  ADDED      V73/CommonWeb/source/web/web.vb
  DELETED    V73/Fossil/Fossil-filetype.reg
  EDITED     V73/Fossilizer/Fossilizer.sln
  DELETED    V73/Fossilizer/Fossilizer.vbproj
  DELETED    V73/Fossilizer/Info.vb
  DELETED    V73/Fossilizer/MainForm.Designer.vb
  DELETED    V73/Fossilizer/MainForm.resx
  DELETED    V73/Fossilizer/MainForm.vb
  DELETED    V73/Fossilizer/My Project/app.manifest
  DELETED    V73/Fossilizer/bin/Debug/Fossilizer.exe
  DELETED    V73/Fossilizer/bin/Debug/V73.Common.dll
  ADDED      V73/Fossilizer/dll/FossilizerDll.vbproj
  ADDED      V73/Fossilizer/dll/Info.vb
  ADDED      V73/Fossilizer/dll/System.Data.SQLite.dll
  ADDED      V73/Fossilizer/dll/fossil.exe
  ADDED      V73/Fossilizer/dll/invoke/fossil.vb
  ADDED      V73/Fossilizer/dll/invoke/sqlite.vb
  ADDED      V73/Fossilizer/dll/object/dependency.vb
  ADDED      V73/Fossilizer/dll/object/organization.vb
  ADDED      V73/Fossilizer/dll/object/project.vb
  ADDED      V73/Fossilizer/dll/object/projectFile.vb
  ADDED      V73/Fossilizer/dll/object/server.vb
  ADDED      V73/Fossilizer/dll/object/user.vb
  ADDED      V73/Fossilizer/dll/object/workingDirectory.vb
  ADDED      V73/Fossilizer/dll/workspace/userPreferences.vb
  DELETED    V73/Fossilizer/file.vb
  DELETED    V73/Fossilizer/global.vb
  ADDED      V73/Fossilizer/main/Fossilizer.vbproj
  ADDED      V73/Fossilizer/main/Info.vb
  ADDED      V73/Fossilizer/main/My Project/app.manifest
  ADDED      V73/Fossilizer/main/extensions/organization.vb
  ADDED      V73/Fossilizer/main/extensions/project.vb
  ADDED      V73/Fossilizer/main/extensions/user.vb
  ADDED      V73/Fossilizer/main/extensions/workingDirectory.vb
  ADDED      V73/Fossilizer/main/form/AddUser.Designer.vb
  ADDED      V73/Fossilizer/main/form/AddUser.resx
  ADDED      V73/Fossilizer/main/form/AddUser.vb
  ADDED      V73/Fossilizer/main/form/Projects.Designer.vb
  ADDED      V73/Fossilizer/main/form/Projects.resx
  ADDED      V73/Fossilizer/main/form/Projects.vb
  ADDED      V73/Fossilizer/main/form/SelectItem.Designer.vb
  ADDED      V73/Fossilizer/main/form/SelectItem.resx
  ADDED      V73/Fossilizer/main/form/SelectItem.vb
  ADDED      V73/Fossilizer/main/fossilizer.exe.config
  ADDED      V73/Fossilizer/main/global.vb
  DELETED    V73/Web/Info.vb
  DELETED    V73/Web/Web.sln
  DELETED    V73/Web/Web.vbproj
  DELETED    V73/Web/source/web/cookie.vb
  DELETED    V73/Web/source/web/web.vb
  DELETED    V73/Website/default.htm
  ADDED      V73/Website/www/default.htm
  EDITED     VCC/VCC/VCC.sln
  EDITED     VCC/VCC/VCC.vbproj
  EDITED     VCC/VCC/churchWeb/util.vb
  EDITED     VCC/lifecrossings/Bin/V73.Common.dll
  EDITED     VCC/lifecrossings/Bin/V73.Common.xml
  EDITED     VCC/lifecrossings/Bin/VCC.dll
  EDITED     VCC/lifecrossings/Bin/Web.dll
  EDITED     VCC/lifecrossings/lifecrossings.sln
  EDITED     VCC/menofvictory/bin/V73.Common.dll
  EDITED     VCC/menofvictory/bin/V73.Common.xml
  EDITED     VCC/menofvictory/bin/VCC.dll
  EDITED     VCC/menofvictory/bin/Web.dll
  EDITED     VCC/menofvictory/menofvictory.sln
  EDITED     VCC/surrenderedband/App_Code/vcc/churchWeb/msgPostPage.vb
  EDITED     VCC/surrenderedband/Global.asax.vb
  EDITED     VCC/surrenderedband/surrenderedband.sln
  EDITED     VCC/victorypeople/App_Code/calendar.vb
  EDITED     VCC/victorypeople/App_Code/control.vb
  EDITED     VCC/victorypeople/App_Code/dbTable.vb
  EDITED     VCC/victorypeople/App_Code/document.vb
  EDITED     VCC/victorypeople/App_Code/editPage.vb
  EDITED     VCC/victorypeople/App_Code/email.vb
  EDITED     VCC/victorypeople/App_Code/image.vb
  EDITED     VCC/victorypeople/App_Code/input.vb
  EDITED     VCC/victorypeople/aboutUs/staff.aspx.vb
  EDITED     VCC/victorypeople/aboutUs/staffProfile.aspx.vb
  EDITED     VCC/victorypeople/admin/eventSeries-edit.aspx.vb
  EDITED     VCC/victorypeople/admin/recordedevent-edit.aspx.vb
  EDITED     VCC/victorypeople/admin/recording-edit.aspx.vb
  EDITED     VCC/victorypeople/bin/V73.Common.dll
  EDITED     VCC/victorypeople/bin/V73.Common.xml
  EDITED     VCC/victorypeople/bin/VCC.dll
  EDITED     VCC/victorypeople/bin/Web.dll
  EDITED     VCC/victorypeople/contactUs/eventSignup.aspx.vb
  EDITED     VCC/victorypeople/contactUs/guestbook.aspx.vb
  EDITED     VCC/victorypeople/contactUs/index.aspx.vb
  EDITED     VCC/victorypeople/index.aspx.vb
  EDITED     VCC/victorypeople/ministries/index.aspx.vb
  EDITED     VCC/victorypeople/news/announcements.aspx.vb
  EDITED     VCC/victorypeople/news/calendar.aspx.vb
  EDITED     VCC/victorypeople/news/calendarday.aspx.vb
  EDITED     VCC/victorypeople/news/calendaritem.aspx.vb
  EDITED     VCC/victorypeople/news/events.aspx.vb
  EDITED     VCC/victorypeople/resources/links.aspx.vb
  EDITED     VCC/victorypeople/resources/podcast.aspx.vb
  EDITED     VCC/victorypeople/test.aspx.vb
  EDITED     VCC/victorypeople/test2.aspx.vb
  EDITED     VCC/victorypeople/victorypeople.sln






  <hr><i>anonymous added on 2010-06-24 17:41:51:</i><br>
  I am having the same problem on Windows XP using fossil version "[15b293259d] 2010-06-11 12:02:59 UTC".

  <hr><i>anonymous claiming to be RBerteig added on 2010-06-24 21:41:03:</i><br>
  I've had a similar problem when checking in source code to a project that was still open in its IDE. After exiting the IDE, the check in completed without a hitch. My conjecture is that the IDE (Microchip's MPLAB in this case) was keeping some of its workspace files in flux as long as the project was open.

  I haven't attempted to diagnose this in more detail, since the simple rule of closing the project before doing the final check in and wrapping up a delivery bundle fit well enough into my workflow.

  <hr><i>benoit added on 2010-06-25 07:54:39:</i><br>
  I had a similar problem today.

  Under Windows, file names are case insensitive. I had zipped a part and unzipped it with another software, which had messed up case in file names.

  Maybe you had the same issue.

  <hr><i>anonymous claiming to be honesthacker added on 2010-06-29 14:24:52:</i><br>
  I had the same issue on Windows XP.  I created a new repository, opened it, copied files and directories from another Windows location (nothing zipped or copied from UNIX), added them and committed.  Then I made some modifications to some files and couldn't commit them due to this error.

  <hr /><i>anonymous added on 2010-11-13 10:21:37:</i><br />
  Hello!

  Today I've put Fossil under some unusual 'stress' using it to handle all the files I used for a video project done in Cinelerra.

  At the end, when I wanted to store everything in Fossil repo, I had instance of the subject's message, but even repeated attempt to commit everything did not succeed.

  Here is the snippet from the terminal:
  <verbatim>
  [gour@atmarama kartika] fossil  stat  
  repository:   /home/gour/repos/fossil/kartika.fossil
  local-root:   /home/gour/video/mama/kartika/
  server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
  checkout:     b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
  parent:       2f766c14db19ef657b1d2a359d7bc5958de0a238 2010-11-13 08:44:03 UTC
  tags:         trunk
  comment:      oil-painting effect at the end (user: gour)
  ADDED      Kartika-2.mpeg2video
  DELETED    Kartika.osp
  ADDED      audio/Prayers_to_the_Six_Gosvamis.mp3
  ADDED      dvd/VIDEO_TS/VIDEO_TS.BUP
  ADDED      dvd/VIDEO_TS/VIDEO_TS.IFO
  ADDED      dvd/VIDEO_TS/VIDEO_TS.VOB
  ADDED      dvd/VIDEO_TS/VTS_01_0.BUP
  ADDED      dvd/VIDEO_TS/VTS_01_0.IFO
  ADDED      dvd/VIDEO_TS/VTS_01_0.VOB
  ADDED      dvd/VIDEO_TS/VTS_01_1.VOB
  ADDED      dvdwizard.cmd
  ADDED      dvdwizard.xml
  ADDED      kartika.ac3
  ADDED      kartika.m2v
  ADDED      kartika.mpeg
  [gour@atmarama kartika] fossil ci
  emacsclient "/home/gour/video/mama/kartika/ci-comment-DFE0F3EE390F.txt"
  Waiting for Emacs...

  You need a passphrase to unlock the secret key for
  user: "Gour D. <gour@atmarama.net>"
  4096-bit RSA key, ID CDBF17CA, created 2010-07-14

  gpg: writing to `in-25E14E727C32D22DEC2B'
  gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
  New_Version: 6873ebb458aa2b5785a4b54a91c09917fdd4f104
  fossil: tree checksums before and after commit do not match
  [gour@atmarama kartika] fossil  stat
  repository:   /home/gour/repos/fossil/kartika.fossil
  local-root:   /home/gour/video/mama/kartika/
  server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
  checkout:     b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
  parent:       2f766c14db19ef657b1d2a359d7bc5958de0a238 2010-11-13 08:44:03 UTC
  tags:         trunk
  comment:      oil-painting effect at the end (user: gour)
  ADDED      Kartika-2.mpeg2video
  DELETED    Kartika.osp
  ADDED      audio/Prayers_to_the_Six_Gosvamis.mp3
  ADDED      dvd/VIDEO_TS/VIDEO_TS.BUP
  ADDED      dvd/VIDEO_TS/VIDEO_TS.IFO
  ADDED      dvd/VIDEO_TS/VIDEO_TS.VOB
  ADDED      dvd/VIDEO_TS/VTS_01_0.BUP
  ADDED      dvd/VIDEO_TS/VTS_01_0.IFO
  ADDED      dvd/VIDEO_TS/VTS_01_0.VOB
  ADDED      dvd/VIDEO_TS/VTS_01_1.VOB
  ADDED      dvdwizard.cmd
  ADDED      dvdwizard.xml
  ADDED      kartika.ac3
  ADDED      kartika.m2v
  ADDED      kartika.mpeg
  EDITED     kartika.xml
  [gour@atmarama kartika] fossil ci   
  emacsclient "/home/gour/video/mama/kartika/ci-comment-DCF36188F702.txt"
  Waiting for Emacs...

  You need a passphrase to unlock the secret key for
  user: "Gour D. <gour@atmarama.net>"
  4096-bit RSA key, ID CDBF17CA, created 2010-07-14

  gpg: writing to `in-6CFD19013B265AF9F89D'
  gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
  New_Version: 98454745ae3c37b22a11f6471ff2f75bff4ee4fb
  [gour@atmarama kartika] fossil  stat
  repository:   /home/gour/repos/fossil/kartika.fossil
  local-root:   /home/gour/video/mama/kartika/
  server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
  checkout:     98454745ae3c37b22a11f6471ff2f75bff4ee4fb 2010-11-13 10:00:38 UTC
  parent:       b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
  tags:         trunk
  comment:      complete project (audio, video, dvd…) (user: gour)
  EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
  EDITED     kartika.mpeg
  [gour@atmarama kartika] ls -al ~/repos/fossil 
  total 1,9G
  drwxr-xr-x 2 gour 4,0K Nov 13 11:01 .
  drwxr-xr-x 7 gour 4,0K Nov  8 13:07 ..
  -rw-r--r-- 1 gour  88K Nov 11 15:16 aur.fossil
  -rw-r--r-- 1 gour 3,9M Nov 11 15:34 bhagavad-gita-seminar.fossil
  -rw-r--r-- 1 gour 689K Nov 11 15:43 cfgfiles.fossil
  -rw-r--r-- 1 gour 1,8G Nov 13 11:01 kartika.fossil
  -rw-r--r-- 1 gour  70K Nov 13 09:07 mama.fossil
  -rw-r--r-- 1 gour  77K Nov 12 17:32 org.fossil
  -rw-r--r-- 1 gour 3,4M Nov 11 15:40 sqlite-books.fossil
  [gour@atmarama kartika] fossil help
  Usage: fossil help COMMAND.
  Available COMMANDs:
  add            co             import         redo           tag          
  addremove      commit         info           remote-url     ticket       
  all            configuration  init           rename         timeline     
  annotate       deconstruct    leaves         revert         ui           
  artifact       delete         ls             rm             undo         
  branch         descendants    merge          scrub          unset        
  cgi            diff           mv             search         update       
  changes        export         new            server         user         
  checkout       extras         open           settings       version      
  ci             finfo          pull           sha1sum        wiki         
  clean          gdiff          push           sqlite3        zip          
  clone          help           rebuild        status       
  close          http           reconstruct    sync         
  This is fossil version [ceab53718f] 2010-11-12 16:37:37 UTC
  [gour@atmarama kartika] fossil changes
  EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
  EDITED     kartika.mpeg
  [gour@atmarama kartika] fossil ci            
  emacsclient "/home/gour/video/mama/kartika/ci-comment-40B3CFC75419.txt"
  Waiting for Emacs...

  You need a passphrase to unlock the secret key for
  user: "Gour D. <gour@atmarama.net>"
  4096-bit RSA key, ID CDBF17CA, created 2010-07-14

  gpg: writing to `in-97E6EDA8FDA97AC9AD9D'
  gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
  New_Version: 9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18
  [gour@atmarama kartika] fossil changes
  EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
  EDITED     kartika.mpeg
  [gour@atmarama kartika] fossil diff   
  Index: dvd/VIDEO_TS/VTS_01_1.VOB
  ===================================================================
  --- dvd/VIDEO_TS/VTS_01_1.VOB
  +++ dvd/VIDEO_TS/VTS_01_1.VOB
  cannot compute difference between binary files

  Index: kartika.mpeg
  ===================================================================
  --- kartika.mpeg
  +++ kartika.mpeg
  cannot compute difference between binary files
  </verbatim>

  From the above it's visible that 2 files (dvd/VIDEO_TS/VTS_01_1.VOB and kartika.mpeg) cannot be properly checked-in. 


  Sincerely,<br/>
  Gour

  <hr /><i>anonymous claiming to be gour added on 2010-11-13 13:13:24:</i><br />
  I've tried with [64459dd091] but still cannot resolve the issue:

  <verbatim>
  [gour@atmarama kartika] fossil version
  This is fossil version [64459dd091] 2010-11-13 12:48:00 UTC
  [gour@atmarama kartika] fossil stat
  repository:   /home/gour/repos/fossil/kartika.fossil
  local-root:   /home/gour/video/mama/kartika/
  server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
  checkout:     9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18 2010-11-13 10:03:37 UTC
  parent:       98454745ae3c37b22a11f6471ff2f75bff4ee4fb 2010-11-13 10:00:38 UTC
  tags:         trunk
  comment:      finished project (user: gour)
  EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
  EDITED     kartika.mpeg
  [gour@atmarama kartika] fossil ci
  emacsclient "/home/gour/video/mama/kartika/ci-comment-ED1E5806ACDF.txt"
  Waiting for Emacs...

  You need a passphrase to unlock the secret key for
  user: "Gour D. <gour@atmarama.net>"
  4096-bit RSA key, ID CDBF17CA, created 2010-07-14

  gpg: writing to `in-AD2FD4A375B206FB0DBD'
  gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
  New_Version: c353967e8ecbce7f64589b6eea2cdfcb9333a8a7
  [gour@atmarama kartika] fossil stat
  repository:   /home/gour/repos/fossil/kartika.fossil
  local-root:   /home/gour/video/mama/kartika/
  server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
  checkout:     c353967e8ecbce7f64589b6eea2cdfcb9333a8a7 2010-11-13 13:10:04 UTC
  parent:       9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18 2010-11-13 10:03:37 UTC
  tags:         trunk
  comment:      another attempt to checkin latest complete project (user: gour)
  EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
  EDITED     kartika.mpeg
  </verbatim>




  <hr /><i>anonymous claiming to be achavasse added on 2010-11-13 14:54:41:</i><br />
  I've had a similar issue when using fossil in windows and tracked down the cause: I had replaced a file in the working directory by another similar file found elsewhere in the tree.

  They didn't have the same content or size, but it seems when you do that windows copies over the modification date of the file (at last when you do it using the explorer), because the original file had the same modification time as the one I replaced.

  So the mtime check led fossil to believe the file hadn't changed and it didn't include it in the commit. Then when it compared the checksum of the files in the commit (including the old version of that file mentioned above) to the working directory which contained the latest version, the checksum didn't match.

  As a workaround, it is possible to disable mtime check with "fossil set mtimes-changes 0".


tkt_uuid: 9dd30a98f562c4b4d2e1f098d6c56a909b777133
type: Documentation
status: Fixed
severity: Important
private_contact: 84a62fd938218ad886c5b636de73348f46d7f6c2
resolution: Fixed
title: Patch for fixing spelling mistakes in documentation
comment:
  Patch below.

  <verbatim>
  Index: www/branching.wiki
  ===================================================================
  --- www/branching.wiki
  +++ www/branching.wiki
  @@ -51,20 +51,20 @@
   editing check-in 2 are named Alice and Bob.  Suppose Alice finished her
   edits first and did a commit, resulting in check-in 3.  Later, when Bob
   tried to commit his changes, fossil would try to verify that check-in 2
   was still a leaf.  Fossil would see that check-in 3 had occurred and would
   abort Bob's commit attempt with a message "would fork".  This allows Bob
  -to do a "fossil update" which would pull in Alices changes and merge them
  +to do a "fossil update" which would pull in Alice's changes and merge them
   together with his own changes.  After merging, Bob could then commit
   check-in 4 as a child of check-in 3 and the result would be a linear graph
   as shown in figure 1.  This is how CVS works.  This is also how fossil
   works in "autosync" mode.
   
   But it might be that Bob is off-network when he does his commit, so he
   has no way of knowing that Alice has already committed her changes.
   Or, it could be that Bob has turned off "autosync" mode in SQLite.  Or,
  -maybe Bob just doesn't want to merge in Alices changes before he has
  +maybe Bob just doesn't want to merge in Alice's changes before he has
   saved his own, so he forces the commit to occur using the "--force" option
   to the fossil <b>commit</b> command.  For whatever reason, two commits against
   check-in 2 have occurred and now the tree has two leaves.
   
   So which version of the project is the "latest" in the sense of having
  @@ -194,11 +194,11 @@
   are symbolic name tags.  When a symbolic name tag is attached to a
   check-in, that allows you to refer to that check-in by its symbolic
   name rather than by its 40-character SHA1 hash name.  When a symbolic name
   tag propagates (as does the <b>sym-trunk</b> tag) then referring to that
   name is the same as referring to the most recent check-in with that name.
  -Thus the two tags on check-in one cause all decendents to be in the
  +Thus the two tags on check-in one cause all descendants to be in the
   "trunk" branch and to have the symbolic name "trunk".
   
   Check-in 4 has a <b>branch</b> tag which changes the name of the branch
   to "test".  The branch tag on check-in 4 propagates to check-ins 6 and 9.
   But because tag propagation does not follow merge links, the <b>branch=test</b>
  @@ -238,11 +238,11 @@
   branch property.</p></dd>
   <dt><b>Leaf</b></dt>
   <dd><p>A leaf is a check-in that has no children in the same branch.</p></dd>
   <dt><b>Closed Leaf</b></dt>
   <dd><p>A closed leaf is leaf that has the <b>closed</b> tag.  Such leaves
  -are intented to never be extended with descendents and hence are omitted
  +are intented to never be extended with descendants and hence are omitted
   from lists of leaves in the command-line and web interface.</p></dd>
   <dt><b>Open Leaf</b></dt>
   <dd><p>A open leaf is a leaf that is not closed.</p></dd>
   <dt><b>Fork</b></dt>
   <dd><p>A fork occurs when a check-in has two or more direct (non-merge)

  Index: www/cmd_all.wiki
  ===================================================================
  --- www/cmd_all.wiki
  +++ www/cmd_all.wiki
  @@ -37,11 +37,11 @@
   Or, you could just jog your memory.
   
   The <code>all</code> command uses the <i>.fossil</i> file in the home
   directory to find all of your repositories, so you can mess it up by
   moving your repositories around.  This is easy to do inadvertently if
  -you have a cavalier attitude about repos, but you'll know pretty
  +you have a cavalier attitude about repositories, but you'll know pretty
   quickly that you've done it&#8212;many commands you try to use from
   inside of a checkout won't work correctly.  The <i>.fossil</i> file is
   an <b>sqlite</b> db file which fossil uses to keeping track of
   repository locations. Advice: if you move your repositories around,
   let fossil know you did;

  Index: www/faq.wiki
  ===================================================================
  --- www/faq.wiki
  +++ www/faq.wiki
  @@ -70,11 +70,11 @@
     main repository.</b></p>
   
   <blockquote>Use the <b>--private</b> command-line option on the
   <b>commit</b> command.  The result will be a check-in which exists on
   your local repository only and is never pushed to other repositories.
  -All descendents of a private check-in are also private.
  +All descendants of a private check-in are also private.
   
   Unless you specify something different using the <b>--branch</b> and/or
   <b>--bgcolor</b> options, the new private check-in will be put on a branch
   named "private" with an orange background color.
   

  Index: www/fileformat.wiki
  ===================================================================
  --- www/fileformat.wiki
  +++ www/fileformat.wiki
  @@ -243,11 +243,11 @@
   within the repository.  The basic format of a control artifact is
   the same as a manifest or cluster.  A control artifact is a text
   files divided into cards by newline characters.  Each card has a
   single-character card type followed by arguments.  Spaces separate
   the card type and the arguments.  No surplus whitespace is allowed.
  -All cards must occur in strict lexigraphical order.
  +All cards must occur in strict lexicographical order.
   
   Allowed cards in a control artifact are as follows:
   
   <blockquote>
   <b>D</b> <i>time-and-date-stamp</i><br />

  Index: www/index.wiki
  ===================================================================
  --- www/index.wiki
  +++ www/index.wiki
  @@ -112,11 +112,11 @@
        to do it using fossil.
     *  The [./selfcheck.wiki | automatic self-check] mechanism
        helps insure project integrity.
     *  Fossil contains a [./wikitheory.wiki | built-in wiki].
     *  There is a
  -    [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users | mailing list] (with publically readable
  +    [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users | mailing list] (with publicly readable
        [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org | archives]
        available for discussing fossil issues.
     *  [./stats.wiki | Performance statistics] taken from real-world projects
        hosted on fossil.
     *  How to [./shunning.wiki | delete content] from a fossil repository.

  Index: www/newrepo.wiki
  ===================================================================
  --- www/newrepo.wiki
  +++ www/newrepo.wiki
  @@ -32,11 +32,11 @@
   The <tt>ui</tt> command starts up a server (with an optional <tt>-port
   NUMBER</tt> argument) and launches a web browser pointing at the
   fossil server. From there it takes just a few moments to configure the
   repo. Most importantly, go to the Admin menu, then the Users link, and
   set your account name and password, and grant your account all access
  -priviledges. (I also like to grant Clone access to the anonymous user,
  +privileges. (I also like to grant Clone access to the anonymous user,
   but that's personal preference.)
   
   Once you are done, kill the fossil server (with Ctrl-C or equivalent)
   and close the browser window.
   
  @@ -63,11 +63,11 @@
   information about your local repository. You can ignore it
   for all purposes, but be sure not to accidentally remove it
   or otherwise damage it - it belongs to fossil, not you.
   
   The next thing we need to do is add files to our repository.  As it
  -happens, we have a few C source files laying around, which we'll
  +happens, we have a few C source files lying around, which we'll
   simply copy into our working directory.
   
   <verbatim>
   stephan@ludo:~/fossil/demo$ cp ../csnip/*.{c,h} .
   stephan@ludo:~/fossil/demo$ ls
  @@ -75,11 +75,11 @@
   tokenize_path.c tokenize_path.h  vappendf.c  vappendf.h
   </verbatim>
   
   Fossil doesn't know about those files yet. Telling fossil about
   a new file is a two-step process. First we <em>add</em> the file
  -to the repo, then we <em>commit</em> the file. This is a familiar
  +to the repository, then we <em>commit</em> the file. This is a familiar
   process for anyone who's worked with SCM systems before:
   
   <verbatim>
   stephan@ludo:~/fossil/demo$ fossil add *.{c,h}
   stephan@ludo:~/fossil/demo$ fossil commit -m "egg"

  Index: www/qandc.wiki
  ===================================================================
  --- www/qandc.wiki
  +++ www/qandc.wiki
  @@ -38,11 +38,11 @@
          code while off network, then sync your changes later.  With Trac, you
          can only view and edit tickets and wiki while you are connected to
          the server. </li>
     <li> Fossil is lightweight and fully self-contained.  It is very easy
          to setup on a low-resource machine. Fossil does not require an
  -       administator.</li>
  +       administrator.</li>
     <li> Fossil integrates code versioning into the same repository with
          wiki and tickets.  There is nothing extra to add or install.
          Fossil is an all-in-one turnkey solution. </li>
     </ol>
   </blockquote>
  @@ -70,12 +70,12 @@
   <blockquote>
   <p>I take a pragmatic approach to software: form follows function.
   To me, it is more important to have a reliable, fast, efficient,
   enduring, and simple DVCS than one that looks pretty.</p>
   
  -<p>On the other hand, if you have patches that improve the apparance
  -of Fossil without seriously compromising its reliablity, performance,
  +<p>On the other hand, if you have patches that improve the appearance
  +of Fossil without seriously compromising its reliability, performance,
   and/or maintainability, I will be happy to accept them.  Fossil is
   self-hosting.  Send email to request a password that will let
   you push to the main fossil repository.</p>
   </blockquote>
   

  Index: www/quickstart.wiki
  ===================================================================
  --- www/quickstart.wiki
  +++ www/quickstart.wiki
  @@ -39,11 +39,11 @@
   
       <blockquote>
       <b>fossil clone http://www.fossil-scm.org/ myclone.fossil</b>
       </blockquote>
   
  -    <p>The new local copy of the respository is stored in a single file,
  +    <p>The new local copy of the repository is stored in a single file,
       which in the example above is named "myclone.fossil".
       You can name your repositories anything you want.  The ".fossil" suffix
       is not required.</p>
   
       <p>Note: If you are behind a restrictive firewall, you might need

  Index: www/reference.wiki
  ===================================================================
  --- www/reference.wiki
  +++ www/reference.wiki
  @@ -1,18 +1,18 @@
     <h2>Command Line Interface Reference</h2>
   
     This is an easy introduction to the fossil command line interface
     (cli).  It assumes some familiarity with using the command line, and
  -  with Source Code Maintenence (SCM) systems&#8212;but not <i>too</i>
  +  with Source Code Maintenance (SCM) systems&#8212;but not <i>too</i>
     much.
   
     If you are trying to find information about fossil's web
     capabilities, see the <a href="index.wiki">Fossil Home</a> and
     <a href="wikitheory.wiki">Fossil Wiki</a> pages for pointers.
   
     <h3>Things to note</h3>
  -  * Fossil cli commands do not use special delimeters, they use
  +  * Fossil cli commands do not use special delimiters, they use
     spaces.  This is traditional with VCS/SCM.  Some <i>options</i> to
     fossil commands <i>do</i> use special delimiters, particularly the
     '-' (hyphen, or dash) character.  This is very similar to Tcl.
     Think of fossil as a shell you invoke and feed a command to,
     including any options, and it will make more sense.
  @@ -40,11 +40,11 @@
       effectively is to
       [./quickstart.wiki#fslclone | clone the repository for fossil]
       itself.  You can then poke around using the <code>fossil ui</code>
       command, and look things up with no connection worries.  You can
       set up test repositories and try things out on-the-fly to see how
  -    they work, using their own ui's.  The CLI will far easier to
  +    they work, using their own UIs.  The CLI will far easier to
       understand if you can run a repository, watch it in a browser, and
       hack around with it in a simplified environment (your tests) with
       guaranteed and fast access to the sources & docs (your cloned fossil
       repository).
   <br /><br /> <br />
  @@ -179,11 +179,11 @@
   <hr><a href="#tof">&#710;</a>
       <a name="cgi">Usage: </a><a href="cmd_cgi.wiki">fossil cgi</a> SCRIPT
       The SCRIPT argument is the name of a file that is the CGI script
       that is being run.  The command name, "cgi", may be omitted if
       the GATEWAY_INTERFACE environment variable is set to "CGI" (which
  -    should always be the case for CGI scripts run by a webserver.)  The
  +    should always be the case for CGI scripts run by a web server.)  The
       SCRIPT file should look something like this:
   
       #!/usr/bin/fossil
       repository: /home/somebody/project.db
   
  @@ -241,11 +241,11 @@
       Where METHOD is one of: export import merge pull push reset.  All methods
       accept the -R or --repository option to specific a repository.
   
       fossil configuration export AREA FILENAME
   
  -    Write to FILENAME exported configuraton information for AREA.
  +    Write to FILENAME exported configuration information for AREA.
       AREA can be one of:  all ticket skin project
   
       fossil configuration import FILENAME
   
       Read a configuration from FILENAME, overwriting the current
  @@ -297,11 +297,11 @@
       <a name="diff">Usage: </a><a href="cmd_diff.wiki">fossil diff</a>|gdiff ?-i? ?-r REVISION? FILE...
       Show the difference between the current version of a file (as it
       exists on disk) and that same file as it was checked out.
   
       diff will show a textual diff while gdiff will attempt to run a
  -    graphical diff command that you have setup. If the choosen command
  +    graphical diff command that you have setup. If the chosen command
       is not yet configured, the internal textual diff command will be
       used.
   
       If -i is supplied for either diff or gdiff, the internal textual
       diff command will be executed.
  @@ -334,11 +334,11 @@
   
   <hr><a href="#tof">&#710;</a>
       <a name="info">Usage: </a><a href="cmd_info.wiki">fossil info</a> ?ARTIFACT-ID|FILENAME?
       With no arguments, provide information about the current tree.
       If an argument is specified, provide information about the object
  -    in the respository of the current tree that the argument refers
  +    in the repository of the current tree that the argument refers
       to.  Or if the argument is the name of a repository, show
       information about that repository.
   
   <hr><a href="#tof">&#710;</a>
       <a name="leaves">Usage: </a><a href="cmd_leaves.wiki">fossil leaves</a>
  @@ -383,11 +383,11 @@
   
       Deliver a report of the repository statistics for the
       current checkout.
   
   <hr><a href="#tof">&#710;</a>
  -    <a name="pull">Usage: </a><a href="cmd_pull.wiki">fossil pull</a> ?URL? ?-R|--respository REPOSITORY?
  +    <a name="pull">Usage: </a><a href="cmd_pull.wiki">fossil pull</a> ?URL? ?-R|--repository REPOSITORY?
       Pull changes in a remote repository into the local repository.
       The repository is identified by the -R or --repository option.
       If there is no such option then the open repository is used.
       The URL of the remote server is specified on the command line
       If no URL is specified then the URL used by the most recent
  @@ -655,11 +655,11 @@
       FILE or from standard input.
   
       fossil wiki list
   
       Lists all wiki entries, one per line, ordered
  -    case-insentively by name.
  +    case-insensitively by name.
   
       TODOs:
   
       fossil wiki export ?-u ARTIFACT? WikiName ?FILE?
   
  @@ -691,8 +691,8 @@
       fossil help...  Duplicate commands are only listed once (I
       <i>think</i>).  There are several bits of <b>fossil</b> that are not addressed
       in the help for commands (special wiki directories, special users, etc.)
       so they are (currently) not addressed here.  Clarity and brevity may be
       sacrificed for expediency at the authors indiscretion.  All spelling and
  -    grammatical mistakes are somebody elses fault.<code>  void * </code>
  +    grammatical mistakes are somebody else's fault.<code>  void * </code>
       prohibited where<code> __C_PLUS_PLUS__ </code>. Title and taxes extra.
       Not valid in Hooptigonia.

  Index: www/selfcheck.wiki
  ===================================================================
  --- www/selfcheck.wiki
  +++ www/selfcheck.wiki
  @@ -30,14 +30,14 @@
   If something goes wrong in the middle of the commit, then the transaction
   is rolled back and the database is unchanged.
   
   <h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
   
  -The content files that comprise the global state of a fossil respository
  +The content files that comprise the global state of a fossil repository
   are stored in the repository as a tree.  The leaves of the tree are
   stored as zlib-compressed BLOBs.  Interior nodes are deltas from their
  -decendants.  A lot of encoding is going on.  There is
  +descendants.  A lot of encoding is going on.  There is
   zlib-compression which is relatively well-tested but still might
   cause corruption if used improperly.  And there is the relatively
   new delta-encoding mechanism designed expressly for fossil.  We want
   to make sure that bugs in these encoding mechanisms do not lead to
   loss of data.
  @@ -64,11 +64,11 @@
   files.
   
   <h2>Checksum Over All Files In A Check-in</h2>
   
   Manifest artifacts that define a check-in have two fields (the
  -R-card and Z-card) that record MD5 hashs of the manifest itself
  +R-card and Z-card) that record MD5 hashes of the manifest itself
   and of all other files in the manifest.  Prior to any check-in
   commit, these checksums are verified to ensure that the check-in
   checked in agrees exactly with what is on disk.  Similarly,
   the repository checksum is verified after a checkout to make
   sure that the entire repository was checked out correctly.

  Index: www/shunning.wiki
  ===================================================================
  --- www/shunning.wiki
  +++ www/shunning.wiki
  @@ -38,13 +38,13 @@
   The shunning list is part of the local state of a Fossil repository.
   In other words, shunning does not propagate using the normal "sync"
   mechanism.  An artifact can be
   shunned from one repository but be allowed to exist in another.  The fact that
   the shunning list does not propagate is a security feature.  If the
  -shunning list propagated then a malecious user (or
  +shunning list propagated then a malicious user (or
   a bug in the fossil code) might introduce a shun record that would
  -propagate through all respositories in a network and permanently
  +propagate through all repositories in a network and permanently
   destroy vital information.  By refusing to propagate the shunning list,
   Fossil insures that no remote user will ever be able to remove
   information from your personal repositories without your permission.
   
   The shunning list does not propagate by the normal "sync" mechanism,
  @@ -57,11 +57,11 @@
   The two command above will pull or push shunning lists from or to
   the <i>remote-url</i> indicated and merge the lists on the receiving
   end.  "Admin" privilege on the remote server is required in order to
   push a shun list.
   
  -Note that the shunning list remains in the respository even after the
  +Note that the shunning list remains in the repository even after the
   shunned artifact has been removed.  This is to prevent the artifact
   from being reintroduced into the repository the next time it syncs with
   another repository that has not shunned the artifact.
   
   <h3>Managing the shunning list</h3>
  @@ -70,11 +70,11 @@
   with "admin" privilege on the "/shunned" URL of the web interface to Fossil.
   That URL is accessible under the "Admin" button on the default menu
   bar.  Items can be added to or removed from the shunning list.  "Sync"
   operations are inhibited as soon as the artifact is added to the
   shunning list, but the content of the artifact is not actually removed
  -from the responstory until the next time the repository is rebuilt.
  +from the repository until the next time the repository is rebuilt.
   
   When viewing individual artifacts with the web interface, "admin"
   users will usually see a "Shun" option in the submenu that will take
   them directly to the shunning page and enable that artifact to be
   shunned with a single additional mouse click.

  Index: www/sync.wiki
  ===================================================================
  --- www/sync.wiki
  +++ www/sync.wiki
  @@ -26,12 +26,12 @@
   shared to a few hundred.</p>
   
   <p>Each repository also has local state.  The local state determines
   the web-page formatting preferences, authorized users, ticket formats,
   and similar information that varies from one repository to another.
  -The local state is not transfered by the <b>push</b>, <b>pull</b>,
  -and <b>sync</b> command, though some local state is transfered during
  +The local state is not transferred by the <b>push</b>, <b>pull</b>,
  +and <b>sync</b> command, though some local state is transferred during
   a <b>clone</b> in order to initialize the local state of the new
   repository.  The <b>configuration push</b> and <b>configuration pull</b>
   commands can be used to send or receive local state.</p>
   
   

  Index: www/wikitheory.wiki
  ===================================================================
  --- www/wikitheory.wiki
  +++ www/wikitheory.wiki
  @@ -8,11 +8,11 @@
      *  [./embeddeddoc.wiki | Embedded documentation] files whose
         name ends in "wiki".
   
   The [/wiki_rules | formatting rules] for fossil wiki
   are designed to be simple and intuitive.  The idea is that wiki provides
  -paragraph breaks, numbered and bulletted lists, and hyperlinking for
  +paragraph breaks, numbered and bulleted lists, and hyperlinking for
   simple documents together with a safe subset of HTML for more complex
   formatting tasks.
   
   Some commentators feel that the use of HTML is a mistake and that
   fossil should use the markup language of the
  @@ -55,23 +55,23 @@
   <h2>Embedded Documentation</h2>
   
   Files in the source tree that use the ".wiki" suffix can be accessed
   and displayed using special URLs to the fossil server.  This allows
   project documentation to be stored in the source tree and accessed
  -online.  (Details are descripted [./embeddeddoc.wiki | separately].)
  +online.  (Details are described [./embeddeddoc.wiki | separately].)
   
   Some project prefer to store their documentation in wiki.  There is nothing
   wrong with that.  But other projects prefer to keep documentation as part
   of the source tree, so that it is versioned along with the source tree and
   so that only developers with check-in privileges can change it.
   Embedded documentation serves this latter purpose.  Both forms of documentation
   use the exact same wiki markup language.  Some projects may choose to
   use both forms of documentation at the same time.  Because the same
  -format is used, it is trival to move file from wiki to embedded documentation
  +format is used, it is trivial to move file from wiki to embedded documentation
   or back again as the project evolves.
   
   <h2>Bug-reports and check-in comments</h2>
   
   The comments on check-ins and the text in the descriptions of bug reports
   both use wiki formatting.  Exactly the same set of formatting rules apply.
   There is never a need to learn one formatting language for documentation
   and a different markup for bugs or for check-in comments.
  </verbatim>


tkt_uuid: f58a05747498d3aaa9ea1e4f8f4015c209dfc54a
type: Code_Defect
status: Fixed
severity: Minor
foundin: Fossil snapshot as of 2010-06-11 12:02:59
private_contact: e123b20aad478eaa0b4a95bebf135d4719449413
resolution: Fixed
title: Wiki pages where the name starts with a "." cause problems
comment:
  If you create a Wiki page with a period (.) character as the first character (E.g. ".NET Framework"), it is difficult to link to it. The wiki link <nowiki>[.NET Framework] is rendered as [Site root]/.NET+Framework instead of [Site root]/wiki?name=.NET+Framework]</nowiki>. As there appears to be no way to escape the period, the only way of accessing such a page (without typing the URL manually) appears to be through the list of all wiki pages.

  <hr><i>drh added on 2010-06-13 15:59:40:</i><br>
  Support added for links of the form:

  <verbatim>
  [wiki:.NET Framework]
  </verbatim>


tkt_uuid: 255697a54237a73e39414d52bd8053db48bc474a
type: Code_Defect
status: Open
severity: Cosmetic
foundin: 15b293259d
private_contact: 4514741c8afc71792acf43173278f608b00e214a
title: Relevant space in .cgi
comment:
  Hi,

  I lost some time (half an hour or so) trying to understand what was going on on my server (juggling with permissions and so) because of this:

  |  #!/home/pistacchio/webapps/repo1/fossil
  |  repository:/home/pistacchio/webapps/repo1/repo/repo1

  It seemed to me to be a good .cgi, but i didn't leave the space between "repository:" and the path, resulting in a "Unable to find or open the project repository" error.

  I think fossil should be a bit more elastic about this.


tkt_uuid: 2515c984ab7c77e3bba239ed1bf0f18332b81229
type: Feature_Request
status: Closed
severity: Severe
foundin: [15b293259d] 2010-06-11 12:02:59 UTC
private_contact: 51e59d496cd2ecdfd600db4c1f709ced395acc91
resolution: Rejected
title: _FOSSIL_ file - security risk
comment:
  There was an incident with a DCVS (I don't remember which one, I think it's Subversion) regarding the use of it in web development. 

  The threat in question is when someone uses DCVS for local development of site and pushing/pulling code to production server's "public_html" or similar directory.

  The incident resulted in thousands of web sites leaking source code. The bug was that DCVS in question created a directory, smth. like ".svn", which contained all source code. So a simple call to "http://website/.svn/entries" (I don't remember exact file) would result in source code leak, if not properly protected via Apache (which most of sites didn't do). The problem was huge - tens(possibly hundreds) of thousands of sites compromised.

  Fossil creates a file named "_FOSSIL_", possessing the same threat - source code leak: "http://website/_FOSSIL_".

  The possible solution would be to rename _FOSSIL_ to something like _FOSSIL_D83E5JD...[random(!)-chars]...D3_  - it would be easy to find for fossil via "glob('_FOSSIL_*_')" system call, but the attacked would have to brute-force all combinations.

  Note that it can't be something like _FOSSIL_sha1(name_of_project)_ as it would be easy to guess, it has to be _FOSSIL_(random)_. 

  Thanks for the great project!

  <hr><i>bharder added on 2010-06-21 01:47:10:</i><br>
  *IF* this is truly a security risk (I haven't looked into this at all), random chars appended is truly "security through obscurity". It'd be better to put the file in question in a "http do not serve" list and be done with it.

  <hr><i>drh added on 2010-06-21 13:07:13:</i><br>
  The _FOSSIL_ file does not sensitive content.  The _FOSSIL_ file contains
  only the name of the repository (where the historical file content is stored)
  and information about which versions of each file are currently checked out.

  Thank you for the idea and for you attention to Fossil.


tkt_uuid: f2b5011d975720680600ff901297c3d0e70f6e77
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Styling: Remove align attribute from HTML
comment:
  To make it easier to use CSS for styling, remove all "align" attributes from HTML. Text alignment should be controlled in the CSS instead of in the markup.

  E.g. in src/tktsetup.c  there are mutliple align attributes in the source.

  <hr /><i>stephan added on 2011-09-14 18:03:08 UTC:</i><br />
  Since fossil apparently now serves with an HTML5 doctype, and HTML5 deprecates many of the formatting attributes (delegating them to CSS), we might need to remove these for HTML5 conformance.


tkt_uuid: dc8bde6ed8784540fb0ea7d69e45585e8c8d8741
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Styling: Remove br elements from HTML
comment:
  The web UI has br-elements in many places, presumably to make divs stretch properly like this:

  <br clear="both"/>

  BR is difficult to style without CSS hacks. To make it easier to crete skins it is better to use CSS to make sure clears work properly instead.


tkt_uuid: 3915adc720bb0a6fa61f48dfe76413f546e5bb34
type: Code_Defect
status: Open
severity: Cosmetic
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Move page title to below menu for consistency
comment:
  Currently the page main heading is in the logo area of the web UI. A more consistent approach would be to have it in the same place on each page, e.g. as a h1 immediately within the div class="content" area.

  In the New ticket page the heading is repeated ("New Ticket" and "Enter a new ticket").

  The wiki and ticket detail page should follow this for consistency as well e.g. make the page/ticket name the first h1 on the page, below  the menu. See example here:

  [http://skitch.com/peterkz/djjyw/fossil-page-headings]

  <hr><i>anonymous added on 2010-06-24 16:34:01:</i><br>
  Where is it *not* above the menu?

  It is very consistent with the exception of New ticket having two titles, one above the menu and one below.


tkt_uuid: 38d80ca1693100591fa1e8fc9c033d878a1403cb
type: Feature_Request
status: Open
severity: Minor
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
title: Auto link URL:s in ticket descriptions
comment:
  For people who use Fossil in their web development project, tickets are likely to contain links to e.g. a specific page in the webapp. Currently pasted links in the Fossil ticket description field (the one I am typing into right now) does not become links in HTML when viewing the ticket.


tkt_uuid: 73895994960d9b60737ab47bb3f15ff7ab5333b6
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Styling: Remove table style attributes and use CSS instead
comment:
  To be able to create skins more easily, remove all table styling attributes like "border=0 cellpadding=3 cellspacing=0 " etc. from table markup. This should be set in the CSS instead. One of the tables where this is used can be found in the Tickets tables.


tkt_uuid: 7c700d2f28838490fc5625779315576a8d657988
type: Code_Defect
status: Fixed
severity: Important
foundin: 15b293259d
private_contact: 277de4eda861e8a6d011b60d4006a963a4c7c474
resolution: Fixed
title: Cannot rebuild a repository that has been ANALYZE'd by SQLite
comment:
  After I have opened a repository with SQLite to run ANALYZE on it, which was probably stupid, I cannot run fossil rebuild anymore. It attempts to drop table sqlite_stat1 and fails.

  <hr><i>BMorgat added on 2010-06-23 07:30:31:</i><br>
  A solution to come over this problem is to run:

  echo .dump | sqlite repository > dump.sql

  then edit dump.sql to delete SQL statements from ANALYZE sqlite_master; to last INSERT INTO sqlite_stat1

  then rm repository && sqlite repository < dump.sql


tkt_uuid: e68182a35ac0265a857e462c6b2a1e81a8b17a6d
type: Code_Defect
status: Open
severity: Minor
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Default HTML for new ticket form
comment:
  The New Ticket form uses tables for layout and lacks label elements for form fields. To make it easier to style the form and increase accessibility the following default HTML is proposed:

  [http://pastebin.com/8hdQB0wz]

  The unstyled version works in all browsers but to increase readability the following CSS should be added to the default CSS:

  [http://pastebin.com/dd3fwLek]

  <hr><i>anonymous claiming to be Peter Krantz added on 2010-06-22 17:59:22:</i><br>
  The proposed HTML uses the same field names as the previous form and should not affect functionality. Based on that HTML the following look is simple to create with CSS:

  [http://skitch.com/peterkz/djk51/fossil-new-ticket-form-html]


tkt_uuid: 5751755d47d959f5b1d55761abd4308d8b8ea9bb
type: Code_Defect
status: Closed
severity: Important
foundin: 3343450e64
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Fixed
title: Initial check-in isn't usable
comment:
  I want to handle vendor branches in a reasonable manner.
  I'm trying to do the following: commit vendor version
  into branch and merge the result onto trunk.

  Initial steps:

  <verbatim>
  $ mkdir /tmp/bug; cd /tmp/bug
  $ fossil new bug
  project-id: a4f5ac4cd49798bac13036300ab62f021b7f5388
  server-id:  d9e3d87cd655de7631396980dc753002ede0316c
  admin-user: asau (initial password is "ea9c71")
  $ mkdir test; cd test; fossil open ../bug
  $ fossil timeline
  === 2010-06-23 ===
  06:42:52 [cef303f2f8] *CURRENT* initial empty check-in (user: asau tags: trunk)
  </verbatim>

  Let's try to import vendor version and merge it onto trunk:

  <verbatim>
  $ :> test
  $ fossil add test
  ADDED  test
  $ fossil ci --branch vendor-version -m "Import vendor version."
  New_Version: 3ae4f0043b0d330d828d3712961ae9027f33ea61
  $ fossil close
  $ rm -f *
  $ fossil open ../bug trunk
  fossil: object [cef303f2f8] is not a check-in
  </verbatim>

  ???

  <verbatim>
  $ fossil merge vendor-version
  fossil: lack both primary and secondary files
  </verbatim>

  ???

  It doesn't work, somehow "initial check-in" is too special to be a "check-in".
  Work around is to create another empty check-in:

  <verbatim>
  $ fossil ci -f -m "Commit empty changes to work around."
  New_Version: 43da68d6ed8fd95d9728801a2ede65f0090d5e61
  $ fossil timeline
  === 2010-06-23 ===
  06:45:09 [43da68d6ed] *CURRENT* Commit empty changes to work around. (user:
           asau tags: trunk)
  06:43:56 [3ae4f0043b] Import vendor version. (user: asau tags: vendor-version)
  06:42:52 [cef303f2f8] *BRANCH* initial empty check-in (user: asau tags: trunk)
  $ fossil merge vendor-version
  ADDED test
  $ fossil ci -m "Merge vendor version."
  New_Version: 5ea37a73c292159210ba89de2315ea202f9afb9d
  $ fossil close
  </verbatim>

  It would be nice not to require this workaround.

  <hr><i>bch added on 2010-08-18 17:48:50:</i><br>
  Fixed w/ ci [61ca4141cc]


tkt_uuid: d17d6e5b174bd6f8bbe8be6f851de3d721190af8
type: Code_Defect
status: Fixed
severity: Minor
foundin: 7b7fe27678
private_contact: 277de4eda861e8a6d011b60d4006a963a4c7c474
resolution: Fixed
title: Handle file names containing brackets, interrogation mark or asterisk
comment:
  I am trying to version some Microsoft OpenXML files (docx, xlsx, pptx) that are zipped archives.

  A file in the archive is typically named <nowiki>[Content-Types].xml</nowiki> with those brackets.

  Fossil refuses to handle this file. I think this is because there are GLOB operations in the source code having looked it up quickly.

  But I am pretty sure it is possible with SQLite to GLOB 'a\?b' ESCAPE '\'

  Thank you for understanding this issue.

  <hr><i>anonymous claiming to be benoit added on 2010-06-25 05:26:32:</i><br>
  the hyperlink in the ticket description is actually text surrounded with brackets…

  <hr /><i>jan.nijtmans added on 2012-11-20 13:47:51 UTC:</i><br />
  Highly experimental fix for this committed in [82ce90f91c]. Should get a lot more testing before going into trunk
  <p>Feedback welcome.

  <hr /><i>anonymous added on 2012-11-20 15:18:47 UTC:</i><br />
  <pre>
  char *fossil_unicode_to_utf8(void *zUnicode){
  #ifdef _WIN32
    int nByte = 0;
    char *zUtf;
    WCHAR *wUnicode = zUnicode;
  /*
  This my have problem when zUnicode is readonly.
  And it's will modify zUnicode when sometimes we did not want to modify it.
  */
    while( *wUnicode != 0 ){
      if ( (*wUnicode > 0xF000) && (*wUnicode <= 0xF07F) ){
        *wUnicode &= 0x7F;
      }
      ++wUnicode;
    }
    nByte = WideCharToMultiByte(CP_UTF8, 0, zUnicode, -1, 0, 0, 0, 0);
    zUtf = sqlite3_malloc( nByte );
    if( zUtf==0 ){
      return 0;
    }
    WideCharToMultiByte(CP_UTF8, 0, zUnicode, -1, zUtf, nByte, 0, 0);
    return zUtf;
  #else
    return (char *)zUnicode;  /* No-op on unix */
  #endif
  }
  </pre>
  <pre>
  void *fossil_utf8_to_unicode(const char *zUtf8){
  #ifdef _WIN32
  /* nWord should be meaningful than nByte here*/
    int nByte = MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, 0, 0);
    wchar_t *zUnicode = sqlite3_malloc( nByte * 2 );
    wchar_t *wUnicode;
    if( zUnicode==0 ){
      return 0;
    }
    MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zUnicode, nByte);
    wUnicode = zUnicode;
    while( --nByte > 0){
      if ( (*wUnicode < 32) || wcschr(L"\"*<>?|", *wUnicode) ){
        *wUnicode |= 0xF000;
      }
      ++wUnicode;
    }

    return zUnicode;
  #else
    return (void *)zUtf8;  /* No-op on unix */
  #endif
  }
  </pre>

  <hr /><i>anonymous added on 2012-11-20 15:23:31 UTC:</i><br />
  <pre>
  char *fossil_unicode_to_utf8(void *zUnicode){
  #ifdef _WIN32
    int nByte = 0;
    char *zUtf;
    WCHAR *wUnicode = zUnicode;
  /*
  This my have problem when zUnicode is readonly.
  And it's will modify zUnicode when sometimes we did not want to modify it.
  */
    while( *wUnicode != 0 ){
      if ( (*wUnicode > 0xF000) && (*wUnicode <= 0xF07F) ){
        *wUnicode &= 0x7F;
      }
      ++wUnicode;
    }
    nByte = WideCharToMultiByte(CP_UTF8, 0, zUnicode, -1, 0, 0, 0, 0);
    zUtf = sqlite3_malloc( nByte );
    if( zUtf==0 ){
      return 0;
    }
    WideCharToMultiByte(CP_UTF8, 0, zUnicode, -1, zUtf, nByte, 0, 0);
    return zUtf;
  #else
    return (char *)zUnicode;  /* No-op on unix */
  #endif
  }
  </pre>









  <pre>
  void *fossil_utf8_to_unicode(const char *zUtf8){
  #ifdef _WIN32
  /* nWord should be meaningful than nByte here*/
    int nByte = MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, 0, 0);
    wchar_t *zUnicode = sqlite3_malloc( nByte * 2 );
    wchar_t *wUnicode;
    if( zUnicode==0 ){
      return 0;
    }
    MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zUnicode, nByte);
    wUnicode = zUnicode;
    while( --nByte > 0){
      if ( (*wUnicode < 32) || wcschr(L"\"*<>?|", *wUnicode) ){
        *wUnicode |= 0xF000;
      }
      ++wUnicode;
    }

    return zUnicode;
  #else
    return (void *)zUtf8;  /* No-op on unix */
  #endif
  }
  </pre>


tkt_uuid: 71b1f35b4fefd5f327f2618968d34320203388ea
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: a7ec239b1a3401c4229e18dead1ea4225e287fb9
resolution: Open
title: Revamping of Files page
comment:
  The Files page is very basic as of now, without any icons.

  A simple interface like Apache index page (with basic set of icons) or a bit complex 2-pane (Folder Tree + Files) interface will be much easy to navigate.

  Please consider this feature.

  <hr><i>BMorgat added on 2010-07-02 13:59:23:</i><br>
  See attached file (javascript section that works at least under IE8 and Firefox 3.6 but should also work on older versions of these browsers).

  <hr><i>anonymous claiming to be BMorgat added on 2010-07-02 14:49:48:</i><br>
  Please note that the <nowiki>XXXXX[...]XXXX==</nowiki> parts in the previous javascript attachment are to be replaced with the base64-encoded contents of two distinct 16x16 png image files.

  it is adviseable to use optipng first to have less length.


tkt_uuid: 92d3a03459bc6560711471d8344c8ce834976d0f
type: Code_Defect
status: Open
severity: Important
foundin: 15b293259d
private_contact: cfcf19d860dc668ea6bb4cf4d3dff6a844a5a286
resolution: Open
title: problems with "fossil wiki delete"
comment:
  I added a wiki page using "fossil wiki create." The page is listed in the output of "fossil wiki list," but I'm unable to delete it:

  <b>c:\dev2\view1>fossil wiki create User_fred fred.txt</b>

  Created new wiki page User_fred.

  <b>c:\dev2\view1>fossil wiki list</b>

  User_fred

  <b>c:\dev2\view1>fossil wiki delete User_fred</b>

  Usage: fossil wiki delete PAGENAME

  <hr><i>anonymous added on 2010-07-05 20:45:06:</i><br>
  I just saw in the source code that "wiki delete" isn't implemented yet.


tkt_uuid: 49395d4e70940fb0591fb7b930a1a845c866fe9b
type: Feature_Request
status: Open
severity: Minor
private_contact: ebbf214358fed060592f40f5d3be2e893cd6407e
resolution: Open
title: Styling: Separate HTML and CSS files from C source
comment:
  By separating the files required by the web UI it would be easier to implement fixes and improvements. Maybe the packaging of these files could happen in the build step instead of having strings of HTML in the C source?

  <hr><i>ttmrichter added on 2010-07-10 06:07:24:</i><br>
  I have to agree with this.  Every time I look at trying to amend or clean up any of the HTML/CSS stuff in Fossil I kind of shrink away because it's scattered everywhere.  If the HTML/CSS stuff were in one place and treated like, say, a language resource file for i18n it would be easier to update, fix, amend, enhance, etc. Fossil's HTML/CSS handling.

  <hr><i>eric added on 2010-07-10 09:50:07:</i><br>
  I think what you are asking for is, in effect, the creation or adoption of a templating language. This would make layout easier at the expense of making functionality changes more difficult (i.e. code _and_ template). A bad idea in my opinion.

  CSS is already separate, and it would be good if every HTML object had a class attribute, but that's it.

  <hr><i>ttmrichter added on 2010-07-10 10:46:20:</i><br>
  I'm not asking so much for a templating language as just having all the HTML and CSS in one place.  Where the code currently has HTML fragments all over the place, I'm advocating keeping the HTML in a single <em>documented</em> resource file (perhaps just a C file with a bunch of named string variables or a hash map with well-known key names) so that it's easier to find the snippets and edit them as needed.


