# ticket

tkt_uuid: 4060715d461650592727162777797ace6fb83d7b
type: Feature_Request
status: Open
severity: Minor
private_contact: b0d539d482373c5e82293a809870b429a9a7db56
resolution: Open
title: Implement FastCGI interface
comment:
  Running Fossil as a standalone service is often undesirable and running it using CGI can also cause performance, security or configuration issues. I suggest implementing [http://www.fastcgi.com/|FastCGI interface] (see also [http://en.wikipedia.org/wiki/FastCGI|the Wikipedia article] for overview). It is supported by majority of todays web servers, it is efficient and easy to implement. I suppose that modifying Fossil standalone web server to implement FastCGI interface could be quite easy using [http://www.fastcgi.com/drupal/node/5|FastCGI devkit] and it would be quite nice complement to <i>server</i> and <i>cgi</i> commands.

  There has been a discussion concerning [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg02068.html|SCGI] and also a [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg00194.html|question about FastCGI] on the mailing list, but AFAIK without a definite conclusion.

  If it is difficult to implement for some reason, please add a notice into FAQ or somewhere else in the documentation. Thanks.

  <hr /><i>stephan added on 2011-09-14 18:13:47 UTC:</i><br />
  Just some random notes:

  - FastCGI requires the global use of FastCGI drop-in replacements for read/write calls. ALL code using the fread/fwrite/and friends APIs must use the FastCGI replacements.

  - The FastCGI wrapper for fwrite() has a broken type signature, possibly requiring a kludge in the client code:

  #  define FWRITE(p, s, n, f) FCGI_fwrite((void *)p, s, n, f)

  FCGI_fwrite() is defined to take a _non-const_ pointer as the src memory address, which is incompatible with fwrite() and breaks code which references fwrite via function pointer.

  Additionally, FastCGI requires per-app-run state, which fossil's architecture cannot handle (it makes heavy use of global state). That said, DRH once suggested the fork()ing each instance as a workaround. The cost of fork()ing _might_, however, be as high as _not_ using FastCGI.


  <hr /><i>lrem added on 2011-11-19 13:32:54 UTC:</i><br />
  Apart from being somewhat intrusive, usage of FastCGI devkit would require its authors to submit the copyright releases (which, I don't know why, I feel to be unlikely).

  While I've always been happy with FastCGI, I don't feel it's actually needed for Fossil. It seems to be efficient enough to use a proxy pass to a standalone Fossil server.

  <hr /><i>drh added on 2011-11-25 15:31:22 UTC:</i><br />
  A reasonable implementation of FastCGI for Fossil would be:

    1.  Capture the FastCGI parameters and query content
    2.  Write the query parameters and content into a temporary file
        formatted as a normal HTTP request
    3.  Use fossil_system() to recursively invoke Fossil to process
        the generated HTTP request, writing the results into another
        temporary file.
    4.  Read back the reply out of the second temporary file
    5.  Reformat and send the reply back to the FastCGI requestor
    6.  Delete the two temporary files.

  The above is basically the procedure used to implement the "ui" and
  "server" commands for windows, as shown in the
  win32_process_one_http_request() function in the winhttp.c source file.  The
  main difference is that in the case of the "ui" and "server" commands,
  the incoming request is already a valid HTTP request and does not need
  to be translated as it is moved in and out of the temporary
  files.  So, in other words, a Fossil FastCGI implementation would basically
  be the same as the windows ui/server implementation with some extra
  coding and decoding logic thrown in.

  Note that the above implementation is completely isolated and does
  not require any changes to any existing parts of Fossil.  One has
  merely to add a new "fastcgi.c" source file that implements the above.
  All of the FastCGI decoding and translation and protocol handling would
  be contained entirely in that one source file.

  I think the only reason for wanting to support FastCGI is so that you
  can run Fossil more easily using nginx.  FastCGI won't be any more efficient.
  In fact, if you consider the extra encoding and decoding logic that has
  to run, FastCGI will probably be less efficient than simply configuring
  nginx to relay requests to a running Fossil "server" instance.



  <hr /><i>jeremy_c added on 2011-11-26 15:45:25 UTC:</i><br />
  I think the SCGI may be a viable alternative as well? SCGI as of the last few years has gained much popularity while FastCGI seems to have dwindled in popularity. SCGI is a simpler protocol and from my experience has more web server support than FastCGI.


tkt_uuid: 40a7d777a46548727f3988ca26bbd824f1730813
type: Code_Defect
status: Fixed
severity: Important
foundin: cea065c7f2
private_contact: 0104dabff6057f27042b765f556ea05cb3727a5c
resolution: Fixed
title: fossil up doesn't recover deleted file (fossil up -v does....)
comment:
  if I delete one file from repository and I do a <b>fossil up</b> to recover it, it doesn't work (nothing happens). But <b>fossil up -v</b> recover the deleted file as expected... 

  Seems that <b>"-v"</b> does more than adding verbosity...

  <hr /><i>anonymous claiming to be Martin added on 2011-04-18 16:29:10 UTC:</i><br />
  Correction: When I say "Delete one file from repository", I mean Delete the file locally from file system..

  <hr /><i>drh added on 2011-04-18 18:25:49 UTC:</i><br />
  The problem with the -v switch has been fixed.

  For restoring a deleted file, you want the "revert" command, not "update".

  <hr /><i>anonymous added on 2011-04-18 19:38:59 UTC:</i><br />
  Ok.. now -v does the same as without it.. but may be a bit too much, we got identical outpout now. Before, we got bunch of <b>UNCHANGED: </b>" lines for every file in the repository with "-v". The new version doesn't show that anymore. Was it intentional ?

  Anyway, the <b>UNCHANGED</b>: lines was not very usefull for me.. But having the <b>MISSING:</b> and <b>EDITED:</b> lines with -v would be usefull (without the UNCHANGED ones)


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: 40d9dbd3ade39488a6786cd4588c0915974a9961
type: Code_Defect
status: Open
severity: Minor
foundin: cdc4249268
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
resolution: Open
title: ssh scheme incompatible with tcsh
comment:
  It looks like fossil is relying on some sh(1) or bash(1) specific semantic when it comes to syncing via ssh. Maybe using something like:

  <verbatim>/bin/sh -c 'exec /path/to/fossil'</verbatim>

  or threads?  Here's what's currently happening with tcsh:

  <verbatim>% fs remote-url 'ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil'
  password for usr: 
  ssh://usr:*@remote-url.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
  % fs pull
  Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
  ssh -p 22 -t -e none -p 4321 usr@remote-url.example.com
  Pseudo-terminal will not be allocated because stdin is not a terminal.
  fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).
  Thus no job control in this shell.]
  Killed by signal 2.
  Exit 1
  % fs set ssh-command 'ssh -p 4321 -T -e none'
  % fs pull
  Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil?fossil=/usr/local/bin/fossil
  ssh -p 22 -T -e none -p 4321 usr@remote-url.example.com
  fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).]
  Killed by signal 2.
  Exit 1
  % fs set ssh-command
  ssh-command          (local)  ssh -p 4321 -T -e none
  % fs sync
  Server:    ssh://remote-host.example.com/src/.fossils/project.fossil
  ssh -p 22 -T -e none -p 4321 remote-host.example.com
  fossil: ssh connection failed: [Warning: no access to tty (Bad file descriptor).
  Thus no job control in this shell.]
  Killed by signal 2.
  Exit 1</verbatim>

  Both client and server are running the same version of fossil.  When I change the shell to sh, I get the following output:

  <verbatim>% fs sync
  Server:    ssh://usr@remote-host.example.com:4321/src/.fossils/proj.fossil
  ssh -p 22 -T -e none -p 4321 remote-host.example.com
                  Bytes      Cards  Artifacts     Deltas
  Sent:            4005         85          0          0
  fossil: server says: 501 Not Implemented
  Total network traffic: 2341 bytes sent, 0 bytes received
  Closing SSH tunnel: Killed by signal 2.</verbatim>

  When I sync via http over an ssh tunnel, things work just fine:

  <verbatim>% fs remote-url http://usr@127.0.0.1:9099/
  password for usr:
  http://usr@127.0.0.1:9099/
  % fs sync
  Server:    http://usr@127.0.0.1:9099/
                  Bytes      Cards  Artifacts     Deltas
  Sent:            4005         85          0          0
  Received:        3820         83          0          0
  Total network traffic: 2368 bytes sent, 1275 bytes received</verbatim>

  <hr /><i>joerg added on 2011-03-25 01:44:09 UTC:</i><br />
  This is essentially a bug in tcsh. Consider running
  <verbatim>
  echo 'echo test' | tcsh -l > test.dmp 2>&1
  </verbatim>

  That should start a non-interactive shell, since neither stdin, stdout nor stderr is a tty. As a result, all start up scripts and the shell itself should be silent.
  tcsh doesn't do that and the output is confusing fossil. It works with sftp and scp since they use the subsystem mechanism from ssh and don't actually get a shell. The message about job control should be suppressed for the !isatty case too/


  <hr /><i>anonymous claiming to be seanc added on 2011-03-28 19:29:18 UTC:</i><br />
  I disagree that this is an external bug.

  fossil could/should execute the /bin/sh command as its command to execute on the remote side because fossil is requiring a particular shell, in this case, sh.

  Or, if that's not possible, have it fire off an 'exec bin/sh' as its first command upon establishing an ssh connection. Something like (one of the two options should work - dry coded, unfortunately):

  <verbatim>Index: src/http_transport.c
  ===================================================================
  --- src/http_transport.c
  +++ src/http_transport.c
  @@ -147,17 +147,23 @@
       }else{
         zHost = mprintf("%s", g.urlName);
       }
       blob_append(&zCmd, " ", 1);
       shell_escape(&zCmd, zHost);
  +    blob_append(&zCmd, " ", 1);
  +    shell_escape(&zCmd, "/bin/sh");
       printf(" %s\n", zHost);  /* Show the conclusion of the SSH command */
       free(zHost);
       popen2(blob_str(&zCmd), &sshIn, &sshOut, &sshPid);
       if( sshPid==0 ){
         fossil_fatal("cannot start ssh tunnel using [%b]", &zCmd);
       }
       blob_reset(&zCmd);
  +
  +    /* Start sh(1) */
  +    fprintf(sshOut, "exec /bin/sh\n");
  +    fflush(sshOut);
   
       /* Send an "echo" command to the other side to make sure that the
       ** connection is up and working.
       */
       fprintf(sshOut, "echo test\n");

  </verbatim>


tkt_uuid: 40df1ced7ebd6a8b9e419ff1a788ce05e33a82e1
type: Code_Defect
status: Fixed
severity: Severe
foundin: 767ae79c3d
private_contact: 668a819fc68ae3df87285ba92d1fd8ef824e2d2b
resolution: Fixed
title: Sync fail/crash with file: URL on Win32
comment:
  On Windows (XP SP3) it is possible to clone a repository using a file: URL, but attempting a pull, push or sync fails (and occasionally crashes).  

  This occurs whether you are in an open repository or specifying the repository via -R.  Also no difference between absolute and relative file: URLs.

  To reproduce:

  <pre>
  C:> mkdir repo1 && cd repo1
  C:> fossil new repo1.fossil
  C:> cd ..
  C:> mkdir repo2 && cd repo2
  C:> fossil clone file://../repo1/repo1.fossil repo2.fossil
  C:> fossil sync file://../repo1/repo1.fossil -R repo2.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:             263          3          0          0
  'fossil" http "C:' is not recognized as an internal or external command,
  operable program or batch file.
  C:> fossil open repo2.fossil
  C:> fossil sync file://../repo1/repo1.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:             263          3          0          0
  'fossil" http "C:' is not recognized as an internal or external command,
  operable program or batch file.
  </pre>

  <hr><i>anonymous claiming to be Twylite added on 2009-06-23 16:41:36:</i><br>
  Some more information:

  transport_flip() in http_transport.c is using system() to execute "fossil http" with some parameters.  By adding a strategic 'echo' to the front of the command I can tell that it's trying to do this ...

  <tt>cmd /c "fossil" http "C:/Temp/test/repo1/repo1.fossil" "C:/Temp/test/repo2/repo2.fossil-17469728767716370470-out.http" "C:/Temp/test/repo2/repo2.fossil-17469728767716370470-in.http" 127.0.0.1</tt>

  ... which executed on a command line gives the same error that I was seeing, i.e. <tt>'fossil" http "C:' is not recognized ...</tt>.

  The help for 'cmd' says the following:

  1. If all of the following conditions are met (SNIP - they aren't)

  2. Otherwise, old behavior is to see if the first character is a quote character and if so, strip the leading character and remove the last quote character on the command line, preserving any text after the last quote character.

  So on Windows XP we need to add additional double-quotes around the entire command to make it work correctly (and that should also be backwards compatible to 2000, NT, etc.).

  I assume that /bin/sh on *nix will be less happy about such a change.

  The crash is not directly related to this -- it would seem that waiting for "fossil http" causes a memory access violation (the crash happens after a similar delay if I execute a different/successful command in the system() call).




  <hr><i>anonymous claiming to be Twylite added on 2009-06-23 20:26:51:</i><br>
  Possible fix: use an #ifdef to change quoting on WIN32.

  The following patch appears to fix the problem (tested on WinXP SP3 under cmd shell and msys).  It should leave the behaviour on *nix systems untouched.

  <pre>
  --- src/http_transport.c
  +++ src/http_transport.c
  @@ -140,14 +140,21 @@
   /*
   ** This routine is called when the outbound message is complete and
   ** it is time to being recieving a reply.
   */
   void transport_flip(void){
  +#ifdef __MINGW32__
  +  /* If a command begins with a quote, cmd.exe will strip the leading char
  +   * and the last quote char on the line.  See 'cmd /?' */
  +  char* cmdformat = "\"\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1\"";
  +#else
  +  char* cmdformat = "\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1";
  +#endif
     if( g.urlIsFile ){
       char *zCmd;
       fclose(transport.pFile);
  -    zCmd = mprintf("\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1",
  +    zCmd = mprintf(cmdformat,
          g.argv[0], g.urlName, transport.zOutFile, transport.zInFile
       );
       system(zCmd);
       free(zCmd);
       transport.pFile = fopen(transport.zInFile, "rb");
  </pre>


  <hr><i>anonymous claiming to be Twylite added on 2009-06-24 12:53:43:</i><br>
  I think I posted that patch as 'pre' instead of 'verbatim'.  To safe a lot of frustration if you didn't notice the <nowiki>[bad-link:0]</nowiki> in there, here's a better copy:

  <verbatim>
  --- src/http_transport.c
  +++ src/http_transport.c
  @@ -140,14 +140,21 @@
   /*
   ** This routine is called when the outbound message is complete and
   ** it is time to being recieving a reply.
   */
   void transport_flip(void){
  +#ifdef __MINGW32__
  +  /* If a command begins with a quote, cmd.exe will strip the leading char
  +   * and the last quote char on the line.  See 'cmd /?' */
  +  char* cmdformat = "\"\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1\"";
  +#else
  +  char* cmdformat = "\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1";
  +#endif
     if( g.urlIsFile ){
       char *zCmd;
       fclose(transport.pFile);
  -    zCmd = mprintf("\"%s\" http \"%s\" \"%s\" \"%s\" 127.0.0.1",
  +    zCmd = mprintf(cmdformat,
          g.argv[0], g.urlName, transport.zOutFile, transport.zInFile
       );
       system(zCmd);
       free(zCmd);
       transport.pFile = fopen(transport.zInFile, "rb");

  </verbatim>



  <hr><i>drh added on 2009-06-25 12:54:02:</i><br>
  Fixed by check-in [2554ba460dd8b56]


tkt_uuid: 40f32e9733dd7cf0b7cd621e8fd79cbe72b5531e
type: Code_Defect
status: Fixed
severity: Minor
foundin: 79c9de763a
resolution: Duplicate
title: incorrect url for check-ins entry on ticket history menu
comment:
  When on a Ticket History page, selecting Check-ins from the menu returns:<br>
  <b>"No such ticket: <short_uuid>?=ci"</b> with short uuid of the selected ticket.

  This results from the incorrectly formed url for Check-ins menu as:
  "/tkttimeline?name=<short_uuid>?y=ci"

  To demonstrate the issue, try selecting Check-ins link in history of ticket [/tkthistory/9195b1e5f3|9195b1e5f3].

  <hr /><i>anonymous added on 2011-06-13 23:11:40 UTC:</i><br />
  Looks like this problem is not a priority in almost year..
  So below is a work-around in case someone needs it:
  -- in the incorrect url for ticket history check-ins at the end change:

  ?y=ci

  to be:
   
  &y=ci

  This will show the check-ins properly.

  <hr /><i>dmitry added on 2011-09-08 23:31:15 UTC:</i><br />
  I can't reproduce this -- has this been fixed?

  <hr /><i>dmitry added on 2011-09-10 21:05:48 UTC:</i><br />
  Fixed in [082c02a80c] (also ticket [53ed528478dbc42]).


tkt_uuid: 4108dfd6b717f1516b7a2dfb856257afc3012d65
type: Code_Defect
status: Fixed
severity: Minor
foundin: [989fc1f2b6] 2011-04-27 16:07:15 UTC
resolution: Fixed
title: Sqlite error on latest Fossil build
comment:
  I'm getting the following error after rebuilding two repos (one of them being a clone of Fossil) and when running "fossil ui" on these rebuilt files:

  <verbatim>
  D:\ARNEL\projs
  $ fossil rebuild fsl.fsl
    100.0% complete...
  D:\ARNEL\sw\tools\cli\fossil.exe: SQLITE_IOERR: os_win.c:32109: (158) unlockReadLock(D:\ARNEL\projs\fsl.fsl) - The segment is already unlocked.
  D:\ARNEL\sw\tools\cli\fossil.exe: SQLITE_IOERR: os_win.c:32109: (158) unlockReadLock() - The segment is already unlocked.

  D:\ARNEL\projs
  $ fossil ver
  This is fossil version [989fc1f2b6] 2011-04-27 16:07:15 UTC</verbatim>

  <hr /><i>anonymous added on 2011-04-27 19:01:41 UTC:</i><br />
  This appears to happen only on the Fossil version mentioned above. Going a step back to "[e3efeb6f29] 2011-04-27 14:36:45 UTC" produces no errors when rebuilding any repo.


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: 41bb23e65002895e71d5ff1670f2e72037d82678
type: Code_Defect
status: Fixed
priority: Immediate
severity: Minor
foundin: a1f727be9d
private_contact: 073f0e6044dde71b455edbcf5fe3e9aafd90cec8
resolution: Open
title: win32 fossil commit stops if many files added or edited.
comment:
  'blob_add_cr()' has buffer overrun if it requires to call 'blob_resize()'

  (declared in "blob.c") 'blob_add_cr()' increase 'Blob#nUsed' if Blob includes '\n'. and 'blob_resize()' update it, too. then it makes buffer overrun.

  here is my replacement
  <verbatim>void blob_add_cr(Blob *p){
    char *z = p->aData;
    int j   = p->nUsed;
    int i, n;
    for(i=n=0; i<j; i++){
      if( z[i]=='\n' ) n++;
    }
    j += n;
    if( j>=p->nAlloc ){
      blob_resize(p, j);
      z = p->aData;
    }
    p->nUsed = j;
    z[j] = 0;
    while( j>i ){
      if( (z[--j] = z[--i]) =='\n' ){
        z[--j] = '\r';
      }
    }
  }</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: 43698c424703dc127687e6ca6a408c917b3706df
type: Incident
status: Closed
priority: Medium
severity: Important
foundin: 713b8be852
private_contact: 21c0f447532234366dbec18d60d747db150b5faa
resolution: External_Bug
title: Added a field Assigned to but can't change text and it at the same time.
comment:
  I need a field Assigned To so that I may pass tickets back and forth between users but it seems when I create or edit a new ticket I can't change that value and add text at the same time.  I first have to add text then hit edit again then changed the Assigned to value for it to take.  Anyone else run into this?

  I defined Assigned To choices in the common database information under tickets as follows 

  set assigned_To_choices {
    Joe
    Mama
    Both
  }

  is this ok?  In the new/edit tickets I added it to the HTML as follows

  <tr>
  <td align="right">Assign To:
  <th1>combobox type $assigned_To_choices 1</th1>
  </td>
  <td>Who is this ticket assigned to?</td>
  </tr>

  is this ok?

  <hr><i>drh added on 2009-09-09 15:42:50:</i><br>
  This sounds like you are requesting help or assistance in configuring
  Fossil, not reporting a bug.  Please reserve the use tickets for bug reports.

  For help in configuring Fossil, please post on the fossil users mailing list.
  Visit the fossil homepage for instructions on how to get to the users
  mailing list.

  <hr><i>anonymous added on 2009-09-09 17:04:16:</i><br>
  I agree it could be a configuration issue but I wasn't sure if it was pertaining to code or configuration so I posted it here.  All the other selections ie type, severity, resolution, and status are all setup the same what I have setup my new addition setup which makes me believe is could possibly be a bug.  Has anyone else had an issue like this?  I haven't seen another bug report like this.

  <hr><i>anonymous added on 2009-09-09 17:05:28:</i><br>
  I'm sorry I reported it incorrectly.  I meant to say I have added a field Assigned_To and this is occurring.  Sorry for the confusion.

  <hr><i>drh added on 2009-09-19 14:47:10:</i><br>
  I think this is the same problem in your configuration that was described
  in ticket [4c8803b3b168].


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: 44002a7760cf54060b426865bcdca5b81421cad1
type: Code_Defect
status: Fixed
severity: Important
foundin: [092d763028] 2010-10-05 10:43:28 UTC
private_contact: 990fc58e2fbfe89bc7012d67ec7054419441d450
resolution: Fixed
title: cannot locate home directory - please set the HOMEPATH environment variable
comment:
  Just seen this on Windows XP 32-bit:

  <pre>C:\Users\buildbot\Reu2\bin\bga120\build>fossil pull
  fossil: cannot locate home directory - please set the HOMEPATH environment variable</pre>

  I think you want USERPROFILE rather than HOMEPATH. I've never seen HOMEPATH on a Windows machine, but USERPROFILE has been about since Windows 2000 (or earlier).

  Regards,<br>
  Adam J Richardson

  <hr /><i>wolfgang added on 2010-10-07 20:51:08:</i><br />
  On all my windows machines(XP SP2, Win7HP) are the environment variables HOMEPATH and HOMEDRIVE defined. A quick search on the net shows me, that both variables should be defined on windows.

  HOMEPATH is only a fallback, fossil searches the following environment variables in the given order:
   LOCALAPPDATA -> APPDATA -> HOMEPATH

  USERPROFILE might be added to this fallback chain, but i think there must be another problem on your machine, because LOCALAPPDATA and APPDATA are not found too.

  One remark: i think HOMEPATH in the current implementation might not on work on some installations. HOMEPATH contains only the path (f.e. /Profile/User) and does not give you the drive (c:). So fossil should read %HOMEDRIVE%%HOMEPATH%.

  <hr /><i>anonymous claiming to be arichardson added on 2010-10-08 08:20:15:</i><br />
  Huh. Seems you're right. How strange, I've never seen the HOME* variables on NT5+ before.

  I do have APPDATA but not LOCALAPPDATA. I don't think it can be looking for APPDATA because all sorts of programs would fail if I didn't have that defined.

  I would still argue for %USERPROFILE% over %HOMEDRIVE%/%HOMEPATH% because it only references one env var instead of two, and does the exact same thing, it seems.


  <hr /><i>anonymous added on 2010-10-15 09:17:04:</i><br />
  Here is an interesting discussion on HOMEPATH vs. USERPROFILE.

  [http://vim.1045645.n5.nabble.com/WinNT-XP-2003-USERPROFILE-vs-HOMEPATH-td1195975.html|linky (sfw)]


  <hr /><i>anonymous claiming to be ticica added on 2011-02-01 21:41:17 UTC:</i><br />
  I also had the same problem on Windows 2000, running fossil from a process running as a windows service. Using USERPROFILE as yet another fallback seems to have fixed it. So, in db.c, in function db_open_config, add this:
  ...
  if( zHome==0 ){
     zHome = getenv("USERPROFILE");
  }
  ...

  <hr /><i>anonymous added on 2011-05-08 15:57:52 UTC:</i><br />
  Current fossil behaviour causes problems at least on Windows 7.
  On my system (Win 7 Home Basic 32 bit) HOMEPATH variable contains path, relative to HOMEDRIVE value, while USERPROFILE contains full path including drive name. Using HOMEPATH causes wrong behaviour when fossil invoked on the drive, other than HOMEDRIVE. For example using path \Users\joe from directory D:\someproject makes fossil search user profile directory at D:\Users\joe which is obviously wrong.
  I believe fossil should rather use USERPROFILE or construct full path by combining HOMEDRIVE and HOMEPATH values.


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: 4429a81aa893fc188f683ce2e3397cdaca3c99c7
type: Code_Defect
status: Open
foundin: 94c60f3c7e
private_contact: 05f652db744266759b20d248ec2f451629420388
resolution: Open
title: Strange behavior when changing case of filenames on case-insensitive filesystem
comment:
  Consider the case when renaming "myfile.txt" to "MyFile.txt" on case-insensitive filesystem (e.g. HFS+), but forgetting to tell Fossil about rename, and just using "fossil addremove" command. "MyFile.txt" will be added as a new file, but "myfile.txt" won't be deleted, so we end up with two identical files with different names when looking at repository via "fossil ui", but when we checkout them, we of course, get just one file.

  Here's test:

  <verbatim>

  $ fossil new repo.fossil
  project-id: 3eb03c25edc4b03e6b9e64985f25d20363aeda0c
  server-id:  f18702b2ee13d9a34b020be3cb096ed65f32e1ec
  admin-user: dmitry (initial password is "2affdf")

  $ mkdir repo
  $ cd repo
  $ fossil open ../repo.fossil 
  $ echo "First" >> myfile.txt
  $ fossil add myfile.txt 
  ADDED  myfile.txt

  $ fossil commit -m "lowercase"
  New_Version: 7a77d8c7c80e239225351d4a9b9e9d02c591ebdf

  $ mv myfile.txt MyFile.txt
  $ ll
  total 24
  -rw-r--r--  1 dmitry  staff     6 Jan 22 13:11 MyFile.txt
  -rw-r--r--  1 dmitry  staff  7168 Jan 22 13:11 _FOSSIL_

  $ fossil changes
  $ fossil addremove
  ADDED  MyFile.txt
  added 1 files, deleted 0 files

  $ fossil commit
  /usr/bin/vim "/Users/dmitry/ST/repo/ci-comment-A85BD1C98500.txt"
  New_Version: 3fb2e205f8dad54fbac31a68177648d115ca7860

  $ rm *
  $ fossil open ../repo.fossil 
  MyFile.txt
  project-name: <unnamed>
  repository:   /Users/dmitry/ST/repo.fossil
  local-root:   /Users/dmitry/ST/repo/
  project-code: 3eb03c25edc4b03e6b9e64985f25d20363aeda0c
  server-code:  f18702b2ee13d9a34b020be3cb096ed65f32e1ec
  checkout:     3fb2e205f8dad54fbac31a68177648d115ca7860 2011-01-22 12:12:36 UTC
  parent:       7a77d8c7c80e239225351d4a9b9e9d02c591ebdf 2011-01-22 12:11:33 UTC
  tags:         trunk
  comment:      Renamed. (user: dmitry)
  $ ll
  total 24
  -rw-r--r--  1 dmitry  staff     6 Jan 22 13:13 MyFile.txt
  -rw-r--r--  1 dmitry  staff  7168 Jan 22 13:13 _FOSSIL_
  </verbatim>


  Here's manifest of the second commit:

  <verbatim>
  C Renamed.
  D 2011-01-22T12:12:36.278
  F MyFile.txt 7322e1fd19fd2986254c38eb418971859ede506d
  F myfile.txt 7322e1fd19fd2986254c38eb418971859ede506d
  P 7a77d8c7c80e239225351d4a9b9e9d02c591ebdf
  R 342c091c43d8964d553678092b8218e7
  U dmitry
  Z cde393ff1422550babdc8a5951aa06d1
  </verbatim>

  <hr /><i>anonymous added on 2011-01-22 14:25:40 UTC:</i><br />
  I've made the same test as you and I reproduce everything. But also, I tried the following, may be those extra info can be usefull:

    *  I copy the fossil file to another OS which have case sensitive filesystem 
    *  I've made a checkout (so I got the 2 files)
    *  I've edit both of them with different content and then commit

  <pre>
  # cat myfile.txt
  First file, edited

  # cat MyFile.txt
  Fist file, with capitals, edited
  </pre>

    *  I copy back the fossil file to my osx machine with case insensitive, made a checkout, and then I got the following:

  <pre>
  meeks-mbp:repo $ fossil open ../test.fsl 
  MyFile.txt
  overwrite /Users/meeks/fossil/test/repo/myfile.txt (a=always/y/N)? y
  myfile.txt
  WARNING: manifest checksum does not agree with disk
  project-name: <unnamed>
  repository:   /Users/meeks/fossil/test/test.fsl
  local-root:   /Users/meeks/fossil/test/repo/
  project-code: 7dcace824b7b4318bec9a6f80ba2a00fd43215ff
  server-code:  6cd5d13657fb215e96caeff6f551584865e6622e
  checkout:     c9e1c25a26f1e06694aa947053464db31e854f6d 2011-01-22 14:09:04 UTC
  parent:       74671ab018da4f0f288f20cb6d2f1cb21893f084 2011-01-22 14:06:04 UTC
  tags:         trunk
  comment:      lil changes (user: meeks)
  meeks-mbp:repo $ ls
  MyFile.txt  _FOSSIL_
  </pre>

  And what's strange, I got the file with capital letters, but the content of the one without:

  <pre>
  # ls
  MyFile.txt  _FOSSIL_

  # cat MyFile.txt
  First file, edited
  </pre>

  <hr /><i>anonymous added on 2011-01-22 15:09:45 UTC:</i><br />
  Actually. Answering no to this line:

  <pre>
  overwrite /Users/meeks/fossil/test/repo/myfile.txt (a=always/y/N)?
  </pre> 

  Keep only MyFile.txt with proper content. Answered yes produce MyFile.txt only but with content overwritten with content of myfile.txt...


tkt_uuid: 45a1b87a23afc27c8c59aaca225ea55bb7187faa
type: Code_Defect
status: Open
foundin: [74cbfc69ad] 2011-06-21
title: fossil merge should trigger pull with autosync
comment:
  I've had a problem running "fossil merge mainbranch", while in the upstream server (not in the local repository) there was a card that changed the "mainbranch" last checkin to a new branch, as you do with 'mistake'.

  I use autosync on, and if "fossil merge mainbranch" had triggered a pull before merge, this problem would not have happened.

  Do you find it reasonable to trigger a pull on merge?


tkt_uuid: 45d4c64a2363049dc38739f93b9ef649319a8be8
type: Feature_Request
status: Open
title: show ticket statistics
comment:
  what about having a ticket created vs ticket resolved chart and other useful statistics like on i.e. http://jira.codehaus.org/browse/JRUBY

  looking forward for that

  thanks


tkt_uuid: 45f7d9e6b1fbf96c313d034bdbeacbe2d8d78570
type: Code_Defect
status: Closed
severity: Cosmetic
foundin: 37f295c310
private_contact: cac53f059e06402625535d363c84a4e2ab543e92
resolution: Overcome_By_Events
title: Logo image isn't displayed
comment:
  I am running a fossil server using the CGI method, as shown in the Fossil quick start.  When I connect to it over the web, the logo image isn't shown; instead, I get a missing image icon.  Some additional points:

    *  I've not changed the header HTML.
    *  If I point my browser at <url>/logo, I see the logo just fine.
    *  I get this behavior with both the default logo image and my own.

  <hr><i>anonymous added on 2009-10-04 16:34:17:</i><br>
  Some additional pieces of information:

    *  The server is a Linux machine.
    *  I'm browsing it from a Mac OS X 10.5.8 machine using Safari 4.0.3
    *  I get similar behavior from FireFox on a Win XP Home machine, except that it displays the alt= text instead of a broken image icon. 


  <hr><i>drh added on 2009-10-04 18:52:03:</i><br>
  I think this problem was fixed by check-in
  [631c52bc96367bd0f95aa29875a3907189f2a18a].  That check-in changes
  the default header.  For a repository that already exists, you might
  need to go into the "Admin/Header" screen and make the corresponding
  change to the header that is defined for your project.

  <hr><i>anonymous added on 2009-10-04 18:57:00:</i><br>
  Yes, that did it.  Thanks much!


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: 45fccdcd61f5650c944d09a36ffae8798c0bc0c2
type: Code_Defect
status: Open
severity: Critical
foundin: [6f42e76d80]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: If 'fossil update' brings in new files already present, it overwrites them silently
comment:
  Having some files, let's say in "mynewdir/file.odt" in the working copy, but not managed by fossil...

  If the user then runs "fossil update", and that update ADDS the "mynewdir/file.odt", fossil will overwrite the local file silently.


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: 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: 46f90ea2c1d2ecf1c5a5037bbf9b3b081d85c3f9
type: Documentation
status: Fixed
severity: Minor
foundin: c66ffba6da, e.g.
private_contact: b060c7801d9aa35179e5b9af3c79b6c2693068bc
resolution: Overcome_By_Events
title: Field not found error : don't forget to rebuild repos after upgrade!
comment:
  Looking through your files and clicking a version gets a file page,
  but the changes, leaves, descendants and ancestors don't show up.

  Instead, there's an sqlite3 error message about a non-existent field...
  or something.

  Oops.  The repository format changed!  Don't forget to<code> fossil rebuild </code> your repository (or<code> fossil all rebuild </code> your repositories.)

  <hr /><i>joerg added on 2011-03-25 01:06:22 UTC:</i><br />
  [c0c3d92340] added an explicit check for the schema version.


tkt_uuid: 472e68c0b23e152ea1efafc9f05f033788d13786
type: Code_Defect
status: Closed
severity: Severe
foundin: [528c581154] 2010-09-28 18:40:01 UTC
private_contact: 990fc58e2fbfe89bc7012d67ec7054419441d450
resolution: Withdrawn
title: fossil: unable to find the name of a repository database
comment:
  I'm getting an error while trying to open a fossil.

  <pre><b>buildbot@nikko:~/deep$</b> fossil clone http://fatman@dreamtrack.dnsalias.com/fossils/reu2.cgi ./reu2.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:         120          2          0          0
  Send:             625         25          0          0
  password for fatman: 
  Received:       11103        102          0          0
  Send:            4326        102          0          0
  Received:      247439        183         84          7
  Total network traffic: 3233 bytes sent, 65198 bytes received
  Rebuilding repository meta-data...
  91 (100%)...
  project-id: d6157f03e5e3841d78af989ebb366a76ff9dd7ee
  server-id:  58dff3acfea5e3dbaada844a657c9bd1f5cc186c
  admin-user: buildbot (password is "blah")
  <b>buildbot@nikko:~/deep$</b> ls
  _FOSSIL_  reu2.fossil
  <b>buildbot@nikko:~/deep$</b> fossil open ./reu2.fossil 
  <span class="disabled">fossil: unable to find the name of a repository database</span>

  If you have recently updated your fossil executable, you might
  need to run "fossil all rebuild" to bring the repository
  schemas up to date.
  buildbot@nikko:~/Reu2/deep$ fossil open
  </pre>

  It is morning, pre-coffee. I could be forgetting something.

  <hr /><i>anonymous claiming to be arichardson added on 2010-10-15 09:34:50:</i><br />
  Deleting _FOSSIL_ solved the problem. Why did this happen?


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-15 10:35:15:</i><br />
  Suppose I should close this. I forgot. Sorry for the noise!


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-15 10:36:14:</i><br />
  Gah. Apologies again for the noise. I didn't close it properly.


tkt_uuid: 474b0bd4f991dd60d7d9bb2daf2d9572bf1b80e3
type: Code_Defect
status: Fixed
severity: Minor
foundin: ffbfb4d57c
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
resolution: Fixed
title: /debug_tktnew creates a new ticket
comment:
  The source documentation states, that /debug_tktview doesn't create new tickets.

  Tests with my branched version [ffbfb4d57c] (based on [89d4d0b85b] and not changed concerning tickets) show, that this page creates new tickets.

  I couldn't find corresponding debug code in the sources and there are no references to debug_tktedit/debug_tktnew in the source tree. It looks like old, forgotten references in the header comment. If so, the additional page references and comments should be removed.


tkt_uuid: 47d4e76139fd63f2aeb6ff14dfe8512a0734d599
type: Code_Defect
status: Open
foundin: [cf178577ec]
resolution: Open
title: tree checksum does not match manifest after commit
comment:
  I ended up with a working directory where <tt>fossil changes</tt> says:
  <verbatim>
  Index: env-msvc.cmd
  ===================================================================
  --- env-msvc.cmd
  +++ env-msvc.cmd

  Index: include/file/file.hpp
  ===================================================================
  ........
  </verbatim>

  For me it means something like there are no changes, but I don't know why it gets listed in the diff. And trying to commit all files but 'env-msvc.cmd' (specifying the files manually as 'fossil commit' arguments), gave me this error AFTER typing the commit message, no matter how many times I try to commit:
  <verbatim>
  New_Version: 4e03710731bdf5f33437b72ebf4166066e2e2984
  fossil: tree checksum does not match manifest after commit: bec214c60868becba5c0e7b1e612d26e versus 6da255ae2109c7a801b897c43efba77c
  </verbatim>

  About how I reached that state...
  I had a tree of changes. Then I did: <tt>fossil merge --cherrypick XXX</tt>

  That brought a little change in <tt>env-msvc.cmd</tt>.

  I then did <tt>fossil revert<tt>.

  That said to have reverted all the changes I had.

  Then I did <tt>fossil undo</tt>.

  That brought the changes back. I did not want the change that got merged in the file for the cherrypick, so I did <tt>fossil revert env-msvc.cmd</tt>.

  And then it still appears in the diff without changes shown. As a clue, I'm on linux, and the env-msvc.cmd has CRLF line endings (it's mostly to be used on windows).

  <hr /><i>drh added on 2010-12-10 15:28:55:</i><br />
  That error message is part of the [/doc/trunk/www/selfcheck.wiki | Repository Integrity Self-Check]
  logic that runs prior to each commit.  This is one defense against bugs in the Fossil code corrupting
  your repository.  So it is an important error message.

  The logic involved has been updated in later releases of Fossil to provide more detail and more
  clues about what is going wrong.  There have also been some bug fixes.  Can you please try this
  again with the most recent release of Fossil.



  <hr /><i>anonymous claiming to be viric added on 2010-12-10 16:36:14:</i><br />
  Now I tried the same procedure with [0018d724b3], and I get a similar result (simply different hashes on the final commit complain):
  <verbatim>
  New_Version: b101a2c25089650d90f2099f381cd54926b83fd1
  fossil: working checkout does not match manifest after commit: f45029dffcf73ec2c5fd7f9288d7faa4 versus 735a3cee0f1cf8aa32f197de190eda5a
  </verbatim>

  <hr /><i>anonymous claiming to be viric added on 2010-12-10 17:02:42:</i><br />
  Just to ammend what I tried with [0018d724b3], let me note that I was trying with a different ckout version, and different changes in the working directory. But I did the same trick on the <tt>env-msvc.cmd</tt> file to get to the bad state.

  I mentioned the <tt>env-msvc.cmd</tt> had CRLF End-Of-Lines, but I was wrong. I checked, and it has usual unix LF EOLs. So nothing special about CRLF.

  I tried changing the file to CRLF, and then <tt>fossil diff</tt> showed a diff as with all lines changed. Changing it back to LF ends of line brought the same broken state of showing the file EDITED but 'diff' showing no difference. Even changing to <tt>fossil settings diff-tool diff -u</tt> showed a void diff for that file, but the file appeared in the diff.

  Can it be that the merge(cherrypick) + revert leave the hashes for the <em>original ckout</em> files in some strange state?

  <hr /><i>anonymous claiming to be viric added on 2010-12-10 17:04:20:</i><br />
  I could reproduce it simpler.

  I did "fossil merge --cherrypick XXX" (bringing the change to env-msvc.cmd) and then "fossil revert". And there it shows the broken state already, that cannot be recovered unless doing <tt>fossil checkout</tt>.

  <hr /><i>anonymous claiming to be viric added on 2010-12-10 17:24:24:</i><br />
  Oh. It's not that simple. The simple test I said just above brings in the "void diff" problem, but fossil allows committing it. Then it results in a checkin with a void diff.

  To bring in the checksum failure, looks like related to commiting OTHER files in the repository.


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: 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: 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: 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: 49bfa1ebfa8f877d04391f87758c7eea7f8dca06
type: Code_Defect
status: Open
severity: Minor
foundin: 07556099ab
private_contact: b5af7ea5b5ae0df1382b9a613c1e5f773ffd9e56
title: th1 command wiki string doesn;t return result
comment:
  th_main.c function wikiCmd does not return the result to the Th_interp.

  Missing something like Th_SetResult(interp, src, -1); after wiki_convert()


tkt_uuid: 49db5c3993bef2e8e6d0c921e19f070e5ec4b90f
type: Code_Defect
status: Fixed
severity: Important
foundin: [474850cff5] 2011-05-23 15:11:12
private_contact: 9d51a8b06966fd2ab0f28ccfb14200a7623c7eed
resolution: Fixed
title: windows-i18n: "fossil extras" does not see files with non-ascii chars in their name
comment:
  On Windows 7, 64-bits.

  After upgrading from fossil version [d8221b9863] 2011-05-12 14:56:52 UTC to [474850cff5] 2011-05-23 15:11:12, I noticed that a few files were reported as DELETED (using addremove), whereas they still existed on disk.

  The problem is fairly easy to duplicate with a fresh repository, but querying extras in a directory containing one file with non-ascii char (², subscript two), and one file with no such character.  The file with NO non-ascii char is listed, the other one isn't.

  Steps to reproduce:

  <pre>
  C:\data>dir
   Volume in drive C is OS
   Volume Serial Number is ADDE-9D00

   Directory of C:\data

  27-mei-2011  13:16    <DIR>          .
  27-mei-2011  13:16    <DIR>          ..
  10-dec-2009  12:02             1.615 ax²+bx+c=0.png
  08-apr-2010  17:42               760 bbc-logo-in-qr-code.png
                 2 File(s)          2.375 bytes
                 2 Dir(s)  301.619.884.032 bytes free

  C:\data>fossil init repo
  project-id: 99811bf16b717813968b01f962b55d18c86c2f52
  server-id:  bdccb49160204a9f8edd6ad3890d39801085e668
  admin-user: MCo (initial password is "82150c")

  C:\data>fossil open repo

  C:\data>fossil extras
  bbc-logo-in-qr-code.png

  C:\data>fossil addremove
  ADDED  bbc-logo-in-qr-code.png
  added 1 files, deleted 0 files
  </pre>


  What puzzles me somewhat, is that <code>extras</code> doesn't see the special filename, but once I've added the file manually, it doesn't get removed either:

  <pre>
  C:\data>fossil add ax²+bx+c=0.png
  ADDED  ax²+bx+c=0.png

  C:\data>fossil commit -m "test"
  New_Version: 0b5214ea3fff07515e5a498d7521edb05582727a

  C:\data>fossil addremove
  added 0 files, deleted 0 files
  </pre>


tkt_uuid: 4a9072bcc0485462bf0f7b1f10cec4054058751d
type: Feature_Request
status: Fixed
severity: Important
private_contact: c8c316996d793b566c79354bb356261af9302e44
resolution: Fixed
title: fossil server /directory
comment:
  Hi,
  I'm using "fossil server /diretory" to handle multiple repos. It would be nice if fossil is also able to serve repos in sub-directories.
  /path/repo1.fossil
       /sub/repo2.fossil

  With "fossil server /path" I would then be able to access both repos using
  http://server:8080/repo1 and http://server:8080/sub/repo2

  Regards,
  daniel

  <hr /><i>joerg added on 2011-03-25 01:46:06 UTC:</i><br />
  Implemented in [d04fa1e143]


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: 4af785ba3cd957d9d259a41cb10f40f841f92719
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: cdc4249268
private_contact: e05c4b7600be973bfc338fbb2709b47357780bc8
resolution: Fixed
title: User specified with --user-override doesn't show up in commit msg
comment:
  <pre>
  $ whoami
  foo
  $ f commit --user-override bar
  # Enter comments on this check-in.  Lines beginning with # are ignored.
  # The check-in comment follows wiki formatting rules.
  #
  # user: foo
  # tags: trunk
  </pre>
  'bar' correctly shows up in timeline.  The only problem is cosmetic, shows up while editing the checkin message.

  <hr /><i>dmitry added on 2011-09-12 19:45:57 UTC:</i><br />
  Fixed in [7c82dbf546] .


tkt_uuid: 4b40f574494b20fe2ce1432fab47ca89cc354674
type: Code_Defect
status: Fixed
subsystem: one
priority: Immediate
severity: Minor
foundin: f46fe42d6d
private_contact: 6b3f5a8f6def0ef153f7a89fb5a1b0fa01d7509e
resolution: Fixed
title: Edit checkin comment via Web do garble references into the repos.
comment:
  First do the following:
  <verbatim>
  mkdir test1
  cd test1
  uuid=`fossil new repos| awk '/baseline:/{print $2}'`
  fossil open repos
  echo "Baseline is $uuid" > txt
  fossil add txt
  fossil com --nosign -m "Commit text refer to [$uuid]"
  fossil ui
  </verbatim>

  Now in the browser select the Timeline and click on the UUID of the leave. Now you should be into the VInfo page of the baseline. In the <b><tt>Comment:</tt></b> field you see the clickable reference. Now if you hit the <tt>edit</tt> in the <b><tt>Commands:</tt></b> field the VEdit page will be load.

  Please have a look into the <b><tt>Comment:</tt></b> textbox down the page. The previous comment is inserted to be edit by me, but the closing <tt>]</tt> of the UUID in the comment text is lacking.

  If I do not append the lacking <tt>]</tt> the reference will not work correctly anymore if I apply my changes.

  <hr><i>drh added on 2008-07-24 15:04:00:</i><br>
  Problem fixed by check-in [89de100a2d]


tkt_uuid: 4b72e10dca387049db24d2b6d4cc49282bcc9ce9
type: Code_Defect
status: Fixed
subsystem: one
priority: Immediate
severity: Critical
foundin: 141c31792b
private_contact: c.hintze@gmx.net
resolution: Fixed
title: Pull chain does not work: MASTER -> SLAVE -> LOCAL
comment:
  This incident was already mentioned on the mailing list. But I thought it is better to file a ticket to not get it lost.

  The problem is, I cloned and pulled from <tt>fossil-scm.org</tt> to my local central repository and from there into another local one. This is the same chain as if I had a <tt>repos.master</tt> clone to <tt>repos.slave</tt> clone to <tt>repos.local</tt>. So the changes should flow from the MASTER over the SLAVE to LOCAL. But the changes does not reach LOCAL. I have written a small scenario to reproduce that bug. You may copy/paste it into a script and execute it:
  <pre>
  # Create the testenv
  mkdir -p test1/dir
  cd test1/dir
  #
  # Create the MASTER DB
  fossil new ../myrepos.master
  fossil open ../myrepos.master 
  #
  # Add file 'txt'
  echo "# line 1" > txt
  fossil add txt
  fossil commit -m "initial" --nosign
  fossil close
  rm *
  #
  # MASTER is connectable via port 8080
  fossil server -P 8080 ../myrepos.master &
  pid_MASTER=$!
  #
  # Clone the SLAVE DB
  fossil clone http://localhost:8080 ../myrepos.slave
  #
  # SLAVE is reachable via port 8081
  fossil server -P 8081 ../myrepos.slave &
  pid_SLAVE=$!
  #
  # Clone the LOCAL DB
  fossil clone http://localhost:8081 ../myrepos.local
  #
  # Open the MASTER and modify the file 'txt'
  fossil open ../myrepos.master 
  echo "# line 2" >> txt
  fossil commit -m "change 1" --nosign
  echo "### Content in MASTER"; cat txt
  ### Content in MASTER
  # line 1
  # line 2
  fossil close
  rm *
  #
  # Pull all changes from MASTER --> SLAVE
  fossil pull -R ../myrepos.slave
  #
  # Open SLAVE and look at the file 'txt'
  fossil open ../myrepos.slave 
  echo "### Content in SLAVE"; cat txt
  ### Content in SLAVE
  # line 1
  # line 2
  fossil close 
  rm *
  #
  # Pull all changes from SLAVE --> LOCAL
  fossil pull -R ../myrepos.local 
  #
  # Open LOCAL and look at the file 'txt'
  fossil open ../myrepos.local 
  echo "### Content in LOCAL"; cat txt
  ### Content in LOCAL
  # line 1
  #
  # kill the server MASTER and SLAVE
  kill $pid_MASTER $pid_SLAVE
  </pre>

  As you can see the file <tt>txt</tt> will contain two lines in both the MASTER and the SLAVE but it will only contain one line in LOCAL.

  <hr><i>drh added on 2008-07-23 21:00:01:</i><br>
  Fixed by check-in [1f8d2501b0].  Prior to this fix, work-around by running
  rebuild on the server repository that is not syncing correctly.


tkt_uuid: 4bf3cca894e603cec1bee9826bc4ef588b7a5318
type: Build_Problem
status: Closed
subsystem: one
priority: Low
severity: Minor
foundin: 20080917
private_contact: 4fdd2aed6e03ee0b29235a02eadd1e1591ce3afa
resolution: Fixed
title: TODO: Build flags for Solaris
comment:
  This is mostly a reminder to myself, as i'm not at a machine where i can commit the change:

  For the main Makefile:

  For OpenSolaris builds we need -lsocket. For Solaris 10 (maybe 9? what about 8?) we need -lsocket -lnsl. It probably can't hurt to add -lnsl for OpenSolaris, but i haven't got one up and running to try it out on.

  <hr><i>stephan added on 2008-09-18 11:22:31:</i><br>
  Fixed in commit #7dddab2fbe365927fbb6af30cc6edeb3a2204420.

  <hr><i>stephan added on 2008-09-18 11:51:37:</i><br>
  Corrected my confusion of the State=Fixed and Resolution=Fixed fields.


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: 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: 4c85bb0c27c94bb9b3b2db96d2edd141fa22e1f3
type: Feature_Request
status: Closed
severity: Important
private_contact: f90bcb24dfca980c917cc6e29c04b9cd06605ba9
resolution: Withdrawn
title: Will merge creole into trunk unless ...
comment:
  I will merge the creole parser branch into the trunk in 2 days unless there are any objection or unless drh vetoes the merge.

  <hr><i>drh added on 2009-09-26 12:19:04:</i><br>
  Please keep the creole parser on a branch for now.

  <hr><i>robert added on 2009-09-26 14:23:18:</i><br>
  Will do.


tkt_uuid: 4c8803b3b16812d64f4327bec87bafac07d68537
type: Code_Defect
status: Closed
severity: Minor
foundin: 713b8be852 2009-08-28
private_contact: 21c0f447532234366dbec18d60d747db150b5faa
resolution: External_Bug
title: Have to edit a ticket twice once for text another for drop down box.
comment:
  I edit text in the field that I'm currently writing to you in and change my assigned to drop down box but only the text get added to the ticket and not the drop down box value.  I have to edit the ticket after that to change the assigned to drop down box and apply the changes for the assigned to drop down settings stick.  The drop down is a new field that I have added but I used the template to create the new field.  The assigned to helps pass the tickets from one developer to the next.  Here is a copy of it... The names have been changed to protect the innocent.


  <hr>
  Below is my create table
  <hr>

  <verbatim>
  CREATE TABLE ticket(
    -- Do not change any column that begins with tkt_
    tkt_id INTEGER PRIMARY KEY,
    tkt_uuid TEXT UNIQUE,
    tkt_mtime DATE,
    -- Add as many field as required below this line
    assigned_To TEXT,
    type TEXT,
    status TEXT,
    subsystem TEXT,
    priority TEXT,
    severity TEXT,
    foundin TEXT,
    private_contact TEXT,
    resolution TEXT,
    title TEXT,
    comment TEXT
  );
  </verbatim>


  <hr>
  Below is my TH1 Script to initialize variable
  <hr>
  <verbatim>
  set type_choices {
     Need_To_Discuss
     Question
     Code_Defect
     Build_Problem
     Documentation
     Feature_Request
     Incident
  }
  set assigned_To_choices {
    Joe
    Mama
    Both
  }
  set priority_choices {
    Immediate
    High
    Medium
    Low
    Zero
  }
  set severity_choices {
    Critical
    Severe
    Important
    Minor
    Cosmetic
  }
  set resolution_choices {
    Open
    Fixed
    Rejected
    Unable_To_Reproduce
    Works_As_Designed
    External_Bug
    Not_A_Bug
    Duplicate
    Overcome_By_Events
    Drive_By_Patch
  }
  set status_choices {
    Open
    Verified
    Review
    Deferred
    Fixed
    Tested
    Closed
  }
  set subsystem_choices {
  }
  </verbatim>

  <hr>
  Below is my new ticket page
  <hr>

  <verbatim>
  <th1>
    if {[info exists submit]} {
       set status Open
       submit_ticket
    }
  </th1>
  <h1 align="center">Enter A New Bug Report</h1>
  <table cellpadding="5">
  <tr>
  <td colspan="2">
  Enter a one-line summary of the problem:<br>
  <input type="text" name="title" size="60" value="$<title>">
  </td>
  </tr>

  <tr>
  <td align="right">Type:
  <th1>combobox type $type_choices 1</th1>
  </td>
  <td>What type of ticket is this?</td>
  </tr>

  <tr>
  <td align="right">Assign To:
  <th1>combobox type $assigned_To_choices 1</th1>
  </td>
  <td>Who is this ticket assigned to?</td>
  </tr>

  <tr>
  <td align="right">File:
  <input type="text" name="foundin" size="20" value="$<foundin>">
  </td>
  <td>In what file did you observe the problem?</td>
  </tr>

  <tr>
  <td align="right">Severity:
  <th1>combobox severity $severity_choices 1</th1>
  </td>
  <td>How debilitating is the problem?  How badly does the problem
  affect the operation of the product?</td>
  </tr>


  <tr>
  <td colspan="2">
  Enter a detailed description of the problem.
  For code defects, be sure to provide details on exactly how
  the problem can be reproduced.  Provide as much detail as
  possible.
  <br>
  <th1>set nline [linecount $comment 50 10]</th1>
  <textarea name="comment" cols="80" rows="$nline"
   wrap="virtual" class="wikiedit">$<comment></textarea><br>
  <input type="submit" name="preview" value="Preview">
  </tr>

  <th1>enable_output [info exists preview]</th1>
  <tr><td colspan="2">
  Description Preview:<br><hr>
  <th1>wiki $comment</th1>
  <hr>
  </td></tr>
  <th1>enable_output 1</th1>

  <tr>
  <td align="right">
  <input type="submit" name="submit" value="Submit">
  </td>
  <td>After filling in the information above, press this button to create
  the new ticket</td>
  </tr>
  <tr>
  <td align="right">
  <input type="submit" name="cancel" value="Cancel">
  </td>
  <td>Abandon and forget this bug report</td>
  </tr>
  </table>
  </verbatim>

  <hr><i>drh added on 2009-09-19 14:22:11:</i><br>
  The line in your customized new-ticket script that says:

  <verbatim>
  <th1>combobox type $assigned_To_choices 1</th1>
  </verbatim>

  Should say:

  <verbatim>
  <th1>combobox assigned_To $assigned_To_choices 1</th1>
  </verbatim>


tkt_uuid: 4cec2370f1910f78256f80ac6a7e4461f047056c
type: Code_Defect
status: Open
severity: Cosmetic
foundin: b968f023a88a6
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Open
title: Typo?
comment:
  <pre>
  --- src/update.c
  +++ src/update.c
  @@ -577,11 +577,11 @@
       zFile = db_column_text(&q, 0);
       zFull = mprintf("%/%/", g.zLocalRoot, zFile);
       errCode = historical_version_of_file(zRevision, zFile, &record, &isExe,2);
       if( errCode==2 ){
         if( db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFile)==0 ){
  -        fossil_print("UNMANAGE: %s\n", zFile);
  +        fossil_print("UNMANAGED: %s\n", zFile);
         }else{
           undo_save(zFile);
           file_delete(zFull);
           fossil_print("DELETE: %s\n", zFile);
         }

  </pre>

  <hr /><i>drh added on 2011-08-11 01:24:21 UTC:</i><br />
  I don't know if this is wrong or not.  What it is saying is "I am going to stop
  managing this file now."   Not "this file has not been managed previously".
  So I think "UNMANAGE:" without the final D is right.


  <hr /><i>bharder added on 2011-08-11 06:14:40 UTC:</i><br />
  The scenario when I encountered this was:
  I had temporarily nuked part of my source tree; I knew I'd be able to recover it, so <tt>rm -fr ./fu/bar/subdir</tt>. Now, when I tried restoring it, what I did was <tt>fossil chan | grep MISSING | awk '{print "fossil revert "$2}' | sh</tt> (roughly). The missing files were displayed as <tt>fu/bar/subdir/file.a</tt>, for example, but I wasn't in the toplevel dir when trying to restore them; lets say I was in ./fu. I'd be trying to restore <tt>./fu/fu/bar/subdir/file.a</tt>. I was initially shocked when I saw lines of <tt>UNMANAGE: ...</tt>. It looked to me like it was a verb.

  I'm not sure my "D" patch wouldn't be interpretted similarly if the error said "UNMANAGED: " ("oh my, these files are now unmanaged!"), but when I wrote this ticket, it seemed like a better idea. I think there may be room for improvement over both cases, upon reflection. Are we limiting ourselves to a single-word description?

  I'll leave this open for now, in case there are more comments. This seems like a really, really small deal on one hand, but I think may be able to improve the user-experience, which is always a good thing.

  <hr /><i>bharder added on 2011-08-11 06:22:54 UTC:</i><br />
  Rereading your comment drh, I think that the way I'm interpreting "manage" is "this was part of the repo; I'm now ceasing to recognize it as such: I'm unmanaging this file.", which isn't what's really happening. "Manage" is a loaded word; I'd almost rather see ENOTMANAGED (to borrow C inspired error codes). In fact, for the case I described, ENOSUCHFILE would have been more appropriate.


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: 4de876322f066d70cfe52b2cc0f8d5e941a13ad7
type: Code_Defect
status: Fixed
severity: Minor
foundin: 0eb08b860c
private_contact: d66ecbed41cfc11708f85c2d7a607eb4c13c38e6
resolution: Fixed
title: fossil extras ignores dot files
comment:
  When issuing 'fossil extras' in a working copy that contains dot files like .htaccess fossil doesn't notice them. Should it show them by default or possibly add --dotfiles as an option like add has?

  <hr><i>drh added on 2009-09-19 15:33:05:</i><br>
  Check-in [a2749215b71b297780c2b787a938eae82edf32b7] adds the --dotfiles
  option to the "extra" and "clean" commands.


tkt_uuid: 4df5f38f1e564d2970c269bf5ea1d2aec5173dc9
type: Feature_Request
status: Review
foundin: 1.18
resolution: Rejected
title: Troubles merging a file delete with a file change
comment:
  I have a branch where I have modified <code>a.cpp</code>. If in trunk someone deleted that file, and I run <code>fossil update trunk</code>, fossil will silently merge the branch modifications and the trunk delete silently into a file delete.

  Fossil should report this as a conflict.

  <hr /><i>drh added on 2011-08-30 14:22:37 UTC:</i><br />
  Whether or not this should be reported as a conflict is a matter of
  opinion.  Technically, whenever two people make any changes to a file
  in parallel, the resulting merge is a conflict.  We <i>choose</i> not
  to report conflicts that can be cleanly joined together.  For example,
  we choose not to report conflicts when the two edits are in different
  parts of the same file.  Just because two edits happen to merge together
  cleanly and without overlap does not mean that the resulting code will
  still run, after all.

  Even edits in separate files are potentially a conflict, since while both
  edits might work fine separately, their combination might make the software
  fail.  So, technically, any parallel change to the project is a conflict.
  But we choose not to make a big deal out of most of these conflicts since
  most of the time they are benign.

  The tricky part in a merge algorithm is to identify and announce conflicts
  that are likely to require programmer intervention and resolution, versus
  conflicts that the software is probably able to deal with itself. You don't
  want to announce too many conflicts, because - as with the boy who cried
  "Wolf!" - users quickly develop conflict-fatigue and end up ignoring real
  problems.

  In the case of an edit/delete conflict, the software currently thinks 
  it can deal with that itself.  If you want to disagree, then give us
  some specific cases where that policy causes issues and argue your case.
  In the absence of a more compelling rationale, I don't think this complaint
  warrants any changes to the current merge logic.


tkt_uuid: 4e2afbb41cfcf9205d7025cab0cbd3b6f9e51428
type: Code_Defect
status: Closed
severity: Important
foundin: 1.24
private_contact: 8e36f66e02d47fe3335fde85004118e39e0703fd
resolution: Unable_To_Reproduce
title: fossil stash save can lose file modifications
comment:
  I did "fossil stash save <file1> <file2>"  file1 was reverted and there was an issue with file2 (file was missing and needed to be removed from fossil control).  However, at this point, the modified file1 is gone and all that is left is the original file1 from the archive.

  <hr /><i>drh added on 2012-11-05 21:18:30 UTC:</i><br />
  Could not reproduce the problem from the sketchy description.  Every scenario
  I could think of always preserved the edited content of file1.


tkt_uuid: 4e8410bfd697c846259595f3f58a587721331ce3
type: Feature_Request
status: Deferred
severity: Minor
private_contact: 02d14714de84a7dab506bb77b9dd95e78f1c1491
resolution: Open
title: Add something similar to cvsignore feature
comment:
  It would be nice to have such feature as cvsignore one. I know that it is frequently asked question, but found no such feature request. Also, it looks like fossil will silently ignore any file or directory which name starts from ".".

  <hr><i>kkinnell added on 2008-12-09 17:03:54:</i><br>
  If you are using a shell that follows the unix conventions, dot files&#8212;files that start with a '.' character&#8212;will be ignored unless they are explicitly included.

  As an example, if you have files named '.file' and '.faxes', and want to <code>add</code> them using <i>globbing</i> you'd type: <verbatim>    fossil add .f*</verbatim> To get all of your dot files you'd need to be a little trickier, because '.' and '..' are directory names.  In <b>bash</b> you'd use <verbatim>    fossil add .[^.]*</verbatim>

  The point is that the dot files are being intercepted by the shell on non-Windows systems, and may be being intercepted on Windows systems&#8212;dot files are a bit problematic and you have to be careful about them.

  IMHO:<br>
  The <code>CVSIGNORE</code> isn't actually that useful if you are not creating a new repository from a clean source tree, or not using a recursive <code>add</code>.  Until the recursive add fix (see [./tktview?name=e02ffabcda | e02ffabcda]) there wasn't any way to get <b>fossil</b> to add files that were not explicitly requested.  You could still get unwanted files by injudicious file globbing, but that wasn't <b>fossil</b>'s fault.  Personally, I probably won't use recursive add on an 'as is' source tree.  I'll clean it up until it only contains the files I want, then <code>add</code> them, and maybe then copy the, er, "unclean" source tree back.

  <hr><i>anonymous claiming to be Ilia Frenkel added on 2008-12-09 23:17:26:</i><br>
  After the second thought I do agree with you. It is not so urgent feature.
  If you keep your source tree clean you should be OK without it.

  <hr><i>anonymous claiming to be RBerteig added on 2010-03-15 20:32:24:</i><br>
  As a long time CVS user, I find that most of my .cvsignore entries are there to keep CVS quiet about build products and various intermediate files that come about from testing (gcov data, and so forth). It makes it easier to tell at a glance that all the important files are accounted for.

  Given the fossil extra and fossil clean features, I've already felt the lack of some way to inform fossil that I know some files exist but that they are not "extra" and should not be removed by "clean". Without that, I'm really tempted to patch the fossil clean out of my copy.


tkt_uuid: 4ee4aa5a30733a53b7a8f09295778165dc6a1669
type: Code_Defect
status: Fixed
severity: Important
foundin: 20b04536d0c9ab0932e719d2a2475dd22c1354d7
private_contact: 52ad95072b2b60430c1f116b5f76287260a79adb
resolution: Fixed
title: import does not work with file- or directorynames containing whitespace
comment:
  The (awesome!) git import will not cope with file/directory names containing whitespace: for a file only the part before the first space will show. For a directory, a file with a name of the first part of the directory name before whitespace will be created and all files beneath the dir will not show up.

  Minimal test case:

  <verbatim>
  # init git repo

  $ mkdir gitrepo
  $ cd gitrepo/
  $ git init
  Initialized empty Git repository in /home/dgruber/tmp/gitrepo/.git/

  # add a file with name containing whitespace

  $ echo 1 > "file with whitespace.txt"
  $ git add file\ with\ whitespace.txt 
  $ git commit -m "add file"
  [master (root-commit) 1cc529c] add file
   1 files changed, 1 insertions(+), 0 deletions(-)
   create mode 100644 file with whitespace.txt

  # add a file in a dir with dirname containing whitespace

  $ mkdir "dir with whitespace"
  $ echo 2 > dir\ with\ whitespace/test.txt
  $ git add dir\ with\ whitespace/
  $ git commit -m "add file in dir with space"
  [master aa8b906] add file in dir with space
   1 files changed, 1 insertions(+), 0 deletions(-)
   create mode 100644 dir with space/test.txt

  # export to fossil

  $ ls -l
  total 8
  drwxr-xr-x 2 dgruber dgruber 4096 Dec 10 19:47 dir with space
  -rw-r--r-- 1 dgruber dgruber    2 Dec 10 19:24 file with whitespace.txt
  $ git fast-export --all | fossil import --git ../gitrepo.fossil
  Rebuilding repository meta-data...
    100.0% complete...
  Vacuuming... ok
  project-id: 7e7e2a90dcdeabeab0d308296aafad2c2affa22e
  server-id:  aba6f411ae5a0919194c1702d6463f679c9f35a9
  admin-user: dgruber (password is "0b315a")

  # open fossil repo

  $ cd ..
  $ mkdir fossilrepo
  $ cd fossilrepo/
  $ fossil open ../gitrepo.fossil 
  $ ls -l
  total 16
  -rw-r--r-- 1 dgruber dgruber    2 Dec 10 19:49 dir
  -rw-r--r-- 1 dgruber dgruber    2 Dec 10 19:49 file
  -rw-r--r-- 1 dgruber dgruber 7168 Dec 10 19:49 _FOSSIL_
  $ fossil timeline
  === 2010-12-10 ===
  19:47:58 [42ca8b1dbf] *CURRENT* add file in dir with space (user:
           dgruber@ed.ac.uk tags: master)
  19:24:21 [0f24c7282a] add file (user: dgruber@ed.ac.uk tags: master, trunk)
  </verbatim>

  This is on Debian squeeze i386, latest fossil [20b04536d0c9ab0932e719d2a2475dd22c1354d7] built form source.

  Cheers,
  Daniel

  <hr /><i>anonymous added on 2010-12-10 20:10:25:</i><br />
  Sorry, I forgot:

  <verbatim>
  $ git --version
  git version 1.7.2.3
  </verbatim>

  Cheers,
  Daniel

  <hr /><i>drh added on 2010-12-11 00:31:03:</i><br />
  If you ever copy or rename a git pathname contains a space, then the 
  git-fast-import transfer format will not be able to deal with that case.
  This is a limitation in the design of git-fast-import.

  But as long as you do not copy or rename files with spaces in their
  pathnames, git-fast-import and also Fossil should now be able to deal with it,
  at least as of check-in [4ee4aa5a30733a5].


tkt_uuid: 4f01957dbce0b0f6dd590d030407dd985bae10b2
type: Feature_Request
status: Closed
severity: Minor
foundin: eb1db585a5
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Not_A_Bug
title: remote admin rebuild
comment:
  it would be nice to be able to invoke a fossil rebuild remotely from the admin screen on the ui.  this happened to me when i downloaded the latest version of fossil, started the fossil server, and forgot to do the rebuild.  later, remotely,  the ui queries were all borked.  i wouldn't even ask for the feature except that not all upgrades require a rebuild, so its not part of my upgrade routine.

  <hr><i>drh added on 2009-09-15 11:30:29:</i><br>
  There is a "Rebuild" button on the "Shunned" screen of the "Admin" menu.


tkt_uuid: 4f43f7ff92ae02ae3b9228c1fb03fb9777cd8bb2
type: Code_Defect
status: Fixed
severity: Minor
foundin: 2010.12.21.135605
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Fixed
title: test errors
comment:
  <pre>
  $ fossil co 09fc7be1f0
  $ fossil clean --dotfiles --force
  $ fossil status # clean
  $ make
  $ make test | egrep -B1 -i '(fail|expected|got)'
  /home/barak/src/fossil/fossil/fossil test-3 t1 t3 t2 a32
  test merge1-2.1 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3 t1 t2 t3 a23
  test merge1-2.2 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3 t1 t3 t2 a32
  test merge1-4.1 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3 t1 t2 t3 a23
  test merge1-4.2 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3 t1 t2 t3 a23
  test merge1-7.1 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3 t1 t2 t3 a23
  test merge1-7.2 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b = 3 4 5c < 6 7 8 9]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b {======= original content above; conflict below =============} 3 4 5c {<: conflict last >>>>>>>>>>>>>>>>>>} 6 7 8 9]
  test merge3-3 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b 6b = 3 4 5c 6 < 7 8 9]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b 6b {======= original content above; conflict below =============} 3 4 5c 6 {<: conflict last >>>>>>>>>>>>>>>>>>} 7 8 9]
  test merge3-4 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b 6b 7 = 3 4 5c 6c 7c < 8 9]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b 6b 7 {======= original content above; conflict below =============} 3 4 5c 6c 7c {<: conflict last >>>>>>>>>>>>>>>>>>} 8 9]
  test merge3-5 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b 6b 7 = 3 4 5c 6c 7c < 8b 9]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b 6b 7 {======= original content above; conflict below =============} 3 4 5c 6c 7c {<: conflict last >>>>>>>>>>>>>>>>>>} 8b 9]
  test merge3-6 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b 6b 7 8b = 3 4 5c 6c 7c 8c < 9]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b 6b 7 8b {======= original content above; conflict below =============} 3 4 5c 6c 7c 8c {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-7 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b 5b 6b 7 8b 9b = 3 4 5c 6c 7c 8c 9 <]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b 5b 6b 7 8b 9b {======= original content above; conflict below =============} 3 4 5c 6c 7c 8c 9 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-8 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 > 3b 4b = 3b 4c < 5 6c 7c 8b 9b]
         Got [1 2 {>: original content first <<<<<<<} 3b 4b {======= original content above; conflict below =============} 3b 4c {<: conflict last >>>>>>>>>>>>>>>>>>} 5 6c 7c 8b 9b]
  test merge3-11 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 6 7 8 = 2 3 4 < 9]
         Got [1 {>: original content first <<<<<<<} 6 7 8 {======= original content above; conflict below =============} 2 3 4 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-24 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 7 8 = 2 3 < 9]
         Got [1 {>: original content first <<<<<<<} 7 8 {======= original content above; conflict below =============} 2 3 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-25 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2 3 4 = 6 7 8 < 9]
         Got [1 {>: original content first <<<<<<<} 2 3 4 {======= original content above; conflict below =============} 6 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-34 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2 3 = 7 8 < 9]
         Got [1 {>: original content first <<<<<<<} 2 3 {======= original content above; conflict below =============} 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-35 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 6 7 8 = 2 3 4 <]
         Got [{>: original content first <<<<<<<} 6 7 8 {======= original content above; conflict below =============} 2 3 4 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-44 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 7 8 = 2 3 <]
         Got [{>: original content first <<<<<<<} 7 8 {======= original content above; conflict below =============} 2 3 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-45 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2 3 4 = 6 7 8 <]
         Got [{>: original content first <<<<<<<} 2 3 4 {======= original content above; conflict below =============} 6 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-54 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2 3 = 7 8 <]
         Got [{>: original content first <<<<<<<} 2 3 {======= original content above; conflict below =============} 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-55 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2b 3b 4b 5b 6 7 8 = 2 3 4 < 9]
         Got [1 {>: original content first <<<<<<<} 2b 3b 4b 5b 6 7 8 {======= original content above; conflict below =============} 2 3 4 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-64 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2b 3b 4b 5b 6b 7 8 = 2 3 < 9]
         Got [1 {>: original content first <<<<<<<} 2b 3b 4b 5b 6b 7 8 {======= original content above; conflict below =============} 2 3 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-65 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2 3 4 = 2b 3b 4b 5b 6 7 8 < 9]
         Got [1 {>: original content first <<<<<<<} 2 3 4 {======= original content above; conflict below =============} 2b 3b 4b 5b 6 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-74 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 > 2 3 = 2b 3b 4b 5b 6b 7 8 < 9]
         Got [1 {>: original content first <<<<<<<} 2 3 {======= original content above; conflict below =============} 2b 3b 4b 5b 6b 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-75 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2b 3b 4b 5b 6 7 8 = 2 3 4 <]
         Got [{>: original content first <<<<<<<} 2b 3b 4b 5b 6 7 8 {======= original content above; conflict below =============} 2 3 4 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-84 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2b 3b 4b 5b 6b 7 8 = 2 3 <]
         Got [{>: original content first <<<<<<<} 2b 3b 4b 5b 6b 7 8 {======= original content above; conflict below =============} 2 3 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-85 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2 3 4 = 2b 3b 4b 5b 6 7 8 <]
         Got [{>: original content first <<<<<<<} 2 3 4 {======= original content above; conflict below =============} 2b 3b 4b 5b 6 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-94 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [> 2 3 = 2b 3b 4b 5b 6b 7 8 <]
         Got [{>: original content first <<<<<<<} 2 3 {======= original content above; conflict below =============} 2b 3b 4b 5b 6b 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-95 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 3 4 5 7 8 > 9b = 9b a b c d e <]
         Got [1 2 3 4 5 7 8 {>: original content first <<<<<<<} 9b {======= original content above; conflict below =============} 9b a b c d e {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-103 FAILED!
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t2 t3 t4
    Expected [1 2 3 4 5 7 8 > 9b a b c d e = 9b <]
         Got [1 2 3 4 5 7 8 {>: original content first <<<<<<<} 9b a b c d e {======= original content above; conflict below =============} 9b {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-104 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t3 t2 t5
    Expected [1 > 2b 3b 4b 5 6b 7b 8b = 2 3 4c 5c 6c 7 8 < 9]
         Got [1 {>: original content first <<<<<<<} 2b 3b 4b 5 6b 7b 8b {======= original content above; conflict below =============} 2 3 4c 5c 6c 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>} 9]
  test merge3-1000 FAILED!
  --
  /home/barak/src/fossil/fossil/fossil test-3-way-merge t1 t3 t2 t5
    Expected [> 2b 3b 4b 5 6b 7b 8b = 2 3 4c 5c 6c 7 8 <]
         Got [{>: original content first <<<<<<<} 2b 3b 4b 5 6b 7b 8b {======= original content above; conflict below =============} 2 3 4c 5c 6c 7 8 {<: conflict last >>>>>>>>>>>>>>>>>>}]
  test merge3-1002 FAILED!
  couldn't execute "sqlite3": no such file or directory
      while executing
  "exec sqlite3 m5.fossil <$testdir/${testfile}_repo.sql"
      (file "/home/barak/src/fossil/fossil/test/merge5.test" line 43)
      invoked from within
  "source $testdir/$testfile.test"
      ("foreach" body line 8)
      invoked from within
  "foreach testfile $argv {
    set dir [file root [file tail $testfile]]
    file delete -force $dir
    file mkdir $dir
    set origwd [pwd]
    cd $dir
    protOu..."
      (file "test/tester.tcl" line 202)
  make: *** [test] Error 1
  </pre>

  <hr /><i>anonymous added on 2010-12-21 20:14:31:</i><br />
  The reference output hasn't been kept in sync with the format changes. Since you are looking at this, could you provide a patch?

  <hr /><i>anonymous added on 2010-12-21 22:11:56:</i><br />
  I did not actually look into the issue.  I was just building the latest "official" release for Debian, and the build scripts do a "make test", and that failed.  So I reported it.  I have not examined the problem at all.


tkt_uuid: 4f6b211d6b2fa9eb632e031645075904c2bb561c
type: Code_Defect
status: Closed
severity: Important
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Not_A_Bug
title: some new wikis not visible as wiki
comment:
  It seems that since check in 	[67f44bb301] or around, new wikipages aren't show as wiki but only visible as artifacts.
  In my case, I can see content of(www/reference.wiki) by:
  http://www.fossil-scm.org/fossil/artifact/3818

  but when I check the wiki link,  I see only empty page:
  http://www.fossil-scm.org/fossil/wiki?name=Reference

  older wikis are still visible:
  http://www.fossil-scm.org/fossil/wiki?name=Documentation+outline

  It behaves the same way on fossil site with "Fossil version [9fd8009007] 2008-11-09 22:43:04" or on my local clone of fossil repository with "Fossil version [c66ffba6da] 2008-11-10 19:54:53"

  <hr><i>drh added on 2008-11-15 12:54:41:</i><br>
  I think you are confusing wiki with
  [/doc/tip/www/embeddeddoc.wiki | embedded documentation].
  Both use the same markup, but embedded documentation is part
  of baselines that are checked in and embedded documentation uses
  different URLs.


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: 4fe7de44f664077a5247a82059273b0acb91b13c
type: Feature_Request
status: Open
severity: Cosmetic
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
title: Adding a mask for login cookie...
comment:
  I just read the checkin for [84e755e2139ca9cc2396c2cfa950f2ccffae1a61] and that seems rather lax to me. A /16 network is pretty big. A /24 would be more reasonable (much more standard for poorly configured firewalls to change IP addresses based on a /24), however most firewalls use a hash of internal_src_ip so the external_src_ip is always consistent. In either case, changing ipPrefix() to use a tunable for the mask would be the ideal.


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: 500a94b9e57eb1ebd6e03d144ad59aaf347f0b99
type: Feature_Request
status: Review
foundin: all
private_contact: c76260317d907e593238775e171317aff2baec12
resolution: Open
title: link checkins and relevant tickets
comment:
  when a checkin comment features a link to a bug, append a comment to that bug with a link to either that checkin, or the diff of that checkin to previous version. include the checkin comment in the bug comment as well.

  <hr><i>kkinnell added on 2008-12-27 18:02:40:</i><br>
  This may have been implemented by check-in [426a3ba49ebb066c192e29e62b07a65854e840c7] (in which case I missed something, but it may just be the developer discipline mentioned below.)

  If this request hasn't been implemented...

  I see the convenience of this, but it's more a matter of developer discipline than anything, isn't it?  I don't think you can actually remove the need for review of the tickets affected by a commit.

  Suppose you make a change that affects two tickets, then back it out and commit a change that affects only one of them?  At that point, you'd have a ticket with an "affected by commit" comment and a second "affected by commit" comment, with no effective change in the code.  You surely would <em>not</em> want to back out any other changes to the baseline, so it wouldn't by very safe to back out ticket wiki changes&#8212;you could be "backing out" to a new leaf, instead of the baseline you had at the first commit.

  It would be far better to document the "badness" of the original change in the code than to hide it in a commit comment (which may not even mention it) I would think.  This sort of thing may happen more than one would guess, especially if the code is under heavy development.

  If this feature hasn't been implemented, it would have to be a toggle.  I think it would be better to make this a Th1 "plugin" and share it around.

  <hr><i>anonymous added on 2009-01-09 08:15:41:</i><br>
  the checkin you mention seems unrelated to me.

  we use this feature in svn heavily at work, in fact ticket numbers are required for checkins, and its very convenient. the idea is a history of the files changed to fix a particular issue. even if you have to back out the change you can see the activity in the ticket and know its related.

  a plugin would be fine too. im not going to tell you how to implement something, its just a suggestion.


tkt_uuid: 50375360502966a434b6aa1d1c915e515389288a
type: Feature_Request
status: Fixed
severity: Severe
foundin: bc857ecd92
private_contact: 6984f5ff2d3f66a87d3c6ddcf777c37b54e478f0
resolution: Fixed
title: Confusing conflict markers
comment:
  It would be nice if the conflict markers in merge results looked like:

  <verbatim>
  >>>>>>>> BEGIN MERGE CONFLICT <<<<<<<<
  <my version>
  ======================================
  <your version>
  >>>>>>>>> END MERGE CONFLICT <<<<<<<<<
  </verbatim>

  Sometimes it's not clear where one parts ends an another one starts, especially when merging branches after the development has diverged for a while.

  <hr><i>anonymous added on 2009-03-11 07:24:03:</i><br>
  This is pretty atrocious, to be honest.  I cannot think of any tool that does this bad a job at handling merge conflicts, period.  Even diff/patch .rej files are superior.

  <hr><i>drh added on 2009-03-21 16:24:43:</i><br>
  Fixed in [83566f24241a01bedbf89d8ca068c7c1b926b4f0]


tkt_uuid: 504f565c1ea805e48312fed92583e6ca68df2342
type: Code_Defect
status: Open
severity: Important
foundin: [3543ed62bb]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: Adding an attachment does not update the Last Modified ticket time
comment:
  This happened in [fcadf658ed], where after attaching the ticket, the Last Modified time remained as it was before attaching.


tkt_uuid: 5124563ac13e2b3f02d8d3449142d14040116899
type: Code_Defect
status: Fixed
severity: Critical
private_contact: e16bca9376b716bf489a593de88e7b2760905520
resolution: Fixed
title: stash save fails after file remove
comment:
  While implementing and testing the stash commands in WinFossil I produced a fossil crash when using stash save or stash snapshot on a checkout where I did a fossil rm.
  Fossil isn't terminated but hangs after this operation.

  How to reproduce:

  <verbatim>
  D:\My Checkouts\StashFail>fossil new stashfail.fsl
  project-id: 6dd53c6e54872799343990ed3dc3448c7df28035
  server-id:  eda5824fca27982b3f0bdb25afe68eadb9537b96
  admin-user: Ingo (initial password is "668ada")

  D:\My Checkouts\StashFail>fossil open stashfail.fsl


  D:\My Checkouts\StashFail>fossil add 1.txt 2.txt
  ADDED  1.txt
  ADDED  2.txt

  D:\My Checkouts\StashFail>fossil commit -m "added 1.txt and 2.txt"
  D:/My Checkouts/StashFail/1.txt contains CR/NL line endings; commit anyhow (yes/no/all)?
  a
  New_Version: 57f36cf2c33c2d2c5cd1a4922208c999db48c9d8

  D:\My Checkouts\StashFail>fossil rm 1.txt
  DELETED 1.txt

  D:\My Checkouts\StashFail>fossil stash
  Assertion failed: (pBlob)->xRealloc==blobReallocMalloc || (pBlob)->xRealloc==blobReallocStatic, file wbld/blob_.c, line 184

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

  <hr /><i>anonymous added on 2011-07-22 20:20:14 UTC:</i><br />
  Same as ticket [3ce0ea97522581], fixed by checkin [336e194c4d]


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: 5162d999af8adb67bdd6799bc89310b5aaab431d
type: Code_Defect
status: Fixed
subsystem: one
priority: Immediate
severity: Important
foundin: fossil-linux-x86-b3ee50c946
private_contact: c053fd6c479d6dc559808f3516cfca32cbc0699d
resolution: Fixed
title: error trying to retrieve settings
comment:
  Create a new repository:

  fossil new fossil-test

  Try to retrieve settings:

  fossil setting -R fossil-test

  error:

  fossil: no such table: global_config
  SELECT '(local)', value FROM config WHERE name='autosync' UNION ALL SELECT '(global)', value FROM global_config WHERE name='autosync'

  <hr><i>drh added on 2008-10-24 14:06:28:</i><br>
  Fixed by check-in [2c3b20efff]


tkt_uuid: 5199df97bc08fff1e5656d165738f0d87f2a3ad1
type: Feature_Request
status: Closed
severity: Important
foundin: aab38ef02f
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: Alternative to reconstruct for large imports
comment:
  The current "fossil reconstruct" interface works well for small scale operation, but having one file per artifact (even across multiple directories) brings a lot of overhead.

  Attached is a patch to implement a variant called reconstruct-sql, which takes the artifacts from a sqlite3 database. This makes it a lot easier to deal with, especially if the processing is already done in a higher level language. Compressing the artifacts helps to cut down required disk space a lot, too.

  Related questions would be if explicitly tagging artifacts as manifests or including the hash or temporal order would be used to speed up the import. A lot of time is currently still spend in content_put. I haven't analyzed yet whether it is the work required for delta processing or whether it is the plain issue of having very large manifests (e.g. a working copy of pkgsrc is 60k files).

  <hr /><i>drh added on 2010-10-06 00:06:41:</i><br />
  If your import process is able to deal with zlib compression and sqlite, then
  why not just create an empty repository (using the "fossil new" command), 
  push the files directly into the BLOB table of the repository, then invoke
  "fossil rebuild" to process them?

  Or, how about an --incremental option to "fossil reconstruct".  With
  --incremental, you don't have to populate the inport directory with
  all of your files all at once.  Start with some subset, import them,
  clear out the directory and refill it with new files, import again,
  repeat until done.



  <hr /><i>anonymous added on 2010-10-06 09:40:24:</i><br />
  Well, the rebuild part needs hours as well, so I was wondering if that can be optimized too. At the moment, reconstruct(-sql) is processing artifacts twice (content_put and during rebuild), which is very costly for the manifests. Putting the entries directly into the blob table would remove the first part, but the rebuild would still be crawling.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-05 14:09:37:</i><br />
  I'm trying the new+import directly+rebuild road. One issue is that this triggers the verify loop again in all its slow glory. Can that be made optional and maybe available as a separate full integrity check?

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-05 15:28:52:</i><br />
  There is one other issue with using "fossil new". It is currently not possible to inhibit the creation of the "initial empty checking".

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-12-21 13:52:10:</i><br />
  fossil new + using sqlite3 to override the project code + extracting the initial revision + rebuild --noverify do what I want.


tkt_uuid: 5207b038615ee087e99513de1e26b7b5544f2437
type: Build_Problem
status: Fixed
severity: Critical
private_contact: d66ecbed41cfc11708f85c2d7a607eb4c13c38e6
resolution: Open
title: Build failure
comment:
  After doing a fresh fossil clone and open of the source code, I get the below build failure on mac os x 10.6:
  <pre>
  gcc -g -Os -Wall -DFOSSIL_ENABLE_SSL  -I. -I./src -o ./obj/style.o -c style_.c
  style_.c: In function ‘cgi_append_default_css’:
  style_.c:521: error: storage size of ‘i’ isn’t known
  style_.c:521: warning: unused variable ‘i’
  style_.c: In function ‘page_style_css’:
  style_.c:533: error: storage size of ‘i’ isn’t known
  style_.c:533: warning: unused variable ‘i’
  style_.c:532: warning: unused variable ‘zCSSdef’
  make: *** [obj/style.o] Error 1
  </pre>

  <hr><i>rwilson added on 2010-09-10 02:59:32:</i><br>
  builds fine in windows.

  <hr><i>wolfgang added on 2010-09-10 06:02:07:</i><br>
  I´ve changed this part on the branch

  wolfgangFormat2CSS

  after the first part was merged into the trunk.

  But on WinXP and Digital Mars C, i had no problem with this code (old and new version)

  <hr><i>anonymous claiming to be renez added on 2010-09-10 08:03:33:</i><br>
   enum cssDefaultItems i;
  I cannot find this enum in any header. You nust supply a definition
  enum cssDefaultItems = {None = 0, A, B , C, D};

  <hr><i>wolfgang added on 2010-09-10 11:16:26:</i><br>
  after a quick look, i see

  1. the trunk version shouldn´t have the problem, ´i´ is defined as int

  2. wolfgangFormat2CSS has the problem, but compiles with dm

  I´ll correct this in the evening, but it should work, if you update to "trunk"

  <hr><i>wolfgang added on 2010-09-10 16:13:00:</i><br>
  changed the undefined enum to int, the trunk version is not affected


tkt_uuid: 536c3399075d06a42126d97be90b71c5e1aa5722
type: Code_Defect
status: Fixed
severity: Important
foundin: [0018d724b3] 2010-12-07 13:31:37 UTC
private_contact: a008754591849753f7f1054c4e2a8ae4e8c649f8
resolution: Fixed
title: git fast-import fails to import the fossil export result for mongrel2 repo
comment:
  Trying out the fossil export to git, git complains about the format, running this shell script allows to reproduce the problem:
  <code>
  <pre>
  --- cut here ---
  #!/bin/sh
  PATH=`pwd`:$PATH
  fossil version
  git --version
  fossil clone http://mongrel2.org:44445 mongrel2.fossil
  rm -rf mongrel2-git
  mkdir mongrel2-git
  cd mongrel2-git
  git init
  fossil export --git ../mongrel2.fossil | git fast-import
  --- end cut here ---

  outputs on my end:

  dalien@ayourtch:~/tmp$ ./runme
  This is fossil version [0018d724b3] 2010-12-07 13:31:37 UTC
  git version 1.7.0.4
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  Received:      224521       4880          0          0
  Sent:           10048        226          0          0
  Received:      472854        294         34        166
  Sent:           18853        415          0          0
  Received:      228964        480         23        377
  Sent:           37653        801          0          0
  Received:      507401        880        149        651
  Sent:           75253       1601          0          0
  Received:     2407750       1680        548       1052
  Sent:           88366       1880          0          0
  Received:     3616447       1959        584       1295
  Sent:              53          1          0          0
  Received:      224521       4880          0          0
  Total network traffic: 123013 bytes sent, 2461523 bytes received
  Rebuilding repository meta-data...
    100.0% complete...
  project-id: 1bfa0026ac3ef7aeb5eae4e49018abf54bc189b3
  server-id:  fa5c71a1e27c7ca57bd6061434f9f82b87df3fd8
  admin-user: dalien (password is "xxxxxx")
  Initialized empty Git repository in /home/dalien/tmp/mongrel2-git/.git/
  fatal: Not a blob (actually a commit): M 100644 :27 src/manifest
  fast-import: dumping crash report to .git/fast_import_crash_24011
  dalien@ayourtch:~/tmp$ 
  </pre>
  </code>


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: 538d51575deedc883c37b8f373cf4ddc368f8893
type: Code_Defect
status: Open
severity: Important
foundin: 1d713f3f4d
private_contact: e05c4b7600be973bfc338fbb2709b47357780bc8
title: Recursive rm doesn't work
comment:
  Deletes done on a subdirectory don't make it into the commit set.
  <pre>
  mike /Users/mike/temp/11/db-4.2.52 $ fossil status
  repository:   /Users/mike/temp/11/x
  local-root:   /Users/mike/temp/11/
  server-code:  91fc8a118b8bdbc657cde65291f00826ada2e4d2
  checkout:     398f524c8fdc5ee7ddcb5667f714fc773431dc0e 2010-08-11 00:24:39 UTC
  parent:       e8e391df27dc580a3cdcfe43823d709258053400 2010-08-11 00:19:33 UTC
  tags:         trunk
  mike /Users/mike/temp/11/db-4.2.52 $ fossil rm xa
  DELETED  xa/tags
  DELETED  xa/xa.c
  DELETED  xa/xa_db.c
  DELETED  xa/xa_map.c
  mike /Users/mike/temp/11/db-4.2.52 $ fossil status
  repository:   /Users/mike/temp/11/x
  local-root:   /Users/mike/temp/11/
  server-code:  91fc8a118b8bdbc657cde65291f00826ada2e4d2
  checkout:     398f524c8fdc5ee7ddcb5667f714fc773431dc0e 2010-08-11 00:24:39 UTC
  parent:       e8e391df27dc580a3cdcfe43823d709258053400 2010-08-11 00:19:33 UTC
  tags:         trunk
  mike /Users/mike/temp/11/db-4.2.52 $ fossil commit -m "test"
  fossil: nothing has changed
  </pre>
  Had I done <tt>fossil rm xa/*</tt> the delete is added to the commits correctly.  Suggested patch:
  <pre>
  Index: src/add.c
  ===================================================================
  --- src/add.c
  +++ src/add.c
  @@ -213,11 +213,11 @@
           if( !db_exists(
               "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zFilePath)
           ){
             printf("SKIPPED  %s\n", zPath);
           }else{
  -          db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath);
  +          db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zFilePath);
             printf("DELETED  %s\n", zPath);
           }
           blob_reset(&pathname);
         }
         blob_resize(&path, origSize);
  </pre>


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: 53ed528478dbc423562ddaa21cb032de78bad806
type: Code_Defect
status: Fixed
severity: Minor
foundin: [081a29c0b7]
private_contact: ed685438f367f4147cdb8507d634250f1fbc14d6
resolution: Fixed
title: Bad href in tkthistory_page
comment:
  In tkthistory webpage bad href for submenu element "Check-ins", symbol '?' is used instead of '&':
  <verbatim>
  /*
  ** WEBPAGE: tkthistory
  ** URL: /tkthistory?name=TICKETUUID
  **
  ** Show the complete change history for a single ticket
  */
  void tkthistory_page(void){
    Stmt q;
    char *zTitle;
    const char *zUuid;
    int tagid;

    login_check_credentials();
    if( !g.okHistory || !g.okRdTkt ){ login_needed(); return; }
    zUuid = PD("name","");
    zTitle = mprintf("History Of Ticket %h", zUuid);
    style_submenu_element("Status", "Status",
      "%s/info/%s", g.zTop, zUuid);
    style_submenu_element("Check-ins", "Check-ins",
      "%s/tkttimeline?name=%s?y=ci", g.zTop, zUuid);
  </verbatim>
  Must be
  <verbatim>
    style_submenu_element("Check-ins", "Check-ins",
      "%s/tkttimeline?name=%s&amp;y=ci", g.zTop, zUuid);
  </verbatim>


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: 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: 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: 554f44ee74e3d3b9b24edd358f2bc3d8284f9ce5
type: Code_Defect
status: Open
foundin: [d8221b9863] 2011-05-12
resolution: Open
title: Interbranch interference with merges and renames
comment:
  Finally I managed to reproduce the trouble I mentioned in [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg03885.html].

  I'll attach a repository.

  <hr /><i>viriketo added on 2011-06-14 15:17:02 UTC:</i><br />
  Notice in 'tmp.fossil' how I created a branch named "branch". This has a rename from 'a' to 'b', and is never merged *into* trunk.

  While working on the "branch2", and updating branch2 from trunk, the file 'a' gets deleted when running: "fossil merge trunk".

  <hr /><i>viriketo added on 2011-06-15 07:43:05 UTC:</i><br />
  Notice that you have just done the checkin [1c4d1272a6] for this ticket. This change is the opposite to that done in checkin [ff2a87103b] to fix the behaviour described in ticket [74413366fe].

  <hr /><i>viriketo added on 2011-06-21 08:17:16 UTC:</i><br />
  I think even a cherrypick merge (if it sets an arrow in the checkin graph) can disrupt the renames.

  <hr /><i>viriketo added on 2011-10-12 16:23:12 UTC:</i><br />
  It may be fixed by [0b93b0f958].


tkt_uuid: 55fa8c23e301823f93edc530b2cac77ad8259d10
type: Feature_Request
status: Open
severity: Minor
foundin: [047e06193b] 2011-04-13
resolution: Open
title: Broken propagate colour to descendants, if there is a new colour in the middle
comment:
  I have a branch in a specific colour, with its first checkin having the color set and the 'propagate to descendants' enabled.. Then I change one of the checkin colours of the middle to a specific colour, and all next checkins get 'color none'.

  I'd expect that the original color set to propagate is what goes to the next checkins of the branch.

  In fossil-scm, there is some approach like that in trunk for the releases, but making such coloured 'released' checkins from a coloured non-trunk would not work that easy, in the current fossil version.

  <hr /><i>drh added on 2011-05-02 14:39:14 UTC:</i><br />
  This is the way it is designed to work.

  Retagging this ticket as a low-priority feature request.


tkt_uuid: 5664fcba51f2f2ceedfdbb540a678fea7902f662
type: Feature_Request
status: Open
severity: Important
foundin: [f827319bd4] 2010-09-21 13:54:10 UTC, from debian unstable
private_contact: e7009b1149e236cf616cbce7804535b1127af8d0
title: merge disjunct trees
comment:
  If one wants to unifiy two repositories, there are a starter docs here:

  http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01641.html

  But after that you usually have two completely disjunct trees (because they both start from different "empty commits". So a simple "fossil merge" fails due to no common ancestor.

  Assuming both projects have a clean "namespace", so that a simple "unify all files" would work, a way to do exactly that would really be nice.

  I am currently trying to write code to create my own manifest to insert it by hand using test-content-put, followed by a rebuild. I have no idea, if this will even work out. Some more "low level tools" to assist people doing some "non standard stuff" would really be nice. For example tools to setup a manifest, check it, and import it.


tkt_uuid: 568f67962789247740660f523774f949b842214d
type: Incident
status: Fixed
severity: Minor
foundin: 3d62a9fb39
private_contact: a7ec239b1a3401c4229e18dead1ea4225e287fb9
resolution: Fixed
title: Version mismatch on precompiled binary
comment:
  If I download fossil from following URL, I expect fossil version 9e80dc66cf (2008-10-18 13:06:19 UTC):
  http://www.fossil-scm.org/download/fossil-w32-9e80dc66cf.zip

  But, if I run 'fossil help', I get a different number/date:
  ...
  This is fossil version [3d62a9fb39] 2008-10-06 11:33:23

  Is this expected or is older version put on net?


tkt_uuid: 573727d6d93badc681bd957a8e0945b3d053d487
type: Feature_Request
status: Fixed
severity: Important
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
resolution: Fixed
title: Default disallow local local users
comment:
  When using nginx to proxy back to a fossil repo, it's easy to either uncheck once in production or leave unchecked to start. Not unsolvable, but it would be ideal to have "Require password for local access" checked by default or removed all together in favor of the following behavior.

  I understand that option is there to facilitate local logins via "fs ui" but it seems like a better alternative would be to make "fs ui" perform the following:

  <ol>
  <li>User calls <code>fs ui</code> from the command line</li>
  <li><code>fs ui</code> injects a valid one-time use token in to the sessions table</li>
  <li><code>fs ui</code> then calls web-browser with something like <code>http://127.0.0.1:8080/my_repo/auto-login?token=abcdef0123456789abcdef0123456789</code> which issues the user a login cookie and removes the one-time use token from the database</li>
  </ol>

  This step would go a long ways towards a "secure by default" policy for Fossil.


tkt_uuid: 573de5b9d9a81abab508c0e2446f4dd984de0ed2
type: Code_Defect
status: Closed
foundin: 65a12d56ca
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Not_A_Bug
title: fossil "event" naming
comment:
  My msgs don't seem to be getting through the mailing list, so I'll post here as well -- re: diff't name for "fossil event", perhaps "fossil note"? The posting really is a note, which could pertain to an event, or otherwise serve as a notice, etc., etc.


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: 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: 577663c2727505a0b5929ec5841fab68ec5f7404
type: Feature_Request
status: Fixed
severity: Important
foundin: 2a02aa49e1
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
resolution: Fixed
title: Add support for the target attribute.
comment:
  The attached patch adds support for the target attribute. Using fossil as a wiki, it's pretty common to want to compile various external references to external sites.

  <verbatim><a href="https://www.example.org/some-page" target="_blank">Link to Some-Page</a></verbatim>

  The attached patch supports the above behavior.


tkt_uuid: 58290cd2975f5f2aaf2087d5fc0e9c291628033d
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: c7f07fe67d
resolution: Fixed
title: fossil stash produces a stash for unmodifed checkout
comment:
  In an unmodified checkout 'fossil stash' produces an noop stash
  whereas 'fossil stash save' doesn't produce a stash

  Also stash id simply keeps incrementing by one.  If you have four stashes with id's 1-4 and pop all of them to leave yourself with an emtpy stash stack you'd expect your next stash to have an id of 1 but instead its 5.


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: 5872e90fdabec52b2c41596b033d486452eec303
type: Code_Defect
status: Closed
foundin: [cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Not_A_Bug
title: Database error: no such table: orphan
comment:
  I have both a local and remote fossil to version [cf178577ec].

  I have a local commit that the remote does not have. I do "fossil push", and I get:
  <verbatim>
  Server:    http://viric@vicerveza.homeunix.net/~viric/cgi-bin/rss
                  Bytes      Cards  Artifacts     Deltas
  Sent:            3626         77          0          0
  Received:        2899         61          0          0
  Sent:          260211        110          1         27
  Error: Database error: no such table: orphan
  SELECT rid FROM orphan WHERE baseline=580
  </verbatim>

  <hr /><i>drh added on 2010-12-07 15:29:40:</i><br />
  You need to run

  <blockquote><pre>
  fossil all rebuild
  </pre></blockquote>

  Do this on both client and server.  If you update to the latest (prebuilt binaries available on the Fossil website) then Fossil will warn you about
  the need to rebuild.

  <hr /><i>anonymous added on 2010-12-08 11:39:26:</i><br />
  Thank you. I remembered as if I had done 'rebuild' on the server, but evidently I remembered bad.


tkt_uuid: 58a5b63d0e7cf5f363e4f03837af63e4c42899d5
type: Code_Defect
status: Fixed
severity: Minor
foundin: 9e80dc66cf
private_contact: a7ec239b1a3401c4229e18dead1ea4225e287fb9
resolution: Fixed
title: Incorrect version of prebuilt fossil binary
comment:
  I downloaded prebuilt fossil binary from http://www.fossil-scm.org/download/fossil-w32-9e80dc66cf.zip, to find that fossil.exe in this package is version 3d62a9fb39 instead.


tkt_uuid: 5947ace466c571d55fb49ffbc7e1b65d3fd300d7
type: Build_Problem
status: Fixed
severity: Cosmetic
foundin: 1.19 [4adc11edb7]
private_contact: 21a77b59726532a584297d2c90634b2ba5fe10be
resolution: Fixed
title: Target "realclean" in Windows makefile misses an executable
comment:
  The 'realclean' target in file win\Makefile.msc erroneously tries to delete "version$E" instead of "mkversion$E" (didn't review the Mingw makefile, might have the same problem).


tkt_uuid: 5982aa506467d6acd1f426b10ce3eab14e7e79ac
type: Code_Defect
status: Fixed
severity: Important
foundin: [32ad9a1584]
private_contact: 5e4b94f2022a3718674d2037a39dd914dce7cdba
resolution: Fixed
title: Malformed manifest error when committing non-ascii-named files
comment:
  Problem is actual since check-in [32ad9a1584] after closing ticket [3f0216560679fd41]. When using only ascii (ansi) names all's ok.

  How to reproduce:
  <verbatim>
  $ fossil new local.fossil
  project-id: 6ebb7aa8bba00a717242424eb34e5210a90e3551
  server-id:  1f0d2c5e79252d625ddd9db92be893702b4e394a
  admin-user: flanker (initial password is "******")
  $ fossil open local.fossil
  $ fossil add "Приложение 3.doc"
  ADDED  Приложение 3.doc
  $ fossil commit -m "test"
  New_Version: d709fe4fa6e2e544ccdc170bce9ee7025273ce95
  $ fossil add 123.txt 
  ADDED  123.txt
  $ fossil commit -m "test2"
  New_Version: 8f10304d006b7c39d9ed422985a67604863a4290
  fossil: manifest file (5) is malformed
  </verbatim>

  The most sensitive change in this check-in was:
  <verbatim>
  +int fossil_strcmp(const char *zA, const char *zB){
  +  if( zA==0 ){
  +    if( zB==0 ) return 0;
  +    return -1;
  +  }else if( zB==0 ){
  +    return +1;
  +  }else{
  +    int a, b;
  +    do{
  +      a = *zA++;
  +      b = *zB++;
  +    }while( a==b && a!=0 );
  +    return a - b;
     }
   }
  </verbatim>

  Author said that this function can compare strings without considering locale. Maybe problem is here.


tkt_uuid: 59965ca64dd3881dc2beb200ee6106d59c4de721
type: Code_Defect
status: Open
severity: Important
foundin: [b48f78964e] 2010-09-18 15:51:43 UTC
private_contact: 77439dc4fd79e48a9ba75e50e77c0f3a1a902af2
title: Bad line endings in diff output on Windows
comment:
  The fossil diff command produces duplicate CR symbols (0dh) in the line endings of its output on Windows.
  More details are available in a recent mailing list discussion.


tkt_uuid: 59a156204ae6419d2d6b4dffb7abe634b81de776
type: Build_Problem
status: Fixed
severity: Minor
foundin: 4b2ab22c2a
resolution: Fixed
title: login.c register_page function declare vars in middle of block
comment:
  in function register_page in login.c after

  1) /* The user is registered, now just log him in. */ (701 login.c)

  2)  /* Prepare the captcha. */ (722 login.c)

  a block needs to start for older compilers which doesn't allow variable declarations in the middle of a block


tkt_uuid: 5a0491b23e4c55f2deb937d4b44be603040fd6bf
type: Feature_Request
status: Fixed
severity: Important
foundin: 2
private_contact: 215ff606d2ce48cb668b4c5b6adec0baec09e1c8
resolution: Fixed
title: este eh um teste
comment:
  aaaaaaaaaaaaaaaaaaaaaaa
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  cccccccccccccccccccccccccccccccccccccccc

  <hr><i>anonymous added on 2010-09-04 07:19:50:</i><br>
  2010090410000082


tkt_uuid: 5a13dbd275acf6b5f73c86c735eb7f415cbc8cbd
type: Code_Defect
status: Open
severity: Important
foundin: bc857ecd92
private_contact: 5c164664f608e8049128be696a3d13e04aa6fafd
resolution: Open
title: add and ci/commit are inconsistent wrt "*" handling
comment:
  <nowiki><tt>fossil add *</tt></nowiki> will happily add all files in current dir, and subdirs if present.Subsequent <nowiki><tt>fossil commit *</tt></nowiki> will fail on the subdirectories, though, saying they're not part of the repo.

  There is no file_isdir() handling in the <nowiki><tt>ci/commit</tt></nowiki> code, and even more confusingly, the object-types and style seem different between the two (<tt>add</tt> and <tt>ci/commit</tt>) blocks.

  Could these share a common function that recurses into dirs and returns strings/objects that are the files? Could <nowiki><tt>fossil ci *</tt></nowiki> be made to behave same as <nowiki><tt>fossil add *</tt></nowiki>?

  <hr><i>drh added on 2009-02-16 12:55:35:</i><br>
  Simply omit the "*" and "fossil commit" automatically commits everything.  Why
  do you want to include "*" syntax?

  <hr><i>bharder added on 2009-02-16 14:45:03:</i><br>
  If I have a logical group of commits in a single dir, and don't want to commit every single outstanding commit, then "*" is useful.

  <hr><i>kkinnell added on 2009-02-20 22:54:17:</i><br>
  On a Unix or GNU box you can do this if

    *  You're <em>not</em> trying to recurse

    *  There aren't any 'extra' files in the directory

    *  You get the full path from the root of the checkout.

  That last is as easy as starting at the checkout root, and
  <br />&nbsp;&nbsp;&nbsp;&nbsp;<code>fossil commit path/to/the/checkins/*</code>

  You may not even need the "full" path&#8212;but it never hurts to over-specify a path.

  A short Perl (or some lesser language ;) script can clean and commit a particular directory in one swell foop.

  <hr><i>anonymous added on 2009-03-14 23:45:46:</i><br>
  You can fix all kinds of problems by wrapping them in Perl, ultimately down to the point of writing an entire SCM in it. I don't think asking for consistency in behavior is that unrealistic a request.

  <hr><i>stephan added on 2009-11-30 14:44:18:</i><br>
  Keep in mind that the '*' is parsed by the SHELL, and NOT by fossil. What fossil gets as input is whatever the shell expanded '*' to be.

  <hr><i>anonymous added on 2010-05-12 11:52:06:</i><br>
  A patch to src/checkin.c to accomplish this:
  <pre>
  @@ -448,11 +448,10 @@
   
   /*
   ** Populate the Global.aCommitFile[] based on the command line arguments
   ** to a [commit] command. Global.aCommitFile is an array of integers
  -** sized at (N+1), where N is the number of arguments passed to [commit].
  -** The contents are the [id] values from the vfile table corresponding
  -** to the filenames passed as arguments.
  +** statically sized at 2000. The contents are the [id] values from the
  +** vfile table corresponding to the filenames passed as arguments.
   **
   ** The last element of aCommitFile[] is always 0 - indicating the end
   ** of the array.
   **
  @@ -461,24 +460,37 @@
   ** to mean "all files".
   */
   void select_commit_files(void){
     if( g.argc>2 ){
  -    int ii;
  +    int ii, iIn;
  +    Stmt q;
       Blob b;
  +    char *zPath;
       blob_zero(&b);
  -    g.aCommitFile = malloc(sizeof(int)*(g.argc-1));
  -
  +    g.aCommitFile = malloc(sizeof(int)*2000);
  +
  +    iIn = 0;
       for(ii=2; ii<g.argc; ii++){
         int iId;
         file_tree_name(g.argv[ii], &b, 1);
  -      iId = db_int(-1, "SELECT id FROM vfile WHERE pathname=%Q", blob_str(&b));
  +
  +      zPath = blob_str(&b);
  +      db_prepare(&q, "SELECT id FROM vfile WHERE pathname=%Q OR (pathname LIKE '%q/%%' AND chnged = 1)", zPath, zPath);
  +      iId = -1;
  +      while( db_step(&q)==SQLITE_ROW ){
  +        if( iIn>=2000 ){
  +          fossil_fatal("too many files: max 2000");
  +        }
  +
  +        iId = db_column_int(&q, 0);
  +        g.aCommitFile[iIn++] = iId;
  +      }
         if( iId<0 ){
           fossil_fatal("fossil knows nothing about: %s", g.argv[ii]);
         }
  -      g.aCommitFile[ii-2] = iId;
         blob_reset(&b);
       }
  -    g.aCommitFile[ii-2] = 0;
  +    g.aCommitFile[iIn] = 0;
     }
   }
   
   /*
  </pre>


tkt_uuid: 5a855f1bc6351f50e9686ca3b95553135fb30fef
type: Code_Defect
status: Closed
severity: Important
foundin: 8a8685d103
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: "changes", "diff" not properly reporting.
comment:
  [8a8685d103] and [058e287edb] both exhibit this issue.

  [058e287edb] On merge, "fossil chan" properly displays changed files (2 files). "fossil revert ./onefile", and "fossil chan" displays no files. "fossil diff" displays no files.

  [8a8685d103] On merge, (no "revert" applied), neither "fossil chan" nor "fossil diff" report what's expected.

  <hr /><i>bharder added on 2012-01-06 05:06:00 UTC:</i><br />
  This buggy behaviour began at [b9227b85cb|status improvements].

  <hr /><i>bharder added on 2012-01-06 06:30:34 UTC:</i><br />
  See [d7ff893259] for branch w/ offending code removed (wholesale). Will need to be reviewed/replaced.

  <hr /><i>drh added on 2012-01-08 20:18:48 UTC:</i><br />
  The [b9227b85cb|status improvements] was to fix an issue.  Perhaps the fix was
  incorrect.  But removing the fix is not right either.  The right thing to do is to
  fix the fix.

  Is there an easily reproducible test case that demonstrates the problem with
  [b9227b85cb|status improvements]?

  <hr /><i>bharder added on 2012-01-10 17:25:13 UTC:</i><br />
  > Perhaps the fix was incorrect. But removing the fix is not right either.

  I agree completely. What I've done here is provide a branch to isolate comparing these differences, and revert the way fossil behaves on the command line (by eliminating that original feature's side-effect); Am hoping to get the original fix back in, w/o it's side-effect, merge back to trunk.

  <hr /><i>bharder added on 2012-01-12 00:35:27 UTC:</i><br />
  This [bcd718e924|change] appears to work.


tkt_uuid: 5a96dd5f528606db7addd8156bb7b5d5fdda158f
type: Code_Defect
status: Fixed
severity: Important
foundin: 0448438c56d836a8a8261a
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: non-portable Makefile
comment:
  Tested and seemed to work with both BSD make and gnu make on NetBSD system.

  <pre>
  --- Makefile
  +++ Makefile
  @@ -58,11 +58,11 @@
   
   # You should not need to change anything below this line
   ###############################################################################
   #
   # Automatic platform-specific options.
  -HOST_OS :sh = uname -s
  +HOST_OS= $(uname -s)
   
   LIB.SunOS= -lsocket -lnsl
   LIB += $(LIB.$(HOST_OS))
   
   TCC.DragonFly += -DUSE_PREAD
  </pre>

  <hr /><i>ben added on 2011-05-28 21:08:47 UTC:</i><br />
  That was changed recently for Solaris compatibility.

  According to the NetBSD man pages it should work on that system. Did you encounter a problem?

  <hr /><i>bharder added on 2011-05-29 18:21:17 UTC:</i><br />
  <pre>
  kamloops$ uname -a 
  NetBSD kamloops 5.99.52 NetBSD 5.99.52 (kamloops) #80: Sat May 28 14:09:40 PDT 2011  root@kamloops:/usr/obj/sys/arch/amd64/compile/kamloops amd64
  kamloops$ which make
  /usr/bin/make
  kamloops$ make
  make: don't know how to make sh. Stop

  make: stopped in /home/bch/work/fossil
  kamloops$ 
  </pre>

  With gnu make (gmake on my system), builds fine. The patch I submitted was tested on my system with both BSD make and GNU make and both built fine.

  <hr /><i>ben added on 2011-05-30 07:21:37 UTC:</i><br />
  I've created a configure-make branch which adds a ./configure step to building, and removes the non-cross-platform requirement for the Makefile to set a variable to the output of a shell command.

  This will break any packaging scripts, which is unfortunate. I'm not sure there's an alternative other than choosing a platform which requires patching to build -- which may be completely acceptable if that platform is a minority platform. (revert [9ef38b6b6d] and break Solaris?)

  <hr /><i>ben added on 2011-05-30 07:28:45 UTC:</i><br />
  BTW, I tried the alternative synax suggested in the ticket. While it works on Solaris, it doesn't work on FreeBSD. No error, but it doesn't include the extra -DUSE_PREAD for the compiler.

  <hr /><i>drh added on 2011-05-30 12:52:50 UTC:</i><br />
  No configure scripts, please.  If no makefile can be devised that works for
  Solaris and NetBSD, then we'll create separate Makefile.solaris and Makefile.netbsd files for those platforms.

  <hr /><i>ben added on 2011-05-30 16:49:12 UTC:</i><br />
  I've committed a Makefile which works on (at least) Mac OS X, Linux, FreeBSD, NetBSD and Solaris.

  For the *BSDs and Solaris, it won't work if GNU make is used. However, this is no worse than it was before I messed with it to get it to work under Solaris.

  <hr /><i>joerg added on 2011-05-30 16:51:59 UTC:</i><br />
  Well, the original syntax was working with all modern make implementations. Only the broken make on Solaris has issues with it. I'm quite more in favour of just accepting that Solaris userland is broken...

  <hr /><i>ben added on 2011-05-30 17:10:40 UTC:</i><br />
  The original syntax wasn't working with a 'modern' GNU make, but that didn't matter as it's only the non-GNU platforms which need these tweaks. (You'd only get a build as intended on those platforms if you used the normal make, not gmake.)

  <hr /><i>anonymous claiming to be mgagnon added on 2011-05-31 02:31:49 UTC:</i><br />
  I confirm, on version [3abab7e177] makefile tested and work with no problem on:

    - OpenBSD 4.9 using bsd make and gnu make

    - QNX 6.4.1 (which use gnu make)
   
  So, it seems to be the way to go.


tkt_uuid: 5ad1d9a23ca5a8462fb6058efdb8a56489c3ed0c
type: Build_Problem
status: Open
severity: Important
private_contact: d91f4b46f6a4e7c071173444645f09807bb42bc0
resolution: Open
title: Makefile fails to run uname with GNU Make 3.82
comment:
  When trying to build Fossil on Haiku (ticket 084eedc010), I run into a problem with the Makefile. The following syntaxes do not seem to be supported by GNU Make 3.82:

  HOST_OS :sh = uname -s

  and

  HOST_OS = $(uname -s:sh)

  The following does work (but breaks things for other make variants, I assume):

  HOST_OS = $(shell uname -s)

  <hr /><i>ben added on 2011-06-13 15:28:00 UTC:</i><br />
  I believe you've tried to edit the Makefile to add the changes in ticket [084eedc010].

  Currently the only platforms which need these additions use BSD make, where this works. So currently it hasn't mattered that this doesn't work on platforms which use GNU make. Changes to work with GNU make break non-Linux platforms -- the current syntax works on as many as possible.

  Given the project wants to avoid a configure step, it might be necessary to add a Makefile.haiku.

  <hr /><i>anonymous claiming to be brecht added on 2011-06-13 21:23:11 UTC:</i><br />
  Perhaps the following offers a solution:

  <verbatim>
  HOST_OS_CMD = uname -s
  BSD_HOST_OS = $($(HOST_OS_CMD):sh)
  GNU_HOST_OS = $(shell $(HOST_OS_CMD) )
  HOST_OS = $(BSD_HOST_OS)$(GNU_HOST_OS)
  </verbatim>

  It works for GNU Make, as BSD_HOST_OS will be empty. I'm hoping GNU_HOST_OS would be empty when using BSD Make.

  <hr /><i>steveb added on 2011-07-22 22:43:01 UTC:</i><br />
  As of [c32b23d626] fossil builds on Haiku R1/Alpha 3 with ./configure; make


tkt_uuid: 5adca29b9e11428a310f37c241e856055e50b29f
type: Feature_Request
status: Closed
severity: Cosmetic
foundin: [bbb8ae7ebf]
private_contact: e64e062ff7022fc7fdd41ac56baff07e8ae485d9
resolution: Rejected
title: Text area for wiki, et. al. is fixed width and too narrow.
comment:
  It would be nice if, instead of a hardcoded <code>textarea</code> tag with fixed <code>rows</code> and <code>cols</code>, we could have width and height specified in CSS classes on the various textareas instead.

  <hr /><i>lrem added on 2011-09-13 12:35:05 UTC:</i><br />
  This is no longer an issue, as all major browsers by default allow textarea resizing.


tkt_uuid: 5b871546cef80b13e07d73d5439618c335658597
type: Documentation
status: Closed
severity: Cosmetic
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Not_A_Bug
title: Possible typo in file src/main.c, introduced by check-in [b2e55c0d4d]
comment:
  Check-in [b2e55c0d4d] introduced into the file src/main.c line:<br>
  <nowiki>
  COM MAND: commands
  </nowiki>
  <br>
  Was it intentional?

  <hr><i>drh added on 2009-02-01 12:12:51:</i><br>
  The change was intentional.  It was not a mistake.  The intent was to 
  disable the "commands" command which was superceded by the "help" command.


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: 5be04d980c92f73fbc71413a4c9d012fc740f142
type: Code_Defect
status: Fixed
severity: Severe
foundin: d03718ad5f
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: Floating point exception, core dump.
comment:
  <pre>
  <nowiki>
  $ gdb fossil 
  GNU gdb 6.1.1 [FreeBSD]
  Copyright 2004 Free Software Foundation, Inc.
  GDB is free software, covered by the GNU General Public License, and you are
  welcome to change it and/or distribute copies of it under certain conditions.
  Type "show copying" to see the conditions.
  There is absolutely no warranty for GDB.  Type "show warranty" for details.
  This GDB was configured as "amd64-marcel-freebsd"...
  (gdb) run all rebuild
  Starting program: /usr/local/bin/fossil all rebuild
  /usr/local/bin/fossil rebuild /home/bch/work/fossils/fossil.fsl
    100.0% complete...
  /usr/local/bin/fossil rebuild /home/bch/work/fossils/hybridor.fsl
    100.0% complete...
  /usr/local/bin/fossil rebuild /home/bch/work/fossils/ipmi.fsl
    100.0% complete...
  /usr/local/bin/fossil rebuild /home/bch/work/fossils/lighttpd.fsl
    100.0% complete...

  [more repos rebuilt...]

  /usr/local/bin/fossil rebuild /home/bch/work/fossils/testmerge.fsl
    100.0% complete...
  /usr/local/bin/fossil rebuild /home/bch/work/jnk/jnk.fsl
  Floating point exception (core dumped)

  Program exited normally.
  (gdb) bt
  No stack.
  (gdb) 

  </nowiki>
  </pre>


tkt_uuid: 5bf7ca88f6feb518fbb66466b98c1fe9dbde9879
type: Feature_Request
status: Open
severity: Minor
title: Diagram of unresolved vs solved Tickets
comment:
  it would be nice to have a diagram/graphic like in the 30 day summary on codehaus.org (i.e. http://jira.codehaus.org/browse/JRUBY), which shows the overall number of open tickets vs the closed ones...


tkt_uuid: 5c1490e26b8b2f8689896df9e1632a249c95dbb7
type: Code_Defect
status: Open
severity: Important
foundin: 12a79e5b93
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: The ticket comments appear with the time always on UTC
comment:
  The Timeline page, and the Ticket History page appear with proper localtime if the server is configured to show local time.
  But the ticket page, where there are introductions to comments like "xxxx added on 2010-10-20 15:44:03:", this always appears in UTC time.

  <hr /><i>anonymous added on 2010-10-20 21:02:25:</i><br />
  I see it's written in the artifact in plain text, so I propose adding "UTC" in the time string.

  As in "xxx added on 2010-03-04 15:32 UTC: ".

  <hr /><i>anonymous claiming to be Alex added on 2010-12-30 11:53:21:</i><br />
  I attach a patch which adds a TH1 function "datelocal" which allows the ticket comment timestamps to be in the local time.

  <hr /><i>anonymous claiming to be Alex added on 2010-12-30 13:27:09:</i><br />
  I made a better patch, please ignore the one attached as "aa".<br>
  It adds a TH1 function datetolocal which converts a date-and-time parameter from UTC into local time zone. Usage (on Edit ticket page):<br>
  set ctxt "$ctxt added on &#91;datetolocal &#91;date&#93;&#93;:&lt;/i&gt;&lt;br /&gt;\n$cmappnd"<br>
  or (on View ticket page)<br>
  &lt;th1&gt;html &#91;datetolocal $tkt_datetime&#93;&lt;/th1&gt;

  <hr /><i>anonymous claiming to be Alex added on 2010-12-31 07:12:49 UTC:</i><br />
  Maybe it should be a separate ticket, but the fix that DRH made in http://fossil-scm.org/index.html/fdiff?v1=ef3bb3e834513608&v2=602acd7e19a26fb0 does not allow the View ticket page to show last modified time in local time zone. That's why in my patch I made date a parameter passed to 'datetolocal' function instead of always returning 'now'. Perhaps make date-to-be-converted an optional parameter to 'date' function too?


tkt_uuid: 5cc33a6aa0621be8936f7b34b8c8e0e8f16f9ce7
type: Code_Defect
status: Fixed
severity: Important
foundin: cf178577ec
private_contact: 968fbac50d44f7831ad22975412d3eaaed688fbc
resolution: Fixed
title: Committing one file while another is pending delete will commit both files.
comment:
  It seems that I have found a bug in fossil.  I found this as I was trying to add a file but a diff of my commit shows that I removed one as well.  However when I committed, I only specified the file that I wanted to add:

  # fossil commit path/to/file_to_add -m "Added file."

  I performed the following operations to test and reproduce the bug:

  <pre>
  # mkdir /tmp/fossilbug
  # cd /tmp/fossilbug
  # fossil new my.fossil
  project-id: 2b1773e0efaf0a28844f51226f4dcf88ff7ed73b
  server-id:  1b7807e55a0d9c863b0e47063d59ef700d7f03cc
  admin-user: admin (initial password is "15b831")
  # fossil open my.fossil
  # date > file1
  # date > file2
  # date > file3
  # date > file4
  # fossil add file*
  ADDED  file1
  ADDED  file2
  ADDED  file3
  ADDED  file4
  # fossil commit -m "Added 4 test files"
  New_Version: 181cd0b02dfd84476e804eb9230e87c7ff26bdcb
  # fossil delete file1
  DELETED  file1
  # date > file4
  # fossil changes
  DELETED    file1
  EDITED     file4
  # fossil commit file4 -m "committing ONLY the modified while a file is pending deleted"
  New_Version: 98de35d30e35a6a206c943b7b34afbe4744db2cf
  # fossil changes
  DELETED    file1
  </pre>

  As you can see, I created a new fossil repo for my test.  Added 4 files with random content and committed.

  Then I removed one file and I modified another.  I commit the file that I modified but not the file that I removed.  In my local folder, the deleted file is still pending.  However... if you use finfo or diff.. you will see that the file WAS deleted on my commit.

  <pre>
  # fossil finfo file1
  History of file1
  2010-11-23 [98de35d30e] DELETED test modified while a file is pending deleted
             (user: roychri)
  2010-11-23 [181cd0b02d] test 1 (user: roychri, artifact: [99d7a1f973])
  # fossil diff --from 181cd0b02dfd84476e804eb9230e87c7ff26bdcb --to 98de35d30e35a6a206c943b7b34afbe4744db2cf
  DELETED file1
  CHANGED file4
  Index: file4
  ===================================================================
  --- file4
  +++ file4
  @@ -1,1 +1,1 @@
  -Tue 23 Nov 2010 10:14:01 EST
  +Tue 23 Nov 2010 10:14:32 EST
  </pre>

  Then when I commit the deleted file, it creates an empty commit (diff empty and not files in list).

  CONCLUSION:

  I cannot perform a partial commit (where I specify each file on the command line) when I have pending deleted files that I am NOT ready to commit.

  <hr /><i>anonymous added on 2010-11-24 14:06:58:</i><br />
  It seemed that fossil is not formatting my entry the way I expected.  Sorry about that.

  You can view source to see it well.  The admins of this site can put a "pre" HTML tag around my text so the formatting is better.

  I cannot seem to be able to edit my previous entry.

  <hr /><i>anonymous added on 2010-11-25 01:30:16:</i><br />
  I see that the resolution is fixed but... no comment.  Which version of fossil has this fix?
  It would be nice to have this information so I can test it... :)

  Thanks


tkt_uuid: 5cebcf3548f3e8dcfb7fd60863545cb926b550a8
type: Code_Defect
status: Fixed
subsystem: one
priority: Immediate
severity: Critical
private_contact: e44a3d2922a30493163b2e4fba8da23a3eb08d57
resolution: Fixed
title: Bug reports should not force severity
comment:
  Bug report editing should allow empty severity and other fields.

  <hr><i>drh added on 2008-10-24 15:03:04:</i><br>
  Testing a fix by adding a comment.

  <hr><i>drh added on 2008-10-24 15:03:28:</i><br>
  Testing the fix by adding a comment.

  <hr><i>drh added on 2008-10-25 19:17:40:</i><br>
  Adding a remark.


tkt_uuid: 5cf318a1d08363c26a4d1ea1c857b7c083ed0837
type: Feature_Request
status: Fixed
subsystem: one
priority: Immediate
severity: Minor
foundin: f3fb059eb6
private_contact: c053fd6c479d6dc559808f3516cfca32cbc0699d
resolution: Fixed
title: Use latest UUID associated with a tag by default
comment:
  I created and named a branch in my repository using the "tag branch" command.  I then made some additional commits to the branch.  

  After syncing a repository on another computer, I did a checkout using the tag name for the UUID.  To my surprise, instead of getting the latest UUID associated with the tag, I got the earliest. 

  Using tags to label branches is of limited value if I have to look up the UUID of the branch's leaf anyway in order to continue development on the latest code.  It would be nice if I could rely on always getting the leaf UUID of the branch I'm working on when using tags in place of UUIDs.  It would make working on multiple branches easier and faster, since I wouldn't have to keep looking up UUIDs.

  <hr><i>drh added on 2008-10-24 13:54:24:</i><br>
  This appears to be the same problem as ticket [368a5d6c5b], which appears to
  be fixed now.


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: 5e9020fe4ccfc11e94be32aa220131943bb042ed
type: Code_Defect
status: Fixed
severity: Minor
foundin: b48f78964e
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Ancestor check incorrect for fast commits
comment:
  Trying to build a test repository for the content_get problem, I see:

      fossil: ancestor check-in [400e924baf] (2010-10-04 16:29:26) is younger (clock skew?) Use -f to override.

  This is wrong, because the ancestor has the same modification time as the new commit. Either the message should be "is not older" or the check should be for > and not >= in checkin.c.


tkt_uuid: 5e9f1b1cd84a985673ecb54ee80bc79b32ffc787
type: Build_Problem
status: Closed
severity: Minor
foundin: b41feab774
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
resolution: Fixed
title: missing dependency when generating version: manifest... under windows/dmc
comment:
  When using the win-dmc-build, updates/commits in the local checkout don't generate a new version in the compiled fossil.exe.

  Only after a "make clean", the version is displayed correctly on web-pages and "fossil version"

  <hr><i>renez added on 2010-09-12 14:59:12:</i><br>
  Your right the dependeny is
  file.obj: file_.c
  instead of
  file.obj: file_.c file.h
  I make an update

  <hr><i>wolfgang added on 2010-09-12 15:38:17:</i><br>
  Works fine, i merged your changes into my branch and make detects the required recompiles and the version number is correctly put into the generated fossil.exe

  Thanks :-)


tkt_uuid: 5f194e2c8f475ce9d5e8bde058c1e97d683f3ce5
type: Code_Defect
status: Fixed
severity: Important
foundin: ae89a7ce79
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: fossil scrub --private sometimes remove private files that have been merged into public branches
comment:
  When:
    *  A file is added in a private branch
    *  This private branch is pushed to a remote server
    *  This branch is locally merged to a public branch
    *  The merge is pushed to the remote server

  A fossil scrub --private executed directly on the remote server will delete the content of the file.

  How to reproduce:
  <code>$ fossil new a.fossil

  $ fossil clone file://a.fossil b.fossil

  $ mkdir test

  $ cd test

  $ echo "abcd" >test.txt

  $ fossil add test.txt

  $ fossil commit -m"test" --private

  $ cd ..

  $ fossil sync -R a.fossil file://b.fossil --private

  $ cd test

  $ fossil checkout trunk

  $ fossil merge private

  $ fossil commit -m"test"

  $ cd..

  $ fossil sync -R a.fossil file://b.fossil --private

  $ fossil scrub b.fossil --private

  $ fossil ui b.fossil</code>

  Browse the files and observe that the content of test.txt is missing.

  I think that the problem is that when fossil receives a non-private manifest that points to a file that was previously private, it should mark that file's content as public and it doesn't.


tkt_uuid: 5f2f147f7efb71ae9778ab32aecbea99bec95958
type: Code_Defect
status: Closed
severity: Severe
foundin: 79b7902cdd
private_contact: 9789231ce371e5ff882a9f61a4c955c1d6f4cb63
resolution: Duplicate
title: Fossil forgets about executable bit when switching branches
comment:
  After a fresh checkout the executable bit is correctly recorded on files:<pre>
  $ ls -l unix/configure
  -rwxr-xr-x 1 rkeene users 581812 2011-02-26 22:37 unix/configure*
  $ fossil artifact 92caef797a838cf20af94cff7aea871580641c72 | grep unix/configure
  F unix/configure 35a077913fa8a27b6bdccf51ceb5999e3349f969 x
  $
  </pre>

  However, after updating to a tag that lacks the file, and then updating to a tag that includes it the executable bit is missing:
  <pre>
  $ fossil update core-8-0-2
  ...
  updated-to:   8ff5cdf418c32c02df18d1b756c3798fdc4de809 1998-04-29 17:09:47 UTC
  $ ls -l unix/configure
  ls: cannot access unix/configure: No such file or directory
  $ fossil update core-8-5-9
  ...
  updated-to:   7f1e1062ab6ea6810f9a764eab2702dde64680b3 2010-09-08 17:38:32 UTC
  $ ls -l unix/configure
  -rw-r--r-- 1 rkeene users 569172 2011-02-27 13:34 unix/configure
  $ fossil artifact 7f1e1062ab6ea6810f9a764eab2702dde64680b3 
  B 48191d397923759727b3231e19160d0d74bb722e
  ...
  $ fossil artifact 48191d397923759727b3231e19160d0d74bb722e | grep unix/configure
  F unix/configure 59a07ca641234778de582ca96b0296967f04ddf2 x
  </pre>

  <hr /><i>anonymous added on 2011-02-27 20:41:34 UTC:</i><br />
  Duplicate of [baf9b6b11e], closing.


tkt_uuid: 5f611295e3c2a8a900ce39e9a72ecd9aace4c59e
type: Code_Defect
status: Fixed
foundin: [6f42e76d80] 2011-01-13
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Cannot update to a branch leaf (due to events tagged as the branch)
comment:
  We have hit a problem where we cannot update to a branch we have. We have been using this branch for months.

  <verbatim>
  $ fossil update tai
  fossil: no such version: tai
  $ fossil branch list |grep tai
    tai
    tai_dll
  </verbatim>

  The branch has a single leaf. This command worked fine until yesterday. The latest change that may have done something is adding an event with the same tag as the branch name. We also had a double leaves yesterday late, and we changed one of the branches to "fork a new branch since this checkin" using the ui Edit button.

  The current leaf says in Tags and Properties:
  <verbatim>
      * bgcolor=#c0ffc0 inherited from [e6e7a07477]
      * branch=tai inherited from [e6e7a07477]
      * sym-delivered added by [401c9ad515] on 2011-02-09 02:54:05
      * sym-tai inherited from [e6e7a07477]
  </verbatim>

  Any idea? All our workstation fossil clients show the same behaviour (linux and cygwin).

  <hr /><i>anonymous claiming to be viric added on 2011-02-10 21:14:07 UTC:</i><br />
  I could reproduce this another time. An Event page with the same tag as the branch name triggers the problem: then 'fossil update XXX' will get the Event instead of the checkin of the leaf with the name XXX.

  <hr /><i>viriketo added on 2011-04-05 07:31:18 UTC:</i><br />
  This still happens with fossil version [1d93222627] 2011-03-01 19:04:32.

  "fossil update branchname" will fail if there is an event tagged with 'branchname' after the branch leaf.

  <hr /><i>viriketo added on 2011-06-01 12:29:19 UTC:</i><br />
  Fossil [d8221b9863] 2011-05-12 still has the problem.


tkt_uuid: 5f681dfeee3cc3553aec39a3f99e7d097b908692
type: Feature_Request
status: Fixed
subsystem: one
priority: Immediate
severity: Critical
private_contact: df332820968daaee8c281bf00b070b1cde2c81b9
resolution: Open
title: Need a mechanism to sync the REPORTFMT and CONCEALED tables
comment:
  The set of bug-report formats is stored in the REPORTFMT table.  The
  CONCEALED table stores a mapping of SHA1 hashes back to email addresses which
  are the contact information for bug reports.  Both tables are part of the
  private state of a repository and are thus not synced with the "sync",
  "push", "pull", or "clone" commands.

  Nevertheless, there should be a mechanism for users with the correct
  privileges to "push" or "pull" the REPORTFMT and CONCEALED table information
  from one repository to another.

  <hr><i>drh added on 2008-10-05 13:20:47:</i><br>
  The command "fossil config pull ticket" now pulls down the REPORTFMT table.
  It does not yet pull the CONCEALED table, but that seems like a reasonable
  thing to add, provided that steps are taken to insure that anonymous users
  cannot get a copy of the CONCEALED table in this way.

  <hr><i>drh added on 2008-10-26 02:38:28:</i><br>
  The "configuration pull email" command now pulls the CONCEALED table.
  This only works if the appropriate credentials are presented to the
  server, of course.  There is now also a "configuration push" command
  to send configuration data from local to remote.


tkt_uuid: 5f9f516a22f5538aa862fea8fb0fa8ce470846c0
type: Code_Defect
status: Open
severity: Critical
foundin: d5695157d0
private_contact: 63f4cb9d6971f7dbdee05412b8546975182b32e4
resolution: Open
title: Cannot commit changes: tree checksums before and after commit do not match
comment:
  All action took place on a iMac with MacOS/X 10.5.7.

  Here the receipt to provoke the error:
  <verbatim>
  wget http://www.qiao.in-berlin.de/t3xr2.zip
  mkdir bug
  cd bug
  fossil new repos.fsl
  fossil open repos.fsl
  unzip ../t3xr2.zip
  fossil add .
  fossil com -nosign -m "Import failed"
  </verbatim>
  Fossil will answer with:
  <verbatim>
  New_Version: 19afb14b17676ebbd8b9060d4adb718a3ceb103f
  fossil: tree checksums before and after commit do not match
  </verbatim>

  Please let me know, if you need further information or if I can help somehow ...

  Thanks,
  chi :-)

  <hr><i>bharder added on 2009-06-13 15:45:23:</i><br>
  These operations work fine on NetBSD 5.0, fossil version [5882d97495], on i386 (Pentium M).

  <hr><i>chi added on 2009-06-13 16:54:48:</i><br>
  Thank you bharder! Thru your remark I was finally able to spot the bug, but I don't have an idea, how to solve it!

  In the archive there is a file <samp>Manifest</samp>. Now Fossil want to create an own file <samp>manifest</samp> where it stores some information. Unfortunately the MacOS/X' filesystem HFS+ is case insensitive per default! So the checkin's file <samp>Manifest</samp> and Fossil's own one <samp>manifest</samp> are considered the same. So after checkin, Fossil write its <samp>manifest</samp> thereby destroying a file that is part of the checkin! Fossil detect that and complain.

  As Fossil do not need a file <samp>manifest</samp> (i.e. it can work without one), it should be taken into consideration, whether it should be possible to prevent the creation of the <samp>manifest</samp> and <samp>manifest.uuid</samp> files per default?

  Ciao,
  chi :-)

  <hr><i>anonymous claiming to be kc added on 2009-11-16 14:11:54:</i><br>
  In version d5695157d0-win32 same problem. Can't commit.

  <hr><i>altufaltu added on 2009-11-17 01:59:54:</i><br>
  As fossil creates a database in local directory when open command is run, it is preferred to save contents of manifest and menifest.uuid files in the database itself rather than separate files. These file names are too common.

  That will keep things simple.


  <hr><i>drh added on 2009-11-22 23:32:47:</i><br>
  Fossil does not use the manifest or manifest.uuid files.  Those files
  are created purely for the convenience of the application.

  For example, the source code to fossil itself (which is stored as a fossil
  repository) looks at the manifest and manifest.uuid files to get the date
  and time and version information that is displayed when you type:
  "fossil version".  And SQLite gets the information returned by the
  sqlite3_sourceid() function in the same way.

  <hr><i>eric added on 2009-11-24 19:46:04:</i><br>
  checkin.c writes the two files, and could possibly have an option not to, but changing that means we need to know why it writes "manifest" and then reads it back again!


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: 5ff2043c966820498ce41c0dd425b4b2155fa025
type: Code_Defect
status: Fixed
severity: Important
foundin: 2011-04-19 20:30:31 085b6a1bbb
private_contact: ae1a74676bb0d1ac520802109f926567b1637ac7
resolution: Fixed
title: Invalid xhtml markup generated (with patch)
comment:
  While most of the generated fossil output is valid xhtml, there are still several places that aren't.

  These include not using &amp; instead of a plain & when generating URLs in href attributes, using &lt;br> and &lt;hr> instead of &lt;br /> and &lt;hr />, using &amp;nbsp; instead of &amp;#160; and finally the occasional &lt;img> instead of &lt;img />.

  The attached patch corrects these issues so that fossil can return valid application/xhtml+xml content.

  <hr /><i>dmitry added on 2011-09-08 23:11:38 UTC:</i><br />
  Please note that pages generated by Fossil has HTML5 doctype. HTML5 allows unclosed single tags such as &lt;br&gt;.

  <hr /><i>jan.nijtmans added on 2012-11-06 09:05:14 UTC:</i><br />
  Most of this patch just changes &amp;nbsp; to &amp;#160; which is just the same in html (not in xhmtl). The main part of the remaining has to do with the link
  generation using the function style_submenu_element(): This function should generate links with all &amp;'s escaped as &amp;amp;'s, but it doesn't.
  <p>
  Wouldn't it be better to modify style_submenu_element() such that it escapes all &amp;'s to &amp;amp;? Then those (minor) html5 violations are fixed all at once.

  <hr /><i>jan.nijtmans added on 2012-11-08 09:51:47 UTC:</i><br />
  Suggested fix committed to branch "ticket-5ff2043c96".

  I put many pages, such as "timeline" to the validator.w3.org, and
  it reduced dramatically the number of errors. The current "timeline"
  page dropped from 85 to only 4 errors. That's better than
  changing many &amp;'s to &amp;amp;'s in the source code, as this
  patch does. Changing only the href() and style_submenu_element()
  functions has much more effect.

  <hr /><i>jan.nijtmans added on 2012-11-08 10:31:49 UTC:</i><br />
  <pre>Note that xhtml errors can result in real bugs. For
  example have a look at the report list:
          [http://www.fossil-scm.org/fossil/reportlist]
  When logged in, this page contains links &#91;copy&#93; after each
  report. This link works fine on Firefox, but it doesn't work
  on Internet Explorer, and this time IE is not to blame ;-)

  The suggested patch makes the &#91;copy&#93; link on
  the reportlist page work on both Firefox and Internet Explorer.

  The reason is that the link has the form:
       http://www.fossil-scm.org/fossil/rptedit?rn=1&amp;copy=1
  But Internet Explorer interprets that as:
       http://www.fossil-scm.org/fossil/rptedit?rn=1©=1
  as &amp;copy is short for the copyright sign (the ';'
  is not mandatory in html5).

  See: [http://www.w3.org/TR/html5/named-character-references.html#named-character-references],
  and note that a "copy" named character reference exists without a final ';'.
  </pre>


tkt_uuid: 60211effbd2c6e3f823b4fadbbe9b29e1cc12a10
type: Code_Defect
status: Open
severity: Minor
foundin: 1.19 [080d27a6b2]
private_contact: 799fcce709e3f04aa96834caec7945b22b8b6a57
resolution: Open
title: fossil mv nonexistentfile newfilename
comment:
  I did by mistake
  <pre>
  fossil mv nonexistentfile newfilename
  </pre>
  and fossil didn't complained about renaming nonexistent file. 

  I expect, that fossil will refuse that command.

  <hr /><i>dmitry added on 2011-10-24 18:15:59 UTC:</i><br />
  I think leaving it as is, issuing a warning, or asking a user to confirm the action instead of failing is better, because I sometimes first do

  <verbatim>
  mv file renamedfile
  </verbatim>

  and then remember to mv it in Fossil:

  <verbatim>
  fossil mv file renamedfile
  </verbatim>

  If Fossil didn't allow this, I'd have to rename the file back to the original name, then do `fossil mv`, and rename it again.


tkt_uuid: 607bc372c6def2e7ff87859fbe78c977fab12ecb
type: Code_Defect
status: Fixed
severity: Important
foundin: 767ae79c3d
private_contact: a44827559cb5ba06a95af4c4d260c5b79df45d69
resolution: Fixed
title: Segmentation fault fossil open ../clone.fsl
comment:
  Get 6663 Segmentation fault on "fossil open ../clone.fsl".

  0. Prebuilt fossil binary version [767ae79c3d] for Linux on amd64.
     Running on Linux 2.6.18-128.2.1.el5xen #1 SMP Tue Jul 14 07:07:49 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
  1. Started with repo golden.fsl (autosync 1)
  2. cloned it to clone.fsl (autosync 1)
  3. opened the clone, added a file, commited, closed
  4. tried second open and got segmentation fault.

  Shell script to reproduce problem below, with cut/paste of script execution.

  <verbatim>
  cat > bug.sh <<EOF
  #!/bin/bash
  fossil version
  rm -rf testsync
  mkdir -p testsync/co
  cd testsync
  echo 888888888888888888888888888 creating golden.fsl
  fossil new golden.fsl
  fossil setting autosync 1 -R golden.fsl
  fossil setting clearsign 0 -R golden.fsl
  echo   888888888888888888888888888 cloning to clone.fsl
  # fossil clone file://golden.fsl clone.fsl
  fossil clone golden.fsl clone.fsl
  echo   888888888888888888888888888 open clone.fsl
  cd co
  fossil open ../clone.fsl
  echo 888888888888888888888888888 adding file.txt to clone.fsl
  echo "test line 1" > file.txt
  fossil add file.txt
  echo   888888888888888888888888888 now commit clone.fsl
  fossil commit -m "added file.txt"
  echo   888888888888888888888888888 now close clone.fsl
  fossil close
  cd ..
  echo   888888888888888888888888888 open clone.fsl
  cd co
  fossil open ../clone.fsl
  echo   888888888888888888888888888 adding file2.txt to clone.fsl
  echo "test line 1" > file2.txt
  fossil add file2.txt
  echo   888888888888888888888888888 now commit clone.fsl
  fossil commit -m "added file2.txt"
  echo   888888888888888888888888888 now close clone.fsl
  fossil close
  cd ..
  EOF
  </verbatim>

  Output from above script is:

  <verbatim>
  [jgm@centos fossil]$ ./bug1.sh
  This is fossil version [767ae79c3d] 2009-04-24 18:40:03 UTC
  888888888888888888888888888 creating golden.fsl
  project-id: 376259cb21ae0842ced3944f8957bfa423f7ea09
  server-id:  cd966662db19ee7eb0e7e8807ab7e58f9db665fa
  admin-user: jgm (initial password is "709262")
  888888888888888888888888888 cloning to clone.fsl
  Repository cloned into clone.fsl
  Rebuilding repository meta-data...
  1 (100%)...
  project-id: 376259cb21ae0842ced3944f8957bfa423f7ea09
  server-id:  fa0ce966e276f68c299e7a06b63e14d797e780a2
  admin-user: jgm (password is "709262")
  888888888888888888888888888 open clone.fsl
  888888888888888888888888888 adding file.txt to clone.fsl
  ADDED  file.txt
  888888888888888888888888888 now commit clone.fsl
  Autosync:  file:///home/jgm/storage/workspace/fossil/testsync/golden.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  Received:          46          2          0          0
  New_Version: 58edecc0e57a46f2016c2e8281a9e4099992f9f1
  Autosync:  file:///home/jgm/storage/workspace/fossil/testsync/golden.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             677          5          2          0
  Received:         138          5          0          0
  888888888888888888888888888 now close clone.fsl
  888888888888888888888888888 open clone.fsl
  Autosync:  file:///home/jgm/storage/workspace/fossil/testsync/golden.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  sh: : command not found
  ./bug1.sh: line 31:  6663 Segmentation fault      fossil open ../clone.fsl
  888888888888888888888888888 adding file2.txt to clone.fsl
  ADDED  file2.txt
  888888888888888888888888888 now commit clone.fsl
  Autosync:  file:///home/jgm/storage/workspace/fossil/testsync/golden.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             130          1          0          0
  Received:         138          4          0          0
  fossil: would fork.  "update" first or use -f or --force.
  888888888888888888888888888 now close clone.fsl
  fossil: there are unsaved changes in the current checkout
  </verbatim>

  <hr><i>drh added on 2009-07-22 12:47:34:</i><br>
  The problem seems to have already been fixed by check-in [915bfd99fec69f978].
  I have posted the latest binaries on the website for ease of downloading.

  Thank you for an exceptionally clear bug report.


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: 61bc76ae034c6192c661122040986cb40dfde50a
type: Code_Defect
status: Open
severity: Important
foundin: [0018d724b3]
private_contact: 418c4f45a536c92d788654590d618c26cc3b5913
title: fossil update undoes moves
comment:
  If there are any moved files in the working directory, those changes are lost on fossil update.

  Here are the steps to reproduce:
  <pre>
  cpages@pica:~/repos/test$ find .
  .
  ./a
  ./a/f
  ./_FOSSIL_
  cpages@pica:~/repos/test$ fossil changes
  cpages@pica:~/repos/test$ mkdir b
  cpages@pica:~/repos/test$ fossil mv a/f b
  RENAME a/f b/f
  cpages@pica:~/repos/test$ mv a/f b
  cpages@pica:~/repos/test$ fossil changes
  RENAMED    b/f
  cpages@pica:~/repos/test$ find .
  .
  ./a
  ./_FOSSIL_
  ./b
  ./b/f
  ### do some changes in the repository ###
  cpages@pica:~/repos/test$ fossil update
  ADD a/f
  REMOVE b/f
  ADD ff
  --------------
  updated-to:   9c598efdab6b4523d91d36cd6142e688a42c1e44 2010-12-28 07:49:47 UTC
  tags:         trunk
  comment:      Adding file. (user: cpages)
  cpages@pica:~/repos/test$ find .
  .
  ./a
  ./a/f
  ./_FOSSIL_
  ./b
  ./ff
  cpages@pica:~/repos/test$ fossil changes
  cpages@pica:~/repos/test$
  </pre>


tkt_uuid: 61e137bfd734ab61f777cb3c0fb662cfa82bd67f
type: Code_Defect
status: Open
severity: Important
foundin: 6517b5c857
private_contact: a7ec239b1a3401c4229e18dead1ea4225e287fb9
title: Incorrect relative paths
comment:
  In windows, if local-root (local checkout) is at root of a drive, 'status' command when run from root shows additional '../' in file names, which is incorrect.

  Recipe:
  <verbatim>
  cd /d d:
  fossil new test.fossil
  fossil open test.fossil
  echo root > root.txt
  mkdir dir
  echo subdir > dir/subdir.txt
  fossil add root.txt dir/subdir.txt
  fossil commit -m "test"
  echo changed > root.txt
  echo changed > dir/subdir.txt
  fossil status
  </verbatim>

  The output shows:
  <verbatim>
  repository:   d:/test.fossil
  local-root:   d:/
  ...
  EDITED     ../dir/subdir.txt
  EDITED     ../root.txt
  </verbatim>


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: 62c84f3e604a06f9b8f3f4ca39f774d6909115aa
type: Incident
status: Fixed
severity: Severe
foundin: [ba837fd294] 2008-12-16 18:39:29 UTC
private_contact: 72c73ce34e23821d1efcc88bc872fc296aabde7e
resolution: Fixed
title: SQL syntax error checking out a branch
comment:
  I tried to check out the branch tip of '1.0-branch' in the repository at
  http://kbk.is-a-geek.net:2301/  Fossil aborted with the following:
  <pre>
  $ fossil checkout 1.0-branch
  fossil: near "HERE": syntax error
  UPDATE vfile SET mtime=NULL HERE vid=361 AND mrid&gt;0
  $ fossil version
  This is fossil version [ba837fd294] 2008-12-16 18:39:29 UTC
  </pre>

  <hr><i>anonymous claiming to be kennykb@acm.org added on 2008-12-20 01:29:52:</i><br>
  The obvious fix of changing HERE to WHERE at line 253 of vfile_.c appears to get around the problem.


  <hr><i>drh added on 2008-12-20 02:24:14:</i><br>
  Fixed by check-in [491b2c69ec500c643df1d82e5bd59e3eefaa2f28].


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: 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: 6445480b9bd255a823f05ea18960a37a2e21a9cc
type: Documentation
status: Fixed
severity: Cosmetic
foundin: eb1db585a5
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: fossil branches - unknown command
comment:
  the quick start guide describes the command 'fossil branches' but it is an unknown command.  perhaps 'fossil branch list' was intended?  see checkin [da4363308c].

  <nowiki><pre>
  PS C:\fossil\fossil> fossil branches
  C:\WINDOWS\system32\fossil.exe: unknown command: branches
  C:\WINDOWS\system32\fossil.exe: use "help" for more information
  PS C:\fossil\fossil> fossil branch list
  === 2009-05-08 ===
  09:52:38 [ecd1f09632] Initial commit of Creole Wiki Parser extension. (user:
           robert tags: creole)
  === 2009-04-27 ===
  08:43:38 [47cc9dfec8] Experimental - Pass < !-- --> comments through the wiki
           unchanged unless inside a < verbatim > block in which case it is
  [...]
  14:09:59 [a28c83647d] initial empty baseline (user: drh tags: trunk)
  PS C:\fossil\fossil> fossil ver
  This is fossil version [eb1db585a5] 2009-09-14 16:56:29 UTC
  PS C:\fossil\fossil>
  </pre></nowiki>

  <hr><i>drh added on 2009-09-19 14:43:52:</i><br>
  Fixed the [/doc/tip/www/quickstart.wiki | Quick Start] document in
  check-in [849972ea0b9d2]


tkt_uuid: 64d9461fa4b399b15827876bcf6b8ccc95720d16
type: Build_Problem
status: Closed
severity: Minor
foundin: 7aae4ef068
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
resolution: Open
title: missing dependency for link in DigitalMars Windows Makefile
comment:
  Building fossil on Windows-XP using the Digital Mars C-compiler does alwas a link, even if there is no changed file.

  There is a missing dependency in the tcl-generated Makefile.dmc. It works correctly, if the link-file depends on ..\win\Makefile.dmc. I don't, how to change the tcl-script, to add this dependency.

  <hr><i>anonymous added on 2010-09-05 13:42:52:</i><br>
  i think, changing 

  $(OBJDIR)\link:}

  into

  $(OBJDIR)\link:	..\win\Makefile.dmc}

  on line 262 in makamake.tcl should solve the problem. Sorry, i don't have an tcl installation, so i cannot test it.

  best regards,
  Wolfgang


  <hr><i>renez added on 2010-09-06 20:29:17:</i><br>
  You are right coded the change


tkt_uuid: 65363298fdee0dc5f59b62312942d803e6685010
type: Feature_Request
status: Fixed
subsystem: one
priority: Immediate
severity: Minor
foundin: f3fb059eb66288b6f3e08f840868f9df4c7ac9fa
private_contact: 22e3b7a55e291d179313f4c2e34877f09743ee31
resolution: Open
title: Include bug report formats in update
comment:
  Bug report formats should be considered part of the project and downloaded from a master repository during a pull or sync operation.  When reviewing bug reports locally offline, one should have access to the same report formats as when working via the master repository web site.  

  It should also be possible to edit and tweak report formats offline and then upload to the master when satisfactory, just like code.

  <hr><i>drh added on 2008-10-05 13:34:18:</i><br>
  The philosophy of fossil is that nothing is ever removed from a repository.
  There is an exception mechanism to allow the removal of spam or other
  abusive content.  But we will want to make it a policy to never remove anything
  that is not abuse from a repository.

  So if a bug report format were part of the repository, that means no bug
  report format would ever be removable.  I do not think that is
  desirable.  Many users might want to make their own private bug
  report formats that show, for example, all bugs assigned to them.  We do
  not necessarily want these private formats being part of the repository
  forever and ever.  One can easily imagine that after a few years, a busy
  project might have hundreds or thousands of distinct report formats, and
  it would become difficult to select a desired format from amid
  all the extraneous private formats.  For this reason, bug report formats
  are deliberately not "artifacts" and are not synchronized by the usual
  "sync" mechanism.

  Beginning with check-in [bf75ea9852] (on 2008-10-04) you can pull bug report
  formats from a server using the command:

      fossil config pull ticket

  Also when you clone a repository, all of the bug report formats for that
  repository are cloned as well.  But the "config pull" mechanism is distinct
  from the usual synchronization logic.  New bug reports added to the server
  are not automatically pulled on the next sync; you have to manually repeat
  the "config pull".  And there is currently no such thing as a "config push".

  <hr><i>drh added on 2008-10-26 02:43:07:</i><br>
  Bug report formats are automatically pulled on a "clone".  And you can now
  push local bug report formats back to the server (if you have Admin
  privilege).  So I think this request has been satisfied.


tkt_uuid: 6585b6c5d9058212cebc4523012344858f099c1c
type: Code_Defect
status: Fixed
severity: Severe
foundin: [4ab7251fcd]
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Wrong cast in call to _open_osfhandle
comment:
  According to Microsoft, _open_osfhandle is declared as follows:

  <verbatim>
    int _open_osfhandle (
      intptr_t osfhandle,
      int flags 
    );
  </verbatim>

  However, Fossil currently calls this function as follow:

  <verbatim>
      *pfdIn = _open_osfhandle((long)hStdoutRd, 0);
      fd = _open_osfhandle((long)hStdinWr, 0);
  </verbatim>

  The cast to long is causing trouble, because on x86_64-windows,
  long is still 32bit, whereas intptr_t is 64bit.

  The attached patch fixes this.

  -- tsbg


tkt_uuid: 665995e4806e119cc5eb62abdc4df5214324a7f3
type: Code_Defect
status: Open
severity: Severe
foundin: 37f295c310
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Open
title: no such table: vvar
comment:
  i was unable to do a simple new, open:
  <pre>
  PS C:\Documents and Settings\ron wilson\My Documents> fossil new p:\backup\backup.f
  project-id: 0c559eca39534d82928edd0dee0e59a011461098
  server-id:  6b95e35610a5ea0b56e9cb1e8593d305ca6510a7
  admin-user: ron wilson (initial password is "2a32a6")
  PS C:\Documents and Settings\ron wilson\My Documents> fossil open p:\backup\backup.f
  C:\WINDOWS\system32\fossil.exe: no such table: vvar
  REPLACE INTO vvar(name,value) VALUES('repository','p:\backup\backup.f')
  PS C:\Documents and Settings\ron wilson\My Documents> fossil ver
  This is fossil version [37f295c310] 2009-09-21 19:19:20 UTC
  PS C:\Documents and Settings\ron wilson\My Documents>
  </pre>

  <hr><i>rwilson added on 2009-09-23 05:16:46:</i><br>
  this may be hardware related.  seems to work fine on C drive, but P is a sata drive in a usb external enclosure.  will investigate further.

  <hr><i>rwilson added on 2009-09-23 05:39:29:</i><br>
  it is not hardware related.  for some reason fossil is not able open a repository in the 'my documents' folder.  odd.  it is able to create the _FOSSIL_ file in 'my documents' and it appears to be complete, so i can't explain the error.

  <pre>
  PS C:\fossil> fossil new p:\backup\test.f
  project-id: 711304708008228f835ddfed439613f3179944d6
  server-id:  acdf9cf7de168d7d9a08f18b360b1ed1c5e9b422
  admin-user: ron wilson (initial password is "36625a")
  PS C:\fossil> md nospaces
  PS C:\fossil> cd nospaces
  PS C:\fossil\nospaces> fossil open p:\backup\test.f
  PS C:\fossil\nospaces> cd ..
  PS C:\fossil> md "one space"
  PS C:\fossil> cd 'one space'
  PS C:\fossil\one space> fossil open p:\backup\test.f
  PS C:\fossil\one space> cd 'C:\Documents and Settings'
  PS C:\Documents and Settings> fossil open p:\backup\test.f
  PS C:\Documents and Settings> cd 'ron wilson'
  PS C:\Documents and Settings\ron wilson> fossil open p:\backup\test.f
  PS C:\Documents and Settings\ron wilson> cd 'My Documents'
  PS C:\Documents and Settings\ron wilson\My Documents> fossil open p:\backup\test.f
  C:\WINDOWS\system32\fossil.exe: no such table: vvar
  REPLACE INTO vvar(name,value) VALUES('repository','p:\backup\test.f')
  PS C:\Documents and Settings\ron wilson\My Documents> ls
      Directory: Microsoft.PowerShell.Core\FileSystem::C:\Documents and Settings\ron wilson\My Documents
  Mode                LastWriteTime     Length Name
  ----                -------------     ------ ----
  -a---         9/23/2009   1:35 AM       7168 _FOSSIL_
  PS C:\Documents and Settings\ron wilson\My Documents> sqlite3 _FOSSIL_
  SQLite version 3.6.1
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> .schema
  CREATE TABLE vfile(
    id INTEGER PRIMARY KEY,
    vid INTEGER REFERENCES blob,
    chnged INT DEFAULT 0,
    deleted BOOLEAN DEFAULT 0,
    rid INTEGER,
    mrid INTEGER,
    mtime INTEGER,
    pathname TEXT,
    origname TEXT,
    UNIQUE(pathname,vid)
  );
  CREATE TABLE vmerge(
    id INTEGER REFERENCES vfile,
    merge INTEGER,
    UNIQUE(id, merge)
  );
  CREATE TABLE vvar(
    name TEXT PRIMARY KEY NOT NULL,
    value CLOB,
    CHECK( typeof(name)='text' AND length(name)>=1 )
  );
  sqlite> .quit
  PS C:\Documents and Settings\ron wilson\My Documents>cd ..
  PS C:\Documents and Settings\ron wilson> md 'my documents2'
  PS C:\Documents and Settings\ron wilson> cd 'my documents2'
  PS C:\Documents and Settings\ron wilson\my documents2> fossil open p:\backup\test.f
  PS C:\Documents and Settings\ron wilson\my documents2>cd '..\My Documents'
  PS C:\Documents and Settings\ron wilson\My Documents> md test
  PS C:\Documents and Settings\ron wilson\My Documents> cd test
  PS C:\Documents and Settings\ron wilson\My Documents\test> fossil open p:\backup\test.f
  PS C:\Documents and Settings\ron wilson\My Documents\test>
  </pre>


tkt_uuid: 666072edfcdb33172e5f4724ff5e14da4d7099b5
type: Feature_Request
status: Open
foundin: 1.18
title: Add a UI view of file history from a checkin, backwards in time
comment:
  Now we have the finfo page, that shows all the history related to a path. That can have lots of unuseful information, if we want to know the history that brought a file its state in a given checkin.

  I think that we should have a page that takes 'checkin' and 'path' as parameters, and shows something like the 'finfo' page, but traversing only parents of the 'checkin'. We could have links to this page in the same places we have links to 'annotate'.

  Is there anything like that ready that I've missed?


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: 6673476941adf0aebd0ef04915850be1fcd7f229
type: Code_Defect
status: Fixed
foundin: [1d49c2f65c] 2011-02-20
resolution: Unable_To_Reproduce
title: Broken link to check-ins from ticket history
comment:
  Being in the page of the history of a ticket [http://fossil-scm.org/index.html/tkthistory/ce33b14f8f|like this], going to the Check-ins link results in a link with two question marks, like this: [http://fossil-scm.org/index.html/tkttimeline?name=ce33b14f8f?y=ci]

  <hr /><i>dmitry added on 2011-09-08 22:47:39 UTC:</i><br />
  No longer reproducible, perhaps, has been fixed.


tkt_uuid: 66ad1acf2b8f8e5a0a9a35491d5f3a820c5c854b
type: Code_Defect
status: Closed
severity: Severe
foundin: d0753799e4
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Open
title: No way to change commit message
comment:
  Developers (even experienced ones) commit wrong messages sometimes, <br>
  Fossil doesn't provide any sensible way to clean up. <br>
  There should be a way to replace message given commit id.

  <hr /><i>drh added on 2010-11-08 12:19:10:</i><br />
  Run "fossil ui".  Then click on the check-in that you want to edit.  Click on
  "Edit" hyperlink to the right of "Other Links:".  There you can change the
  check-in comment, the commit time, the background color, the branch that the
  commit is part of, and other details.

  <hr /><i>anonymous added on 2010-11-09 16:26:54:</i><br />
  UI is not an option, it is severe defect that one can't change commit message using command line interface. <br>
  In particular it makes fossil hard to integrate into common development environments such as Emacs.


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: 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: 66cbcd56a229f33af6b9a6329a73a797d0299570
type: Code_Defect
status: Fixed
severity: Minor
foundin: a8c3a7ea92 2008-11-22T19:32:44
private_contact: 6b7d8d19b3584e0b0b59ee79d0f778ecd9f60111
resolution: Fixed
title: win32 'fossil pull' or other client side commands hang up if peer unexpected shutdown.
comment:
  win32 client receive data function 'socket_read_blob()' (declared in "http.c") call 'recv()'
  and test return value is negative or else. but if peer unexpected shutdown 'recv()' returns zero.
  so this functon enters infinite-loop. to fix it, return value is negative or equal to zero as error.
  <verbatim>  while ( i<nToRead ){
        read = recv(pSockId, rbuf, 50, 0);
        i += read;
  -     if( read<0 ){
  +     if( read<=0 ){
          return 0;
        }
        blob_append(pBlob, rbuf, read);
    }</verbatim>

  <hr><i>drh added on 2008-11-27 13:51:22:</i><br>
  Fixed by check-in [c12e5b102ee6079715da0fa4eff7fb502b68b111]

  <hr><i>anonymous claiming to be silov.e added on 2008-12-03 06:31:42:</i><br>
  Thank you for fix problems

  By the way, on many OSes, recv(2) (or read(2)) returns zero if peer unexpected or expected shutdown is normal behavior. It meanings no more data or end of stream. This behavior is not win32 quirks.


tkt_uuid: 66ce1088b63360e7bd4bbbebc3bb68e3331b5a47
type: Code_Defect
status: Fixed
severity: Minor
foundin: ae84e6c7d1
private_contact: e33581e4165859602178a8051fc827bcbd3ca7a2
resolution: Fixed
title: It is possible for the empty string to be a user id
comment:
  Admin -> users and click on a user to get to the  Edit User screen

  Delete the contents of the Login box and apply the changes.  Congratulations, you have now created a user with id consisting of the empty string.

  Try this again and you will get message to the effect that user "" already exists

  <hr /><i>dmitry added on 2011-09-12 19:44:00 UTC:</i><br />
  Fixed in [e1ea6c26d0].


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: 674d5d55562cf353265a115052fb500ea2b31597
type: Code_Defect
status: Open
severity: Minor
foundin: [6f42e76d80] 2011-01-13
title: The timeline does not filter by an unexisting tag
comment:
  Filtering by a non existent tag gives results like if there was no tag filtering at all, and nevertheless the heading says "timeline events tagged by XXX".

  For example: [/timeline?t=potato]


tkt_uuid: 675aaa3458199c8832c6879b43325ffb2fd62e75
type: Code_Defect
status: Fixed
severity: Important
foundin: 3243e63bba
private_contact: 735ae1c8a572d669bafab35cf8b1f5116c325c86
resolution: Fixed
title: fossil says valid html element is invalid
comment:
  &lt;hr/> is a valid xhtml element. Fossil says it is not.
  However &lt;hr /> and &lt;hr id='hrid'/> are considered valid.

  The problem is in wikiformat.c:markupLength in the line

    while( isalnum(z[n]) ){ n++; }

  ==>  if( (c = z[n])!='>' && !isspace(c) ) return 0;

    while( (c = z[n])!=0 && (c!='>' || inparen) ){

  <hr /><i>renez added on 2010-09-24 21:51:04:</i><br />
  looking further at the routine it will invalidate this to

    *  &lt;img src="img.png" alt="d'art noir" title="/> black art" />
    *  &lt; hr />

  This will do a bit better but will still not catch all
  <verbatim>
  like <hr//> will be valid

  static int markupLength(const char *z){
    int n = 1;
    int quote;
    int c;
    if( z[n]=='/' ){ n++; }
    while(isspace(z[n])) n++;
    if( !isalpha(z[n]) ) return 0;
    n++;
    while(isalnum(z[n])) n++;
    while( (c = z[n]) && c!='>'){
      if( c=='"' || c=='\'' ){
        n++;
        for(quote=c; (c=z[n]) && c!=quote; n++) ; //look for the same closing quote
        if(!c) return 0;
      }
      n++;
    }
    return c ? n+1 : c ;
  }
  </verbatim>


tkt_uuid: 675f36eac4902cfb5b4602059281e19adedce4b1
type: Code_Defect
status: Fixed
severity: Important
foundin: e50813e19b5adaafc8c58716586ddcf5d9720272
private_contact: e1a76b04ade74efe2373e16e03024d160f2f960a
resolution: Fixed
title: "/doc/ckout" doesn't work under chroot
comment:
  "/doc/ckout" fails when running under forced chroot (because fossil is running as root). Failure happens inside doc_page, when trying to do db_open_local --> thus "ckout" is always converted to "tip" instead.

  db_open_local fails because file_getcwd (which is just a wrapper for getcwd) always return "/" under chroot, thus db_open_local cannot locate the _FOSSIL_ database.

  Observed when running fossil as root, using "fossil server" command from within a checkout directory, from the versions available on the official download page (May 28 and May 23), as well as latest version as of today - the bug probably originates much earlier. 

  Workaround:
  If I disabled enter_chroot_jail (by returning zRepo immediately) - ckout works.

  cheers!


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: 678eb0c20a07f601aa2b11439b7ac49ecaf21e5c
type: Incident
status: Closed
severity: Severe
foundin: 6cf7548a3c
private_contact: e64e062ff7022fc7fdd41ac56baff07e8ae485d9
resolution: Not_A_Bug
title: Large files make memory usage spike through the roof.
comment:
  I'm hosting a few repositories for small projects on a tiny (64MB RAM) VPS.  With all services running (lighttpd and sshd) this leaves me with 44MB available RAM.  This has not caused a problem until today.

  Today I sent up a fossil repository that has two sizable binary files: one 18MB, one 14MB.  I found to my surprise that I simply could not clone the repository when testing it.  I got cryptic error messages like these:

  <nowiki><pre>
  $ fossil clone http://retrotech.boldlygoingnowhere.org/repos/RSTS rsts.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             552         22          0          0
  Received:        4852         29          0          0
  Send:             472          9          0          0
  1fossil: unknown command: Status:
  </pre></nowiki>

  Investigation by trying a local clone on the VPS showed me that Fossil was running out memory:

  <nowiki><pre>
  $ fossil clone http://retrotech.boldlygoingnowhere.org/repos/RSTS rsts.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             552         22          0          0
  Received:        4149         25          0          0
  Send:             472          9          0          0
  out of memory
  </pre></nowiki>

  Instrumenting the memory profile on the remote side while running a clone from the server confirmed that yes, indeed, the system is rapidly running out of RAM just as Fossil is supposed to be sending data down the pipe.  It looks to me like it's pulling the whole repository into memory (weighing in at 12MB on disk) and then doing other stuff besides (decompressing in-situ, perhaps?) in order to clone.

  <hr><i>drh added on 2009-09-16 16:20:55:</i><br>
  No, fossil is <u>not</u> pulling the whole repository into memory....

  But it does construct an entire HTTP reply message in memory.  That involves
  reading in the 18MB blob out of the database and decompressing it,
  then appending that blob to the
  end of the growing HTTP reply (there is 36MB for you already) then compressing
  the entire HTTP reply using Z-lib.  As the HTTP reply buffer grows, it uses the
  trick of realloc-and-copy so growing a buffer might make require twice the size
  of the buffer.  Every compress/uncompress operation involves keeping both
  the original and the modified copy in RAM at least for a short while.
  Add to that malloc fragmentation and the memory space that
  SQLite will request (we configure SQLite in fossil to use lots of memory
  because that makes it faster and because fossil is designed to run on a 
  workstation, not a cellphone!) and it is little wonder that you
  are running out of RAM.

  The obvious solution here is to get more RAM.  That can't be hard.
  I use [http://www.linode.com/ | Linode] as my VPS provider and the 
  <em>smallest</em> system they sell is 360MB.
  I also use fossil on [http://www.he.net/ | Hurricane Electric].  HE is a
  shared hosting provider, not a VPS provider, but shared hosting is sufficient
  to support fossil and you don't have arbitrary RAM limits.

  Could fossil be reengineered to support 18MB binaries on a 64MB server?
  Probably.  But why would you want to?  RAM is cheap and getting cheaper
  daily.  Fossil does not use that much memory relative to the size of
  the files it stores - perhaps a multiplier of 3 or 4, but that is not so
  much in the grand scheme of things.  This problem has a very simple solution:
  throw memory at it and move on.

  <hr><i>anonymous added on 2009-09-17 00:46:35:</i><br>
  Living in a developing country puts limits on what I can afford in terms of VPS hosting, especially once currency controls are taken into account.  I have the VPS size I have simply for reasons of raw price: $7/mo.


tkt_uuid: 67936dc2abc317c54e7bed3b07de0fce6c277511
type: Documentation
status: Closed
severity: Important
private_contact: ef710649033d78de2fe3d27e2d5a1292128303df
resolution: Not_A_Bug
title: Fossil SCM as a NoSQL database instead of CouchDB
comment:
  Hi all,

  Sorry for using this instead of the mailing list, but is at this moment is just an incidental questions and I don't want to subscribe to another mailing list to just ask a question (I'm planning to use fossil for my development, but not yet). I have being wandering around this project for two months because I think it could be useful as a self contained NoSQL backend for a distributed off-line/on-line web site I'm planning, but I see also that CouchDB [http://www.ibm.com/developerworks/web/library/wa-couchdb/index.html|1] is also used in that precise scenario. Most of the time I see the Fossil vs Git comparison that emphasize Fossil as a DVCS, Could you please elaborate about Fossil-SCM vs CouchDB to elaborate about the NoSQL database nature of Fossil, specially in projects where you are working with semistructured data and on/off-line operation.

  Thanks

  Offray

  <hr /><i>anonymous added on 2011-01-26 20:34:54 UTC:</i><br />
  Hi all,
  Sorry for using this instead of the mailing list, but is at this moment is just an incidental questions and I don't want to subscribe to another mailing list to just ask a question (I'm planning to use fossil for my development, but not yet). I have being wandering around this project for two months because I think it could be useful as a self contained NoSQL backend for a distributed off-line/on-line web site I'm planning, but I see also that CouchDB 1 is also used in that precise scenario. Most of the time I see the Fossil vs Git comparison that emphasize Fossil as a DVCS, Could you please elaborate about Fossil-SCM vs CouchDB to elaborate about the NoSQL database nature of Fossil, specially in projects where you are working with semistructured data and on/off-line operation.

  Thanks

  Offray

  <hr /><i>dmitry added on 2011-01-27 02:18:33 UTC:</i><br />
  You probably want to read the following documents:

    #  [http://fossil-scm.org/index.html/doc/trunk/www/concepts.wiki]
    #  [http://fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki]
    #  [http://fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki]

  But Fossil is not really a replacement for CouchDB.

  <hr /><i>anonymous added on 2011-01-27 13:57:43 UTC:</i><br />
  Thanks Dimitri. The technical overview was particulary useful in my attempt to understand the possibilities of each one. I need to have a probe of concept to go further in this idea.

  Cheers,

  Offray


tkt_uuid: 67a47646ea38c7ed77112b579a6f7dce84e4eda9
type: Code_Defect
status: Fixed
severity: Severe
foundin: trunk
private_contact: 88dd45b41c4c2c9de79828b446518623552710a5
resolution: Fixed
title: commit failure after merge
comment:
  I ran into a strange problem which results in "fossil commit" failure
  after a specific type of merge. Below I included a self-contained shell script that reproduces the problem. Tested with trunk version of fossil on Linux.
  Here is the problem's description.
  A fossil repository T.fossil contains two brunches "trunk" and "next".
  In both branches there are two files "foo" and "bar". At some point in
  development process I merge branch next into the trunk. The contents
  of the files are such that "fossil merge next" successfully
  auto-merges changes in bar but has merge conflicts in foo that has to
  be manually resolved. So far so good.
  <verbatim>
  $ fossil cha
  UPDATED_BY_MERGE bar
  EDITED     foo
  </verbatim>

  The project's internal logic dictates that while fixing merge
  conflicts in foo I have to make some changes to bar.
  After any changes to "bar" fossil refuses to commit claiming that
  "working checkout does not match what would have ended up in the repository".

  I think this behavior is incorrect, for it forces me to commit a
  broken state of the project, let say code does not compile.
  Please, run an attached shell script to reproduce the problem.

  <verbatim>
  ----%<--------%<----
  #!/bin/bash
  ################################################################################
  # Demonstrates "fossil commit" failure after merge.
  # We have a repo with two files bar, foo which is being developed in branches 
  # trunk and next. At some point next is merged into trunk. bar is successfully 
  # automerged while foo has merge conflicts requiring manual resolution. 
  # From internal logic of the project resolving conflicts in foo requires 
  # modifications to bar. After bar is edited "fossil commit" fails!
  ################################################################################

  # Preamble to setup directories and output redirection
  BNAME=merge-conflict
  RTDIR="/tmp/fossil-tests/$BNAME"
  rm -rf   "$RTDIR"
  mkdir -p "$RTDIR"
  exec 2>&1
  exec 1>& >(tee "$RTDIR/T.log")
  echo "**************************************************************************"
  echo "**  $RTDIR/T.log     -- this log"
  echo "**  $RTDIR/T.fossil  -- test repo"
  echo "**  $RTDIR/T         -- checkout"
  echo "**************************************************************************"
  set -x

  # Test case
  cd "$RTDIR"			# Now in $RTDIR
  fossil new T.fossil
  mkdir -p T
  cd T				# Now in $RTDIR/T
  fossil open ../T.fossil
  echo "foo in the branch trunk" > foo
  echo "bar in the trunk" > bar
  fossil add foo bar
  fossil ci -m 'added foo, bar to the trunk'
  echo "foo in the branch next" > foo
  echo "line added to bar in branch next" >> bar
  fossil ci --branch next -m 'commit to newly created branch next'
  # go to the trunk 
  fossil co trunk
  fossil inf
  # make changes to trunk
  echo "new foo version in the trunk" > foo
  fossil ci -m 'foo changed in trunk'
  # merge next into trunk
  fossil merge --detail next
  fossil cha
  echo "merged version of foo" > foo
  echo "resolving merge conflicts in foo required changes in bar" > bar
  # trying to commit. GETTING ERRORS!!!
  fossil ci --force -m 'resolved conflicts in foo'

  #EoF
  ---->%-------->%----
  </verbatim>

  <hr /><i>drh added on 2012-02-10 14:40:18 UTC:</i><br />
  Problem introduced by check-in [b9227b85cbd78].

  Hurray for the [/doc/a932b744332916c58/www/selfcheck.wiki | self-check] logic
  that blocked the commit and thus prevented this bug from causing permanent
  damage to the repository.


tkt_uuid: 6870863a2e7ee3334928d5e283af6637f947d9c9
type: Documentation
status: Closed
severity: Minor
private_contact: 017b15cc7ca1de5a8053c07fb689d5022cf72fd1
resolution: Unable_To_Reproduce
title: Can not access mailing list archive
comment:
  Come across two potential issues relating to the mail list:

    1.  The link from the wiki page [http://www.fossil-scm.org/index.html/wiki?name=MailingList] shows an empty maill list archive

    2.  The URL [http://lists.fossil-scm.org:8080/pipermail/fossil-users/] to the archive page from the mailman info page [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users] returns 404 Not Found.

  Regards

  <hr><i>kkinnell added on 2009-01-05 16:12:16:</i><br>
  I've added a note to the [MailingList] wikipage to the effect that the link from
  the [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users|mailman page] to the [http://lists.fossil-scm.org:8080/cgi-bin/mailman/private/fossil-users|archives] should not be trusted.

  I haven't been able to reproduce the error for the archive link&#8212;the page displays a two-field form for a user id & password.  The page requires JavaScript to be enabled.

  <hr><i>anonymous added on 2009-01-06 10:33:28:</i><br>

  I can confirm that the link works from the wiki page. Maybe it was because I'd just registered but unless I going nuts you'll just have to believe me that it was showing empty archive for the last 3 months when I tried originally.

  Consider the problem closed.

  Thanks


tkt_uuid: 6883bdd1eff926009ccf60851faa8df37f2c837e
type: Code_Defect
status: Fixed
severity: Minor
foundin: 79b7902cdd
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: fossil pull shows always 0 bytes received
comment:
  Pulling from canonical fossil repository shows always "0 bytes received" regardless of bytes transferred.

  <pre>
  c:\soft\bin>fossil.exe ver
  This is fossil version [79b7902cdd] 2011-01-01 03:06:47 UTC
  c:\soft\bin>fossil.exe pull http://www.fossil-scm.org/ -R myfossilclone_canonical.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:             177          2          0          0
  Received:        1688         36          0          0
  Sent:             271          4          0          0
  Received:        4299         38          1          1
  Sent:             177          2          0          0
  Received:        1688         36          0          0
  Total network traffic: 926 bytes sent, 0 bytes received
  </pre>

  <hr /><i>drh added on 2011-01-02 17:41:48 UTC:</i><br />
  I am unable to replicate the problem on Linux, Windows (natively built), or
  Windows (cross-compiled).  Are you using the precompiled binary, or is this
  something that you built yourself?

  <hr /><i>anonymous added on 2011-01-02 18:48:41 UTC:</i><br />
  I was using my fossil build prepared with mingw under msys. But just now I downloaded precompiled version from fossil site. It shows on my system (Czech win XP with service pack 3) similar picture.

  <pre>
  c:\soft\bin>c:\soft\bin\fossil-w32-20110101030647.exe pull http://www.fossil-scm.org/ -R myfossilclone_canonical.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:             177          2          0          0
  Received:        1780         38          0          0
  Sent:             224          3          0          0
  Received:        2254         39          1          0
  Sent:             177          2          0          0
  Received:        1780         38          0          0
  Total network traffic: 903 bytes sent, 0 bytes received

  </pre>

  <hr /><i>anonymous added on 2011-01-03 19:55:36 UTC:</i><br />
  I wonder what is happening here. If I patch file src/xfer.c, I can see one or another value correct. I can't see correct print of both values. I've checked it on Czech Win 2000 and XP systems:

  Microsoft Windows 2000 [Verze 5.00.2195]
  (C) Copyright 1985-1999 Microsoft Corp.

  Microsoft Windows XP [Verze 5.1.2600]
  (C) Copyright 1985-2001 Microsoft Corp.

  patch:<br>
  <verbatim>
  Index: src/xfer.c
  ===================================================================
  --- src/xfer.c
  +++ src/xfer.c
  @@ -1567,10 +1567,14 @@

       /* Stop the cycle if the server sends a "clone_seqno 0" card */
       if( cloneSeqno<=0 ) go = 0;
     };
     transport_stats(&nSent, &nRcvd, 1);
  +  fossil_print("%lld bytes sent, %lld bytes received\n",nSent, nRcvd);
  +  fossil_print("%lld bytes received, %lld bytes sent\n",nRcvd, nSent);
  +  fossil_print("%lld bytes sent\n",nSent);
  +  fossil_print("%lld bytes received\n",nRcvd);
     fossil_print("Total network traffic: %lld bytes sent, %lld bytes received\n",

                  nSent, nRcvd);
     transport_close();
     transport_global_shutdown();
     db_multi_exec("DROP TABLE onremote");
  </verbatim>

  output:<br>
  <pre>
  fossil.exe pull http://www.fossil-scm.org/ -R myfossilclone_canonical.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:             177          2          0          0
  Received:        2286         49          0          0
  291 bytes sent, 0 bytes received
  377 bytes received, 0 bytes sent
  291 bytes sent
  377 bytes received
  Total network traffic: 291 bytes sent, 0 bytes received
  </pre>

  <hr /><i>anonymous added on 2011-01-03 22:39:11 UTC:</i><br />
  I can confirm check-in [d394120c42] fixes issue I've seen with fossil pull command. Thanks


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: 68c7f7bee9513021546efac9166a70674f663e0b
type: Code_Defect
status: Fixed
severity: Minor
foundin: 37f295c310
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: remote-url command doesn't persist username and password
comment:
  the remote-url command should preserve the username and password that are embedded in the url, but it does not.  my system is a windows system, if that makes a difference.  however, i think the problem is in remote_url_cmd() where it stores g.urlCanonical, which strips the usr:pwd@ from the url.   process_sync_args(), by comparison, will take <nowiki>arg[2]</nowiki> over g.urlCanonical as long as the url does not refer to a file.  i think remote_url_cmd() should do the same.
  <pre>
  PS C:\fossil\fossil> fossil remote-url --show-pw
  http://rwilson:password@www.fossil-scm.org/
  PS C:\fossil\fossil> fossil remote-url http://a:b@www.fossil-scm.org/
  http://www.fossil-scm.org/
  PS C:\fossil\fossil> fossil remote-url --show-pw
  http://www.fossil-scm.org/
  PS C:\fossil\fossil> fossil ver
  This is fossil version [37f295c310] 2009-09-21 19:19:20 UTC
  PS C:\fossil\fossil>
  </pre>

  <hr><i>drh added on 2009-10-31 14:08:58:</i><br>
  Check-in [11ecd5c0b512fdea2565a133e9dec19c4ba81e27]


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: 6981de95b677bcc5ba7da4818015f1e5c049463f
type: Build_Problem
status: Closed
severity: Important
foundin: Fossil-86cbb69af2
private_contact: eddb745d665b3169de623ffaba97bc345afe81f5
resolution: Fixed
title: Makefile for OpenSolaris/Solaris is not correct
comment:
  With following diff of Makefile,

  <verbatim>
  root@600m:/export/home/tjyang/Fossil-076f7adff2# diff Makefile Makefile.orig
  39c39
  < # LIB += -lsocket
  ---
  > # LIB += lsocket
  41c41
  < LIB += -lsocket -lnsl
  ---
  > # LIB += -lsocket -lnsl
  root@600m:/export/home/tjyang/Fossil-076f7adff2#
  </verbatim>

  I was able to build fossil on opensolaris b124.

  <verbatim>
  root@600m:/export/home/tjyang/Fossil-076f7adff2# uname -a
  SunOS 600m 5.11 snv_122 i86pc i386 i86pc Solaris
  root@600m:/export/home/tjyang/Fossil-076f7adff2# cat /etc/release
                         OpenSolaris Development snv_122 X86
             Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                          Use is subject to license terms.
                              Assembled 28 August 2009
  root@600m:/export/home/tjyang/Fossil-076f7adff2# ls -l fossil
  -rwxr-xr-x 1 root root 1582864 2009-10-13 23:37 fossil
  root@600m:/export/home/tjyang/Fossil-076f7adff2#
  </verbatim>

  <hr><i>stephan added on 2009-10-17 12:07:44:</i><br>
  This seems to depend on the OpenSolaris version. i added those lines about a year ago, and -lnsl wasn't needed on the Nexenta OpenSolaris i used at the time. i don't remember if it was an error to link against it, though.

  <hr><i>anonymous added on 2009-10-18 02:26:59:</i><br>
  at least following diff need to be applied. "lsocket" need to be typed as "-lsocket".

  <nowiki> 
  <pre>
  < # LIB += -lsocket
  ---
  > # LIB += lsocket
  </pre>
  </nowiki> 


  tj yang

  <hr><i>anonymous added on 2009-12-29 19:15:49:</i><br>
  Hi, Can someone with upload/write permission to correct the error for Solaris/OpenSolaris OS.

  1.
  <nowiki> 
  <pre>
  .o sync.o tag.o th_main.o timeline.o tkt.o tktsetup.o undo.o update.o url.o user.o verify.o vfile.o wiki.o wikiformat.o winhttp.o xfer.o zip.o sqlite3.o th.o th_lang.o -lz  -lsocket
  Undefined                       first referenced
   symbol                             in file
  gethostbyname                       http_socket.o  (symbol belongs to implicit dependency /lib/libnsl.so.1)
  inet_addr                           http_socket.o  (symbol belongs to implicit dependency /lib/libnsl.so.1)
  inet_ntoa                           cgi.o  (symbol belongs to implicit dependency /lib/libnsl.so.1)
  ld: fatal: symbol referencing errors. No output written to fossil
  collect2: ld returned 1 exit status
  gmake: *** [fossil] Error 1
  root@600m:/pub/fossil/Fossil-86cbb69af2#
  </pre>
  </nowiki>

  <hr><i>anonymous added on 2009-12-29 19:24:56:</i><br>
  Please apply following patch to Makefile. I tested on on Solaris 10(sparc and x86) and OpenSolaris 124 up to 130 revision.

  <nowiki>
  <pre>
  --- Makefile.orig       2009-12-29 13:20:21.449765912 -0600
  +++ Makefile    2009-12-29 13:20:54.935476106 -0600
  @@ -35,9 +35,7 @@
   #    chroot jail.
   #
   LIB = -lz $(LDFLAGS)
  -# If you're on OpenSolaris:
  -# LIB += lsocket
  -# Solaris 10 needs:
  +# Solaris 10/OpenSolaris  needs:
   # LIB += -lsocket -lnsl
   # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11.

  </pre>
  </nowiki>

  <hr><i>anonymous added on 2009-12-29 20:19:21:</i><br>
  Correction, OpenSoaris 130 has following linking error.

  <pre>

  gcc -Os -Wall -o fossil add.o allrepo.o bag.o blob.o branch.o browse.o 
  captcha.o cgi.o checkin.o checkout.o clearsign.o clone.o comformat.o 
  configure.o construct.o content.o db.o delta.o deltacmd.o descendants.o diff.o 
  diffcmd.o doc.o encode.o file.o finfo.o http.o http_socket.o http_transport.o 
  info.o login.o main.o manifest.o md5.o merge.o merge3.o name.o pivot.o pqueue.o
   printf.o rebuild.o report.o rss.o rstats.o schema.o search.o setup.o sha1.o 
  shun.o skins.o stat.o style.o sync.o tag.o th_main.o timeline.o tkt.o 
  tktsetup.o undo.o update.o url.o user.o verify.o vfile.o wiki.o wikiformat.o 
  winhttp.o xfer.o zip.o sqlite3.o th.o th_lang.o -lsocket -lnsl

  Undefined                       first referenced
   symbol                             in file
  crc32                               zip.o
  deflateEnd                          blob.o
  deflateInit2_                       zip.o
  uncompress                          blob.o
  compress                            blob.o
  deflate                             blob.o
  deflateInit_                        blob.o
  ld: fatal: symbol referencing errors. No output written to fossil
  collect2: ld returned 1 exit status
  gmake: *** [fossil] Error 1
  root@600m:/pub/fossil/Fossil-86cbb69af2#
  root@600m:/pub/fossil/Fossil-86cbb69af2# 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/fossil/Fossil-86cbb69af2#

  </pre>

  <hr><i>anonymous added on 2009-12-29 20:30:15:</i><br>
  This is the new patch for OpenSolaris 130, zlib need to be described in LIB variable.

  <pre>

  --- Makefile.orig       2009-12-29 13:20:21.449765912 -0600
  +++ Makefile    2009-12-29 14:27:05.946202215 -0600
  @@ -35,10 +35,8 @@
   #    chroot jail.
   #
   LIB = -lz $(LDFLAGS)
  -# If you're on OpenSolaris:
  -# LIB += lsocket
  -# Solaris 10 needs:
  -# LIB += -lsocket -lnsl
  +# Solaris 10/OpenSolaris  needs:
  +LIB += -lsocket -lnsl
   # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11.

  </pre>

   gcc info on opensolaris 130.

  <pre>
  root@600m:/pub/fossil/Fossil-86cbb69af2# gcc -v
  Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/specs
  Configured with: /builds2/sfwnv-gate/usr/src/cmd/gcc/gcc-3.4.3/configure 
  <snip>
  -languages=c,c++,f77,objc --enable-shared
  Thread model: posix
  gcc version 3.4.3 (csl-sol210-3_4-20050802)
  root@600m:/pub/fossil/Fossil-86cbb69af2#

  </pre>

  <hr /><i>steveb added on 2011-07-22 22:46:36 UTC:</i><br />
  Can you test with the latest version?

     ./configure; make

  It should find and link against all the appropriate libraries.

  <hr /><i>steveb added on 2011-11-18 05:21:55 UTC:</i><br />
  No response from the OP, but it should be fixed.


tkt_uuid: 69a4323277edc3e90c1b12502557de60a20d2d8c
type: Feature_Request
status: Closed
severity: Minor
resolution: Rejected
title: navegation
comment:
  Because is possible have large lists (i.e. 200 events in timeline) i think woud be very usefull :

    *  Keep the toolbar fix at top, ever visible; and/or
    *  Have button(s) to top

  <hr><i>anonymous claiming to be Thomas added on 2009-08-30 16:00:24:</i><br>
  This is easy to do through the CSS editor. I don't think that Fossil needs to be a presentation/layout engine, so it's probably best just to merge these with the existing styles:

  <pre>
  body {
    padding-top: 2em;
  }

  div.mainmenu {
    position: fixed;
    top: 0; 
    left: 0;
    width: 100%;
  }
  </pre>

  Tested in Safari and Firefox.

  <hr /><i>lrem added on 2011-08-30 13:46:35 UTC:</i><br />
  This is clearly a matter of taste. Going back to top of the page is a matter of a single button press or mouse gesture, so it does not change usability by much. Finally, if someone desires this on his own Fossil page, he can just edit the skin.


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: 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: 6b310619203a65a3fcca6c7279f0ffa6caa46313
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: f969b6cdde
private_contact: 09bcfe9beb6bd1f9361d71b153c193630ed2ac65
resolution: Fixed
title: Artifacts da39a3ee5e6b4b0d3255bfef95601890afd80709 (empty files)
comment:
  The da39a3ee5e artifact (all empty files) shown in single long line -
  http://www.fossil-scm.org/index.html/artifact/da39a3ee5e
  but should be separate line for each file (insert BR before 'Also file').

  <hr /><i>dmitry added on 2011-09-08 18:47:47 UTC:</i><br />
  Fixed in [49402fc722].


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: 6b6c379afe9ca538d2714561a217e613e2a12c46
type: Code_Defect
status: Fixed
severity: Cosmetic
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: progress display goes over 100%
comment:
  Rebuild of local copy of SQLite Doc repo shows 100.1% of process finished.

  <pre>
  c:\bin>fossil rebu SQLiteDocRepo.fossil
    100.1% complete...
  </pre>

  <hr /><i>dmitry added on 2012-03-01 01:43:15 UTC:</i><br />
  Fixed in [3a44f95f40].


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: 6b8ee7d40d5d7430e4ba816c888a73ba92f3eb2e
type: Incident
status: Closed
private_contact: f90bcb24dfca980c917cc6e29c04b9cd06605ba9
resolution: Fixed
title: can't log on
comment:
  Can't seem to log on or commit as user robert.

  Maybe I forgot my password ...

  <hr><i>robert added on 2009-05-08 15:40:43:</i><br>
  Silly programmer lost his password! Appologies


tkt_uuid: 6bc1b5d7a7f2bb2407b60c9ea5c15a2bb7a10f86
type: Code_Defect
status: Closed
severity: Important
foundin: fossil-linux-x86-dec2c22d9d
private_contact: 22e3b7a55e291d179313f4c2e34877f09743ee31
resolution: Works_As_Designed
title: Can't log out
comment:
  I created a new repository file and did 'fossil open' on a new empty code directory.  I did 'fossil ui' to get to the web page and found that I was logged in as my Unix login username.

  I went to the setup page and created a new user with full privileges.  Then I went to the logout page and tried to log in as the new user.  No effect.  Still logged in as Unix user.

  I went back to the logout page and hit the logout button.  No effect.  Still logged in as Unix user.

  <hr><i>drh added on 2008-11-23 11:42:25:</i><br>
  By default, web connections from 127.0.0.1 have full setup privilege without
  needing to log in.  To disable this, go to Setup:Access and check the box
  at the top that says "Require password for local access".


tkt_uuid: 6c5471445173a17fffa6aaf867f2f7d3da8f8151
type: Code_Defect
status: Open
severity: Important
foundin: c492eab395
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: fossil clone is slow
comment:
  "fossil clone" over wire is extremely slow for large repositories.

  Compare:

      117.76s user 3.48s system 90% cpu 2:13.33 total

  for clone from local file to local file and

      349.86s user 17.71s system 59% cpu 10:16.45 total

  for clone from http://localhost:8080.

  Total network traffic is around 20MB (for a 40MB repository), so that would be 8min for the data transfer or 42KB/s, which is clearly not acceptable.

  <hr /><i>drh added on 2010-10-03 18:04:00:</i><br />
  Once again, this is completely outside of our 3-year experience deploying
  Fossil.  It suggests that your repository has a very different structure
  that what we are used to seeing.  If you could share your repository with
  us, that would be helpful in getting to the root of the problem.

  <hr /><i>anonymous added on 2010-10-05 16:16:54:</i><br />
  For the record, with the recent small stack fix, I see:

  <verbatim>
  % time ~/work/fossil/fossil clone http://localhost:8080 test-clone
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:     1236613      26882          0          0
  Send:           10025        225          0          0
  Received:      104025        206         34        166
  Send:           18849        405          0          0
  Received:      430475        402         47        353
  Send:           37649        801          0          0
  Received:      391721        802         53        747
  Send:           75249       1601          0          0
  Received:     1401506       1602        133       1467
  Send:          150449       3201          0          0
  Received:     8329951       3202        527       1132
  Send:          155995       3319          0          0
  Received:     5152386       3320         19          0
  Send:            9449        201          0          0
  Received:    11672693        202         51          4
  Send:            9449        201          0          0
  Received:     5011269        202         19          0
  Send:            9449        201          0          0
  Received:     4747929        202         91        109
  Send:           18849        401          0          0
  Received:     2544348        402        246        154
  Send:           37649        801          0          0
  Received:     3850220        802        323        477
  Send:           75249       1601          0          0
  Received:     2532722       1602        317       1283
  Send:          150449       3201          0          0
  Received:     2519081       3202        216       2984
  Send:          300849       6401          0          0
  Received:    11316003       6402        577       2470
  Send:          286467       6095          0          0
  Received:     5879597       6096          2          3
  Send:            9449        201          0          0
  Received:     2362448        202         98        102
  Send:           18849        401          0          0
  Received:     1664619        402        156        244
  Send:           37649        801          0          0
  Received:     3444746        802        368        432
  Send:           75249       1601          0          0
  Received:     5068184       1602        144         21
  Send:           15559        331          0          0
  Received:     2669945        332        106        224
  Send:           31069        661          0          0
  Received:      236198        662          0        660
  Send:           62089       1321          0          0
  Received:      506061       1322          0       1320
  Send:          124129       2641          0          0
  Received:      988722       2642          0       2640
  Send:          248209       5281          0          0
  Received:     2033552       5282          0       5280
  Send:           50903       1083          0          0
  Received:     1696392       1084          4       1078
  Total network traffic: 1066680 bytes sent, 28570580 bytes received
  Rebuilding repository meta-data...
  26881 (100%)...
  project-id: 72f6eddf4e758c90816c58765010339df04f22f9
  server-id:  006b3b3f853f6333ad52939d9d2643dd2980db40
  admin-user: joerg (password is "***")
  11633 (99%)...
  ~/work/fossil/fossil clone http://localhost:8080 test-clone  388.29s user 17.44s system 79% cpu 8:31.89 total
  </verbatim>

  E.g. better, but still a lot of time. Another observation is the space usage of the new clone:

  Database Stats:	197170 pages, 1024 bytes/page, 149894 free pages, UTF-8, delete mode 

  The clone is four times the necessary size.

  <hr /><i>wolfgang added on 2010-10-05 17:13:36:</i><br />
  i did a small performance test on my windows machine with a DMC compiled version [63d91f0b87] 2010-10-05 16:37:40 UTC:

    *  Using localhost http clone for sqlite(~20MB transfered) 3 minutes running against a local "fossil server" service, CPU load goes up to 90%
    *  Using file copy clone for sqlite 1 minutes<br>which is infact a filecopy followed by a rebuild

  I think, these times are OK(2 minutes for 20MB), if we remember, that running the http-variant uses 2 fossil instances and all traffic is checked by firewall and virus scanner and that fossil isn't designed as a high-speed html server.





  <hr /><i>anonymous added on 2010-10-05 20:25:56:</i><br />
  For fossil to be a practical alternative to cvs/svn/git/..., it has to perform well for at least two network related tasks:
  (1) Initial clone
  (2) Update of a recent enough clone.

  The test case here is not effected by network bandwidth or latency. The test case is not bound by disk bandwidth either, since it is small enough to fit comfortably into memory. As such, it should be a lot faster. For example, I don't understand why it needs so many round trips. The initial clone is the easy problem, both side should know exactly what the other side has.

  I wouldn't be surprised if this kind of problems don't happen with a less skewed distribution of the commits (1/3 of all commits to one file), but that doesn't mean it can't be done better. I'm going to try later with a repository that I can publish, so hopefully it can be sorted out.

  <hr /><i>anonymous claiming to be Alexey Pechnikov added on 2010-10-06 18:08:11:</i><br />
  On my Atom netbook 1,6Ggh I have:

  <verbatim>
  $ time fossil clone http://sqlite.org/src sqlite-src.fossil
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:     1607865      34952          0          0
  Send:           10025        225          0          0
  Received:      138945        244          7        193
  Send:           18849        415          0          0
  Received:      153088        430          3        397
  Send:           37649        801          0          0
  Received:      876957        830         71        729
  Send:           75249       1601          0          0
  Received:     1018521       1630         63       1537
  Send:          150449       3201          0          0
  Received:     1896100       3230         63       3137
  Send:          300849       6401          0          0
  Received:     3211644       6430         91       6309
  Send:          601649      12801          0          0
  Received:     5286633      12830        176       6867
  Send:          662091      14087          0          0
  Received:     5726286      14116        183       5387
  Send:          457735       9739          0          0
  Received:     5348552       9768        166       2971
  Send:          294927       6275          0          0
  Received:     5248224       6304        281        629
  Send:           85589       1821          0          0
  Received:     5006033       1850        486       1323
  Send:          170095       3619          0          0
  Received:     5147248       3648        132        472
  Send:           56825       1209          0          0
  Received:     3077764       1238        123       1085
  Send:           97339       2071          0          0
  Received:     5100687       2100        291       1027
  Send:           35393        753          0          0
  Received:     5010920        782        170        445
  Send:            6488        138          0          0
  Received:     3018371        167         66         71
  Total network traffic: 1607303 bytes sent, 19503853 bytes received
  Rebuilding repository meta-data...
  34951 (100%)...
  project-id: 2ab58778c2967968b94284e989e43dc11791f548
  server-id:  fc36ac9c5028182ec9aa22eed764f8f253d0db91
  admin-user: veter (password is "******")

  real	7m3.915s
  user	2m22.817s
  sys	0m10.765s

  $ ls -hl sqlite-src.fossil 
  -rw-r--r-- 1 veter veter 32M Окт  6 21:58 sqlite-src.fossil
  </verbatim>

  I think the speed of 77 kB/s is really slow. Well, the "Rebuilding repository meta-data..." state can be slow... but why is slow the artifacts downloading and inserting?

  See this test:
  <verbatim>
  $ time sqlite3 sqlite-src.fossil '.dump'>sqlite.dump

  real	0m3.276s
  user	0m2.780s
  sys	0m0.460s

  $ time sqlite3 sqlite-src2.fossil '.read sqlite.dump'

  real	0m14.839s
  user	0m13.357s
  sys	0m0.396s
  </verbatim>

  Yes, SQLite is fast and Fossil is very slow.

  <hr /><i>anonymous added on 2010-10-08 10:24:59:</i><br />
  Trying the clone the initial conversion of the pkgsrc repository:

  <verbatim>
  fossil: *** time skew *** server time differs by 4.0 minutes
  </verbatim>

  after the initial "Send". That's when talking with localhost.

  <hr /><i>anonymous added on 2010-10-08 12:43:55:</i><br />
  The initial trace of the pkgsrc repository can be found at ftp://ftp.netbsd.org/pub/NetBSD/misc/repositories/fossil/pkgsrc-fossil for download. fossil clone from localhost has consumed 2h of CPU time now with no visual progress. I'll upload a newer version later with all branches, but that's still work-in-progress.

  <hr /><i>drh added on 2010-10-08 14:31:42:</i><br />
  A very impressive repository - thanks for sharing it.

  pkgsrc.fossil is about 10x or 100x larger than any repository we have dealt
  with before.  SQLite is really the biggest repository that Fossil deals with
  on a regular basis.  SQLite has 10.3 years of history compared to 13.1 years
  of history with pkgsrc.  But there have been an average of just 2.2 checkins
  per day to SQLite for a total of 8446 checkins, whereas pkgsrc has had on
  average almost 40 checkins per day for a total of 190281 checkins.  
  Fossil likes to store the original content of the latest checkin as
  full-text and then store prior versions as deltas from the latest.  (Most
  other VCSes do the same - RCS in particular.)  In SQLite, the longest delta
  chain is therefore 8446 deep - which is deep but not unmanageable.  With
  pkgsrc, the longest change is a whopping 190281 deep - 22x deeper.  It
  makes me wonder if we shouldn't trick fossil into storing a full-text
  version of each file after some fixed number of deltas - for example
  store full text after each 500 or 1000 deltas.  That will make the
  respository larger, but it will also make a 100x performance improvement
  when trying to access files that are very deep in the delta stack.

  SQLite has 1057 separate files.  We host a few other repositories with
  more than this, but never more than a couple thousand.  pksrc, on the
  other hand has over 100,000 separate files.  Many of the file browsing
  links scan the entire list of files.  With only a thousand or so, this
  is not problem.  But with 100x as many, those pages are slow.  We might
  need to reconsider the way some of the file browsing pages are rendered.

  The huge number of files also makes for large manifests.  I looked at
  one of the more recent manifests in pkgsrc and it was 60936 lines long
  and contains nearly 5MB of text.  There are about 340MB of content in
  a checkout.  Fossil does lots of consistency checks for each check-in,
  which involves computing MD5 checksums over the entire checkout, twice.
  Running MD5 over 720MB takes some time.  A simple checkin on my 
  4-year-old desktop used 18 seconds of CPU time and 55 seconds of
  real-time.  (Note that a clone of the repository was running in parallel
  while doing the performance test of the previous sentence.)  Checkins
  would be very fast if we turned off the error checks.  Maybe that
  needs to be an option.

  My clone (via localhost) has made substantial progress in 33 minutes
  of CPU time.  But it seems to be stuck now.  

  <hr /><i>anonymous claiming to be urmil added on 2010-10-08 14:42:53:</i><br />
  I was thinking of getting some help to import our ~10yr old cvs repository to fossil. After reading above post, I'm thinking other way... My repository, when checked out, takes 1.7 GB. I'm scared to import it to fossil - wonder how long will it take to commit :(


  <hr /><i>anonymous added on 2010-10-09 07:48:14:</i><br />
  urmil: The pkgsrc tree has a checkout size of 500MB. The CVS repository is around 4GB and the temporary database that contains all revisions undeltafied (but compressed) is around 8GB. I plan to make my tools public at some point to help others with migrations, but you might want to wait a bit if you have many files.

  <hr /><i>drh added on 2010-10-09 10:21:06:</i><br />
  The problem with pkgsrc is not the size of the checkout.  The
  [http://www.sqlite.org/slt/timeline | SQL Logic Test] program for SQLite
  is in a Fossil repository where each checkout is about 1.3GB in size
  and it works fine.  The issue Fossil has with pkgsrc is the huge number
  of files in a check-out, about 60k.  SQL Logic Test is a much larger
  checkout in total size, but it only has 645 files.  In other words,
  pkgsrc has a huge number of very small files and SQL Logic Test has
  a small number of very large files.  Fossil currently handles the latter
  case fine - it is the former case that is giving trouble.

  I have a strategy, which I will describe separately, to address the
  pkgsrc scaling issue of a large number of small files.

  <hr /><i>renez added on 2010-10-10 11:07:53:</i><br />
  Pkgsrc is a very special application. I don't think there many more like that. Not your typical run of the mill source code. I wonder has it been migrated to GIT?
  What are there the performance figures.
  I hope we are not going to optimize fossil for this special purpose!

  <hr /><i>anonymous added on 2010-10-10 12:44:41:</i><br />
  The pkgsrc repository is not that special. The very same kind of issue you will find for pretty much any large scale repository to some extend. I strongly suspect that the fixes for the issues found here are going to help smaller repositories too. It just won't be that visible in them.

  <hr /><i>renez added on 2010-10-10 18:50:17:</i><br />
  No it is special because in essence it are all small unrelated projects

    *  x11/kde is unrelated to x11/gtk
    *  editor/abiword not related editor/xxxx

  It is not about source code control. I have the impression that pkgsrc is using the wrong tool for the job.

  <hr /><i>anonymous added on 2010-10-10 23:35:53:</i><br />
  Given that there are a lot of commits that span all top-level directories and up to 2000 files or so, your assumptions obviously don't hold. The repository is also only one of two majors modules on (anon)cvs.netbsd.org and the main tree (src) is even larger in almost every regard.

  <hr /><i>anonymous added on 2010-10-11 19:25:05:</i><br />
  I've replaced ftp://ftp.netbsd.org/pub/NetBSD/misc/repositories/fossil/pkgsrc-fossil with a newer trace that contains all non-vendor branches.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-12-21 14:04:19:</i><br />
  With [d16ccde510] and a fresh trace of pkgsrc, fossil clone http://localhost:8080 now takes:

  <verbatim>
  real	5m41.922s
  user	1m52.690s
  sys	0m15.750s
  </verbatim>

  ...until the rebuild starts. IO delays can be neglected and this is completely dominated by insufficient asynchronous processing between client and server. This time is not masked by network speed either.

  <hr /><i>anonymous added on 2011-05-10 12:42:40 UTC:</i><br />
  The DragonFly BSD project maintains a git mirror of pkgsrc at <tt>git://git.dragonflybsd.org/pkgsrcv2.git</tt>

  Here are some git clone times for comparison.  First from the network (slow connection 389 KB/s) and then from local.

  <pre>
  $ cd /tmp
  </pre>
  <pre>
  $ time git clone --mirror git://git.dragonflybsd.org/pkgsrcv2.git pkgsrcgit
  </pre>
  <pre>
  Cloning into bare repository pkgsrcgit...
  remote: Counting objects: 1590487, done.
  remote: Compressing objects: 100% (470270/470270), done.
  remote: Total 1590487 (delta 1117330), reused 1564721 (delta 1096191)
  Receiving objects: 100% (1590487/1590487), 473.92 MiB | 389 KiB/s, done.
  Resolving deltas: 100% (1117330/1117330), done.
  </pre>
  <pre>
  real	26m57.789s
  user	2m35.646s
  sys	0m45.874s
  </pre>
  <pre>
  $ time git clone --mirror file:///tmp/pkgsrcgit pkgsrcgit2
  </pre>
  <pre>
  Cloning into bare repository pkgsrcgit2...
  remote: Counting objects: 1590487, done.
  remote: Compressing objects: 100% (449131/449131), done.
  Receiving objects: 100% (1590487/1590487), 473.92 MiB | 8.93 MiB/s, done.
  remote: Total 1590487 (delta 1117330), reused 1590487 (delta 1117330)
  Resolving deltas: 100% (1117330/1117330), done.
  </pre>
  <pre>
  real	7m0.143s
  user	3m24.122s
  sys	0m47.543s
  </pre>

  Then the equivalent of a "fossil open" which actually checked out 63027 files into the local directory.

  <pre>
  $ time git clone /tmp/pkgsrcgit pkgsrcopen
  </pre>
  <pre>
  Cloning into pkgsrcopen...
  done.
  </pre>
  <pre>
  real	0m56.812s
  user	0m5.374s
  sys	0m15.589s
  </pre>

  Then a "git status"

  <pre>
  $ cd pkgsrcopen
  </pre>
  <pre>
  $ time git status
  </pre>
  <pre>
  # On branch master
  nothing to commit (working directory clean)
  </pre>
  <pre>
  real	0m10.397s
  user	0m0.818s
  sys	0m3.721s
  </pre>


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: 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: 6cd35b3ca5b47cbd524787a9ea78809287504b0f
type: Code_Defect
status: Closed
foundin: dec2c22d9d
resolution: Rejected
title: self referring links determined wrong in cgi mode
comment:
  In cases where the cgi is called called by a handler and not directly in the url fossil generates ugly links. you can see an example of this at http://roxirc.lighter.net/. suggest using REQUEST_URI rather than SCRIPT_NAME

  <hr><i>drh added on 2008-11-26 02:09:52:</i><br>
  I looked at [http://roxirc.lighter.net/] but I didn't find any ugly links,
  at least not links that I think are ugly.  Perhaps you could provide some
  example of the ugly links you have in mind and your suggested improvements.

  <hr><i>kkinnell added on 2008-12-01 15:23:02:</i><br>
  [RockShoxBugs] has this listed & struck; the bug is not visible at the given URL.  I believe this can be closed.

  <hr><i>anonymous claiming to be rockshox added on 2008-12-02 18:43:17:</i><br>
  sorry i couldnt get back to you sooner. please take another look at http://roxirc.lighter.net you will notice there is no cgi in the url, but all the links have fossil.cgi in them. if you click any link and then remove the fossil.cgi the page still works fine. the apache config for this is:

  DirectoryIndex home

  &lt;Location "/fossil.cgi">
  SetHandler None
  &lt;/Location>


  <hr><i>anonymous added on 2008-12-02 18:44:07:</i><br>
  i forgot 2 lines


      Action fossil /fossil.cgi 
      SetHandler fossil


  <hr><i>drh added on 2008-12-03 14:44:05:</i><br>
  According to [http://www.ietf.org/rfc/rfc3875 | rfc3876], REQUEST_URI is not
  a part of the Common Gateway Interface (CGI) specification.  SCRIPT_NAME is
  what should be used to create self-referential hyperlinks.

  Everything works correctly as currently implemented.
  You are asking for a change that
  will make URLs more cosmetically appealing when using fossil under a particular
  configuration of Apache.  Cosmetics are nice.  But everything works now.  And
  to implement this change would probably break other configurations.  I think
  it is much better to confirm to standards and work across all platforms than
  to try to make the URLs a little shorter when using certain configurations
  of Apache.

  Apache is widely used, but it is not universal.  The main fossil website
  is an example of a website that does not use Apache.  www.fossil-scm.org
  uses a single-file webserver dispatched using inetd and called 
  [http://www.sqlite.org/docsrc/finfo?name=misc/althttpd.c | althttpd].


tkt_uuid: 6dba56543b89dc41463174c63c9f11e798c9cfb4
type: Code_Defect
status: Closed
severity: Important
foundin: d982f8944c
private_contact: 657fecc17bdc2306d28088355d2cfe0485c38cab
resolution: Fixed
title: fossil ticket --quote segfaults when adding to the comment
comment:
  <pre>
  $ fossil new foo.fossil
  ...
  $ fossil ticket -R foo.fossil add title test
  ticket add succeeded for UID a0e7afe56ceaf2e28dfa79bc1db34aa2a767e7c1
  $ fossil ticket -R foo.fossil change a0e7afe56 comment 'foo' --quote
  ticket set succeeded for UID a0e7afe56ceaf2e28dfa79bc1db34aa2a767e7c1
  $ fossil ticket -R foo.fossil change a0e7afe56 +comment 'foo' --quote
  segmentation fault
  </pre>

  <hr /><i>mistachkin added on 2012-08-08 03:47:31 UTC:</i><br />
  Reading the code, I'm somewhat confused about the proposed fix.  Perhaps it be something like this instead, given the nature of the other <b>if</b> block enclosed with <b>if( tktEncoding == tktFossilize )</b>?

  <verbatim>
  Index: src/tkt.c
  ==================================================================
  --- src/tkt.c
  +++ src/tkt.c
  @@ -1167,11 +1167,11 @@
           }else{
             blob_appendf(&tktchng, "J%s%s %#F\n", zPfx,
                          azField[i], strlen(zValue), zValue);
           }
           if( tktEncoding == tktFossilize ){
  -          free(azValue[i]);
  +          free(zFValue);
           }
         }
         blob_appendf(&tktchng, "K %s\n", zTktUuid);
         blob_appendf(&tktchng, "U %F\n", zUser);
         md5sum_blob(&tktchng, &cksum);
  </verbatim>


  <hr /><i>rmax added on 2012-08-08 11:18:20 UTC:</i><br />
  Indeed, the distinction whether it is azAppend&#91;i&#93; or azValue&#91;i&#93; that needs to be freed is already being made two if blocks above, so we don't need to repeat it here and can just free zValue.

  <hr /><i>drh added on 2012-08-08 12:35:16 UTC:</i><br />
  Nothing needs to be freed here.  Remember that an instance of Fossil runs
  a single command the exits.  We don't need to worry about leaking a few
  bytes of memory associated with a ticket field.  The OS will clean it up
  for us.

  The simplest and safest fix is to simply omit the free() call.

  <hr /><i>rmax added on 2012-08-08 12:52:38 UTC:</i><br />
  Yes, [0bc2a94104] fixes it.


tkt_uuid: 6e23fe110139615d5a6966506e5c4fd8129e1a62
type: Code_Defect
status: Fixed
severity: Minor
foundin: 1.23
private_contact: 657fecc17bdc2306d28088355d2cfe0485c38cab
resolution: Fixed
title: "make install" dosn't create the target directory
comment:
  <verbatim>
  --- src/main.mk
  +++ src/main.mk
  @@ -269,6 +269,7 @@
   all:   $(OBJDIR) $(APPNAME)
   
   install:       $(APPNAME)
  +       mkdir -p $(INSTALLDIR)
          mv $(APPNAME) $(INSTALLDIR)
   
   $(OBJDIR):
  </verbatim>


tkt_uuid: 6e51013097c17eada8598e1cd264706376e7b30b
type: Feature_Request
status: Fixed
severity: Minor
foundin: f93a54d0ba
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Avoid "obj" directory for builds
comment:
  BSD make has magic code to deal with "obj" as target directory, depending on some special environmental variable. If it exists, it is used automatically as current directories for target commands. This breaks incremental builds because the translate program is called with relative path to top.

  It would be nice if the directory could be renamed to something else.

  <hr /><i>anonymous claiming to be james added on 2010-11-09 01:15:37:</i><br />
  I suffer from this same issue on OpenBSD and have to use gmake to get around it. Simply changing OBJDIR = ./obj in Makefile to OBJDIR = ./objs would be enough. Sure it kind of sucks but at least it allows the default bsd make to work after the first time.


tkt_uuid: 6e5d9dd8ec31c8a077d125cff4cb3da66b94dbdc
type: Code_Defect
status: Open
severity: Cosmetic
foundin: [cabf810b0b] 2010-09-29 16:58:40
title: HTML tags show on tickets when running "fossil timeline" on CLI
comment:
  Here's a "screenshot" from the timeline of the Fossil clone showing what's happening:
  <pre><verbatim>$ fossil timeline
  === 2010-10-03 ===
  04:00:09 [33857fed56] Add attachment "verify_at_commit.diff" to ticket
           [76d3ecfdab] (user: anonymous)
  03:14:34 [16e5a2198b] New ticket [76d3ecfdab] <i>verify_at_commit should print
           status</i>. (user: anonymous)
  02:40:24 [2531e176fb] New ticket [2a1e8e3c4b] <i>content_get can recursive too
           deep</i>. (user: anonymous)</verbatim></pre>

  The italic tags are showing for ticket summary lines, which probably should not be given it's running in CLI.


tkt_uuid: 6e81abf24ded94bc749494a68a0a2fc2dcd81ba9
type: Code_Defect
status: Closed
severity: Important
foundin: 20b2767f46a79e845c319bd7aadec34d84ff9bca
private_contact: 9e3254e6e3c2643cc148bab2d55f46bb4c0446f4
resolution: Open
title: -A option is not observed when cloning local files
comment:
  When cloning a local file, the -A option is not observed.

  <verbatim>
  MJanssen@JUNO ~/Documents/Projects/fossil
  $ fossil new test.fossil
  project-id: 6fd8e84a448395e2128c376fa00b6528bf27310c
  server-id:  eb0f9e8df50588841650dae2ca601d6a671ab378
  admin-user: MJanssen (initial password is "2948e5")

  MJanssen@JUNO ~/Documents/Projects/fossil
  $ fossil clone -A admin test.fossil test2.fossil
  Repository cloned into test2.fossil
  Rebuilding repository meta-data...
    100.0% complete...
  project-id: 6fd8e84a448395e2128c376fa00b6528bf27310c
  server-id:  d33bccda11a1a8694943685a9bcfda32c464e089
  admin-user: MJanssen (password is "2948e5")

  MJanssen@JUNO ~/Documents/Projects/fossil
  $ fossil clone -A admin http://xxxx test3.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  Received:     2637198        854        271        155
  Total network traffic: 230 bytes sent, 2636428 bytes received
  Rebuilding repository meta-data...
    100.0% complete...
  project-id: 1cb7c1ee6fbcd866a6fd2bf389a18e972b5b4fd5
  server-id:  8c590369091c4dd8dd91deab6fe2b77be76a7c49
  admin-user: admin (password is "ff9717")
  </verbatim>

  <hr /><i>mjanssen added on 2011-02-03 22:47:27 UTC:</i><br />
  It seems there is a missing db_initial_setup call in the local file branch. Can't currently test if the patch below works (no access to my development machine)

  <verbatim>
  --- src\clone.c
  +++ src\clone.c
  @@ -60,10 +60,11 @@
     if( g.urlIsFile ){
       file_copy(g.urlName, g.argv[3]);
       db_close(1);
       db_open_repository(g.argv[3]);
       db_record_repository_filename(g.argv[3]);
  +    db_initial_setup(0, zDefaultUser, 0);
       db_multi_exec(
         "REPLACE INTO config(name,value)"
         " VALUES('server-code', lower(hex(randomblob(20))));"
         "REPLACE INTO config(name,value)"
         " VALUES('last-sync-url', '%q');",
  </verbatim>

  <hr /><i>anonymous claiming to be mjanssen added on 2011-07-20 23:28:43 UTC:</i><br />
  Fixed in [d86201dce9]


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: 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: 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: 70dd0271356813e9c17c8c84d0957f6a5e1f4ae3
type: Feature_Request
status: Closed
priority: Low
severity: Minor
foundin: Fossil version [a8c3a7ea92] 2008-11-22 19:32:44
private_contact: a2024467242089d1dce2d3a24ac29a8241112db9
resolution: Drive_By_Patch
title: "View Ticket" needs creator
comment:
  When viewing a ticket, it would be helpful to know who opened the ticket, similar to the way you can see who added additional comments.

  <hr><i>drh added on 2008-11-23 12:00:39:</i><br>
  The "Contact" field contains that information, if I understand you correctly.
  But the information is an email address. Many people prefer to keep their
  email addresses private (to minimize spam, I suppose) and so that Contact field
  is not shown unless you are logged in as a user that has the "e" privilege.

  To help prevent exposure of email addresses, SQLite does not store the email
  address in the artifacts that comprise the ticket.  Instead, it stores a
  SHA1 hash of the email address.  A separate database table (the CONCEALED table)
  stores a translation from SHA1 hash back to email address.  The CONCEALED table
  is not transferred on a "clone" or "sync".  You can get a copy of the CONCEALED
  table by doing:

      fossil config pull email

  But that will only work if the person doing the pulling has the "e" privilege
  set.

  <hr><i>anonymous added on 2008-11-24 14:58:24:</i><br>
  I was actually referring to the logged in name of the user who reported, not the email address.  I agree that that should not be displayed.

  For example, this ticket should say "anonymous" since I do not have a login on this system.

  The reason I requested this:  in my company, only the person who opened a bug may close it, the person who fixed it marks it "fixed".  It is helpful to know at a glance who opened a ticket.

  <hr><i>eric added on 2008-11-24 15:36:00:</i><br>
  The userid is available in the ticket history page, do you need more than that?

  <hr><i>anonymous added on 2008-11-24 20:56:32:</i><br>
  Yes, it would be nice to have it on the "View Ticket" page (tktview).

  <hr><i>kkinnell added on 2008-11-25 18:06:41:</i><br>
  You can deal with this by changing your New Ticket HTML.

  Setup->Tickets->New Ticket Page

  The text edit has a copy of the html+th1 code for doing new tickets,
  at the very top is

  <nowiki><pre>
  &lt;th1>
    if {[info exists submit]} {
       set status Open
       submit_ticket
    }
  &lt;/th1>
  </pre></nowiki>

  If you change that to

  <nowiki><pre>
  &lt;th1>
    if {![info exists username]} {set username $login}
    set pstr "[htmlize $login]"
    if {$username ne $login} {
        set pstr "$pstr claiming to be [htmlize $username]"
    }
    set pstr "$pstr posted on [date]"
    if {[info exists submit]} {
       set status Open
       set comment "$pstr\n\n$comment"
       submit_ticket
    }
  &lt;/th1>
  </pre></nowiki>

  You'll get 'so & so posted on somewhen' at the very top of the
  first comment in a ticket.

  Caveat: I haven't tested this quite as extensively as I might...

  Th1 isn't documented much&#8212;yet&#8212;but it's basically specialized Tcl.  You can do quite a bit of customization with it, including changing sqlite tables to suit you.

  <hr><i>anonymous claiming to be kkinnell added on 2008-11-26 15:43:38:</i><br>
  I made that way too hard.  There isn't any need to know anything but the login.  You can just add <nowiki><pre>
      set comment "&lt;i>[htmlize $login] posted on [date]&lt;i>&lt;br>\n$comment"
  </pre></nowiki>
  above the <code>submit_ticket</code> command.


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: 711d04b6d8577d9b061cba94cc503b95b0a41767
type: Feature_Request
status: Closed
severity: Important
foundin: 1.23
private_contact: cd7093095d9cfcb1d94e1ac96bf5d520b20d5cd7
resolution: Fixed
title: only bail out from commit when no selected files are changed
comment:
  When committing a group of files, e.g.
  <pre>fossil commit *.c</pre>
  fossil bails out if any of the *.c files is not changed.
  The -f flag even doesn't work to force this to happen.
  Normally I do this when the directory contains a lot of
  *.c files, and I'm lazy to remember (or type) which ones
  I changed, I only know that ALL files I changed in this
  directory should be committed.

  So, I request to:
  <ul><li>Only bail out if NONE of the selected files changed.
  <li>Use the -f flag to allow committing even if none of
    the selected files changed.</ul>

  Suggestion committed in branch [ticket-711d04b6d8]


tkt_uuid: 71439c64b8d6af66f5e34e6944d003604692d28c
type: Code_Defect
status: Fixed
severity: Severe
foundin: cfbbad3d48
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: fossil pull segfault
comment:
  fossil pull segfaults when remote-url doesn't contain a password since the recent change to obscure the password in the database and the url isn't specified on the command line.


tkt_uuid: 7168128e099238f060a94e06ef9cfe29c373f8b2
type: Feature_Request
status: Fixed
severity: Minor
foundin: all (to date)
resolution: Fixed
title: Add a setting for the default server port
comment:
  It is tiresome always specify an alternative HTTP port using --port 
  command-line option.  A setting to specify an alternative would be a
  nice enhancement.

  <hr><i>drh added on 2008-11-09 16:24:54:</i><br>
  See check-in [02f09cdd6c]


tkt_uuid: 71ada10c65040bd8a59269dd450c00ed42f82186
type: Feature_Request
status: Fixed
severity: Minor
resolution: Fixed
title: Deconstruct command that went away
comment:
  During the GPL -> BSD conversion, the deconstruct command was removed due to licensing issues.
  While this command is not vital to fossil, it's useful for doing backups in a format that is independent of SQLite and for running analysis and other tools.

  It would be nice to have it back.

  <hr /><i>dmitry added on 2011-09-08 21:03:29 UTC:</i><br />
  It's back.


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: 71c9b46198c04e536dd4a8d4e70953a88719092d
type: Code_Defect
status: Fixed
severity: Severe
foundin: 713b8be852 2009-08-28 22:59:27 UTC
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Fixed
title: fossil clone fails on windows when username contains a space
comment:
  on a windows machine using powershell, my fossil clone attempts to use "ron wilson" as my login name without quotes.  this is my windows account name.<br>
  <br>
  PS C:\fossil> fossil clone http://www.fossil-scm.org/ fossil.fossil<br>
                  Bytes      Cards  Artifacts     Deltas<br>
  Send:             552         22          0          0<br>
  C:\WINDOWS\system32\fossil.exe: server says: bad command: login ron wilson be70bbac9fb714783e3460c62a2c142d2b894cfd fe7a08a0c11e6b99de544ab8a23002a97f689264<br>
  <br>
  i suspect fossil is grabbing my username from windows and using it as the username for logging in.  perhaps the name should be quoted?  i would prefer to specify a username with the clone command, but there doesn't seem to be a way.

  <hr><i>anonymous added on 2009-09-10 05:47:36:</i><br>
  You can use http://username@unknown.com as URL to sepcify username, you might have to add a %20 instead of the actual space.

  <hr><i>drh added on 2009-09-10 14:08:39:</i><br>
  Fixed by check-in [ee47021f51fa7b81bd00]

  <hr><i>anonymous added on 2009-09-10 14:32:09:</i><br>
  that works


tkt_uuid: 724d7b74311f9b99dc5e892d57d505d7a35ac506
type: Incident
status: Closed
severity: Minor
foundin: 9e0da27437
private_contact: 0f366eb3e9e2fcab52b8ebacd197db9047186a5f
resolution: Not_A_Bug
title: Documentation access URL changes space in "_"
comment:
  The documentation pages of tclws are at:
  [http://core.tcl.tk/tclws/doc/tip/docs/index.html].

  The file names of all subpages contain spaces.

  When accessing them (for example by
  [http://core.tcl.tk/tclws/doc/tip/docs/Embedded%20Web%20Service.html] )
  the spaces (%20 in the URL) are turned to "_" and not found
  (at least this is what the error page reports).

  Is there any way to access those files containing spaces or do we have to rename the files?

  Thank you,
  Harald

  <hr /><i>drh added on 2012-11-08 18:45:10 UTC:</i><br />
  The problem reported above has nothing to do with Fossil.  The web server
  at core.tcl.tk does not allow characters other than alphanumerics and underscores
  in the URL pathname. It converts any such characters into an underscore.  This
  is a security measure that defines a host of nefarious attacks against
  websites.

  Work around the security restrictions on the web server by changing the document name to a query parameters:

     [http://core.tcl.tk/tclws/doc?name=tip/docs/Calling+a+Web+Service.html]


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: 72c7d223d525852bcedb21ff1d4cc7f05608de82
type: Documentation
status: Fixed
severity: Minor
foundin: [047e06193b]
private_contact: 7be07bc80105bf630696b8453a1f46a9df23453d
resolution: Fixed
title: CGI Server 'directory' mode requires ".fossil" extension on repositories
comment:
  I was trying to setup a cgi-bin server for some projects I want to share. I have a cgi command named 'fossil'

  <pre>#! /path/to/fossil
  directory: /path/to/repsitories</pre>

  I created a test repository "fossil new test" in the repository folder, and then tried to go to my.domain/fossil/test, and no go. Renaming the test repository to test.fossil made the same url work. This seems to contradict:[http://fossil-scm.org/index.html/doc/trunk/www/server.wiki]

  <hr /><i>drh added on 2011-05-02 14:38:17 UTC:</i><br />
  Documentation is wrong.  Repository names must end in ".fossil" when
  serving multiple repositories from the same CGI.


tkt_uuid: 7326efdc56644af3ea859e98b822c169e69c9092
type: Code_Defect
status: Closed
foundin: [047e06193b] 2011-04-13
resolution: Duplicate
title: Misleading summary of merge troubles at the end of merge
comment:
  After doing a branch merge, I noticed the output has been:
  <verbatim>
  $ fossil merge trunk
  WARNING - no common ancestor: drivers/a.cpp
  WARNING - no common ancestor: drivers/b.cpp
  WARNING - no common ancestor: drivers/c.cpp
  WARNING - no common ancestor: drivers/d.cpp
  WARNING - no common ancestor: drivers/e.cpp
  WARNING - no common ancestor: drivers/f.cpp
  WARNING - no common ancestor: drivers/g.cpp
  WARNING - no common ancestor: drivers/h.cpp
  ADDED cmake/FindXXX.cmake
  ....
  many ADDED/UPDATE
  "fossil undo" is available to undo changes to the working checkout.
  fos
  $
  </verbatim>

  I thought that on merge troubles, 'fossil merge' was giving a warning about the troubles at the end of the merge, but in this case it did not.

  Shouldn't it give a warning, as when there are other conflicts?

  Thank you.


tkt_uuid: 736af3b63b72fa24fac92ef84e2cccb618dab8fb
type: Feature_Request
status: Closed
severity: Minor
resolution: Fixed
title: Comment from file
comment:
  It would be a good command to get comment text not from the command line or from the user editor but from the file. For example, '--file <comment_file>' like it is in Subversion.
  Sorry for my English. :)

  <hr><i>jeremy_c added on 2009-12-31 04:17:16:</i><br>
  This has been added in the form of -M comment-file.txt


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: 741a0355a18796bae07abfb3cf370d3e5cf91215
type: Code_Defect
status: Open
severity: Minor
foundin: 49cbf5e519
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
title: status reports unmodified files as EDITED
comment:
  I haven't been able to figure out how to reproduce this yet, but there's something odd with the <code>status</code> command with regards to files being reported as <code>EDITED</code> but their contents is identical to what's in trunk.  As near as I can tell, the command sequence went something like this:

  <pre>% cd ~/src/repo/contrib
  % rm -rf sub-module
  % mkdir ~/src/repo2
  % cd ~/src/repo2
  % fs open ~/src/.fossils/repo.fossil
  % mv contrib/sub-module ~/src/repo/contrib
  % cd ~/src/repo
  % fs stat | tail -1
  EDITED     contrib/sub-module/file.sh
  % fs di contrib/sub-module/file.sh
  %</pre>

  contrib/sub-module was imported on a vendor branch, if that makes any difference.  Comparing md5s, the files are identical, but everything in contrib/sub-module gets reported as EDITED right now.  It looks like checkin.c:status_report() is reporting the file as changed.  Looking in schema.c:

  <pre>@ -- Vfile.chnged is 0 for unmodified files, 1 for files that have
  @ -- been edited or which have been subjected to a 3-way merge.</pre>

  So it looks like there are some stale entries in vmerge (maybe?).  Hope this is useful enough.


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: 74413366fe5067b3de2ee80567f15d432c7ea58d
type: Code_Defect
status: Open
severity: Critical
foundin: [79b7902cdd]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Bad behaviour merging with renames
comment:
  We hit a case when a rename DELETED some files that where in P, V and M!

  After an investigation, we tracked the problem:
    *  Merge calls "find_filename_changes(between p and m)"
    *  find_filename_changes calls bisect_shortest_path( directOnly )

  We think that if we change the find_filename_changes() so bisect_shortest_path gets called with "directOnly=false", it solves all our problems.

  But we don't know further consequences from this. We need this problem fixed. drh, as you implemented all this, could you tell us if this is the change to do?

  I will attach the patch that removes the directOnly on find_filename_changes.

  <hr /><i>anonymous claiming to be viric added on 2011-01-04 09:21:03 UTC:</i><br />
  The first line of the report should read: "We hit a case when a *merge* DELETED some files that where in P, V and M".

  <hr /><i>anonymous claiming to be viric added on 2011-01-04 09:53:45 UTC:</i><br />
  A diagram to understand the situation:

  <verbatim>
      [V]_
       ^  \____
       |   ____[M]   (the merge from P added B)
       | _/     |
      [P]       |
       |        |
  [rn A to B ]  |
       |        |
  [create A  ]  |
       |        |
       |    __[ . ]
       |   /
  [   root   ]
  </verbatim>

  So, looking at renames between P and M (with merges) does not have any rename in the way. But if we get the shortest path without merges (direct only), through root, there appears a rename "from B to A" (the reverse of the checkin).

  This rename makes the merge fail.

  <hr /><i>anonymous claiming to be viric added on 2011-01-04 11:04:35 UTC:</i><br />
  Here is the script that helps reproducing the problem. Notice that it needs fossil fixed by the patch I proposed in [c9d454153e], otherwise it fails to reproduce the problem (not that it works; simply it misses commits when merging):

  <verbatim>
  fossil new a.fossil
  mkdir a 
  cd a
  fossil open ../a.fossil
  touch b
  fossil add b
  sleep 1
  fossil commit -b b -m xxxb
  fossil update trunk
  touch a
  fossil add a
  sleep 1
  fossil commit -m xxxa
  fossil mv a c
  mv a c
  sleep 1
  fossil commit -m xxxac
  fossil update b
  fossil merge trunk
  sleep 1
  fossil commit -m merge
  fossil update trunk
  </verbatim>

  After this:
  <verbatim>
  $ fossil merge b
  ADDED b
  ADDED d
  DELETE c
  "fossil undo" is available to undo changes to the working checkout.
  </verbatim>

  It should *not* delete C.

  Notice that without the patch in [c9d454153e], <kbd>fossil merge</kbd> fails to see the rename at all, and will do the merge ignoring the checkin with the rename in trunk.

  <hr /><i>anonymous claiming to be viric added on 2011-01-04 14:40:04 UTC:</i><br />
  After seeing the change in [ff2a87103b], we see a situation where the onlyDirect affects. I don't know if it is a big trouble or if the situation can be improved.

  Consider this graph:

  <verbatim>
  [V]_
   |  \
   |  _[M]
   | /  |
  [P]   |
   |  _[rename]
   | /   
  [ ]
  </verbatim>

  With the long trip (directOnly), the merge from M to V looks like a RENAME. With the short trip, it looks like ADDED/DELETE.

  What do you think?

  <hr /><i>anonymous claiming to be viric added on 2011-01-05 11:36:12 UTC:</i><br />
  I reopen, to grab attention on the previous comment.

  <hr /><i>viriketo added on 2011-10-12 16:23:50 UTC:</i><br />
  It may be fixed by [0b93b0f958].


tkt_uuid: 746949c9318554c137f5eac9b81810088081d9a1
type: Code_Defect
status: Fixed
foundin: [12a79e5b93]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Have an easy way to access parents of a commit
comment:
  Now the commit page (info) shows an "ancestors" link, but if one parent has lots of commits done before the other parent, it's hard to find the link to that 2nd parent.

  Now the only easy way I could find is to look at the manifest for the parents.

  I think the best would be the ancestors page to have a way to show at least all the parents.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-23 14:16:20:</i><br />
  (Title updated as this is about commits, not branches)


tkt_uuid: 74814a6682bd0394bce5df9a1c6d276a482552db
type: Documentation
status: Fixed
subsystem: one
priority: Immediate
severity: Critical
foundin: 4b56350ecb
private_contact: 791d5832f0399524e7110df48d79836bff34e33f
resolution: Fixed
title: Typo on Wiki Formatting Rules Page
comment:
  --- SNIP ---
  Bullet Lists. A bullet list item are lines that begin with a single "*" character surrounded on both sides by two or more spaces or by a tab. Only a single level of bullet list is supported by wiki. For tested lists, use HTML.
  --- END SNIP ---

  "tested lists", should probably be "nested lists"


tkt_uuid: 74a95e62cf47f75fc98be5e5f9dabdb61c327fc4
type: Feature_Request
status: Open
severity: Minor
foundin: Prebuilt fossil binary version [472f9411ee] for windows.
private_contact: 2c785065bb6cf4af6c0eddaeaa12633afd12a3d9
title: Visual indicator for which code check in being viewed
comment:
  Example case.  Go to:

  http://www.fossil-scm.org/index.html/artifact/4cfcd3d811.  

  Click on the hyperlink <nowiki>[134e2aeccc]</nowiki>.  You will be taken to the following page:

  http://www.fossil-scm.org/index.html/info/134e2aeccc0acc8a4ced04da5403df234ddc1397

  If you now click on "Modified: src/db.c" you are taken to the File History for db.c http://www.fossil-scm.org/index.html/finfo?name=src/db.c

  There appears to be no easy way (other than looking up via the date/time stamp) to find which changes on the File History web page correspond to the check in which was used as a starting point.

  Some kind of visual indicator as to which check in corresponded to the reference check in would be a time saver.


tkt_uuid: 74ccf51c7d24414b10844593e29b1c11b655c05c
type: Code_Defect
status: Fixed
severity: Critical
foundin: b34a583f32
private_contact: d542e1ecf08fcd35873e96a0140f4026f1043c20
resolution: Fixed
title: url parser problem
comment:
  A clone via
  fossil clone http://username@xxx.xx.xxxx.xxx/~username/cgi-bin/repo/test
  works fine with autosync off first push works fine but it reports the server url as http://username@xxx.xx.xxxx.xxx/%7username/cgi-bin/repo/test
  further pushes will fail with %7 replaced with various numbers the first broken url is
  http://username@xxx.xx.xxxx.xxx/-9.325266E-02username/cgi-bin/repo/test


tkt_uuid: 74cfdb438a246e462a9a860dff858aa0f773a508
type: Documentation
status: Fixed
severity: Important
foundin: 4f78571eb2
private_contact: 127204cd1ac207bde45a3475c9bf39db33e7d155
resolution: Fixed
title: `fs info FILENAME` appears to be broken
comment:
  Pretty easy to reproduce this one.

  <verbatim>% cd /tmp
  % mkdir bug-test
  % fs new fs-info-test.fossil
  % mkdir co
  % cd co
  % fs open ../fs-info-test.fossil 
  % echo bar > foo.txt
  % fs add foo.txt 
  ADDED  foo.txt
  % fs ci -m "Add a test file" foo.txt 
  New_Version: a152dde43c9bf3410205e98b7fee57555d92378a
  % fs info foo.txt 
  fossil: no such object: foo.txt

  Exit 1</verbatim>

  Getting in to feature request land that led to uncovering this bug.

  I was doing a vendor import of some code and started to apply a local patch to the new branch. I was hoping to be able to snag the contents of the patch from branch=trunk, but wasn't able to do so. While poking around to find an easy way to get the artifact-id from the command line, I stumbled across this bug not working.

  Ideally I'd like to be able to do something like:

  <verbatim>% fs finfo -p -r master some/path/foo.txt</verbatim>

  Without having looked at the code, it appears as though the arg to -r isn't performing a lookup of symbolic names.  Associating artifact-ids with filenames would be ideal.  Something like:

  <code>fs artifact some/path/foo.txt</code>

  And have it spit out a list of artifacts that match a given file, or "-r tip" and have it only spit out the artifact-ids of what's in tip.


tkt_uuid: 7541963870703f09cd5bce54b3977bb2cb8e40eb
type: Code_Defect
status: Fixed
severity: Minor
private_contact: 84f59114b7eee7088fd7e2932599c69c9ad0761b
resolution: Fixed
title: diff doesn't show newline
comment:
  Pretty easy to reproduce, but rather irritating when you can't get back any status as to what exactly changed.

  <pre>% printf "some file with\nno trailing newline on the last line" > foo.hpp
  % fs ci -m "Test file with no trailing space" foo.hpp
  % echo >> foo.hpp
  % fs status
  EDITED     foo.hpp
  % fs diff --brief foo.hpp
  CHANGED  foo.hpp
  % fs di foo.hpp
  % </pre>

  Even `fossil gdiff` doesn't show the normal diff(1) output:

  <pre>% printf "foo\nhere" >> t1
  % printf "foo\nhere\n" >> t2
  % diff -u t1 t2 
  --- t1	2012-11-05 23:47:39.000000000 -0800
  +++ t2	2012-11-05 23:47:44.000000000 -0800
  @@ -1,2 +1,2 @@
   foo
  -here
  \ No newline at end of file
  +here</pre>

  While it makes sense that it wouldn't, the UI also doesn't show the newly added newline in the UI's diff.


tkt_uuid: 7636b10ddf5aed1d1d53ff90761e538a84c65072
type: Feature_Request
status: Open
severity: Minor
private_contact: c76260317d907e593238775e171317aff2baec12
title: option to abort checkin if comment is empty
comment:
  Opening a bug for documentation and commenting purposes. I saw this was fixed in 6f0a9f730b which is great. what would you think about making it Y/n instead of y/N? this still allows an abort while making it easy for people who use empty comments.


tkt_uuid: 769b4ed7b23e4cb72f8958b3a34bdc12f8dd2155
type: Feature_Request
status: Fixed
severity: Minor
foundin: 66d93f33d5
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Show number of conflicts at the end of "fossil update"
comment:
  When updating a larger tree with many changes, the fossil update output can be multiple pages long. At the end, it prints "WARNING: merge conflicts - see messages above for details." if there are any conflicts. It would make it easier to also tell how many files actually had a conflict, so that scanning the list is more efficient and less likely to just miss an item.


tkt_uuid: 76c37652157d998a6ef026d9485b3135ac622b52
type: Feature_Request
status: Open
severity: Minor
foundin: ae84e6c7d1
private_contact: e33581e4165859602178a8051fc827bcbd3ca7a2
resolution: Open
title: There is no way to cleanly remove a user
comment:
  In admin -> users, I can see no way of removing a user.

  Obviously you can change the password for a user to deny them access.

  <hr /><i>anonymous added on 2011-04-07 03:10:44 UTC:</i><br />
  This is by design. Besides the fact that Fossil treats its artifacts as immutable, to keep the history of the commits requires that no user ID be reused for another person. (Though, of course, nothing truly preventing some one from giving their credentials to some one else.)


tkt_uuid: 76d3ecfdab577bdf843798b8a3d356ffce04c73d
type: Feature_Request
status: Fixed
severity: Cosmetic
foundin: c492eab395
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: verify_at_commit should print status
comment:
  verify_at_commit can take a long time, especially during rebuild_db after reconstruct and similar operations. It should give a progress indicator if more than e.g. 100 revids are in the bag.

  <hr /><i>drh added on 2010-10-03 23:53:44:</i><br />
  Check-in [5f0201030cbf365207] cancels the verify_at_commit() on 
  the "fossil reconstruct" command since that call is not really needed
  in that context.

  The verify_at_commit() routine is one of the
  [/doc/trunk/www/selfcheck.wiki | safety checks]
  that Fossil runs on every repository change in order to make sure
  that nothing happens that would corrupt the repository.  Such checks
  are a nice safety feature for day-to-day check-ins.  But the extra
  layer of checking does not seem necessary for when a repository is
  being constructed from scratch.


tkt_uuid: 77045cec06f2f5194da8a8a8d932a90e332e459a
type: Code_Defect
status: Closed
severity: Minor
foundin: 4.078
resolution: Rejected
title: an example of a new ticket
comment:
  When I pull the plug on the workstation, it stops working.
  Can we install a UPS inside the workstation?


tkt_uuid: 7772cc876e640d152e95b3629646fcc8fa4713c0
type: Feature_Request
status: Open
subsystem: one
priority: Immediate
severity: Important
private_contact: 473b773a4f9dc122abc58cae523c80a6d4e059b3
resolution: Open
title: Provide database access from TH scripts.
comment:
  I want to populate a ticket version selector with tag values from the tag table.
  It appears to be possilbe to put a 'proc' command in the common definitions for
  tickets and use it to reture values for a combobox but I don't know how to do a
  database select on the tag table. Is it possible to do a SELECT inside proc?

  Tom K.

  The (undocumented) TH scripting language is well-suited for doing this 
  kind of thing.  But doing so will require a bit of C code for linking 
  TH with SQLite.  Such code does not currently exist in fossil.

  This seems like a reasonable enhancement request.  I'll look into 
  adding it.  You might want to write a ticket to so that I don't forget.

  D. Richard Hipp

  <hr /><i>anonymous added on 2011-04-08 23:05:34 UTC:</i><br />
  What is the status of this ticket? I would really see this feature added.

  <hr /><i>anonymous claiming to be anonymous (claiming to be a Feral) added on 2011-04-10 22:17:51 UTC:</i><br />
  <blockquote>You might want to write a ticket to so that I don't forget. </blockquote>
  I am going with the assumption that this ticket(7772cc876e) is the aforementioned. As such I offer my "+1" vote to include this and echo Anonymous' comment directly above.

  <i>Thank you for Fossil!</i>

  <hr /><i>anonymous claiming to be RonW added on 2011-04-14 02:29:39 UTC:</i><br />
  It looks to me like the dateCmd function in th_main.c could be cloned and modified to create a new function to evaluate a string parameter as an SQL query.

  Of course, it might be desirable to add checking to this new queryCmd function before giving the string to sqlite.


tkt_uuid: 77ab05a0e9d890599c3241f7025de68f9c250604
type: Code_Defect
status: Open
severity: Important
foundin: 81ad6e2e20
private_contact: e7d733707d8c126de4f080f5f958e762bfaa8983
resolution: Duplicate
title: Moving files doesn'trespect directory structures
comment:
  Here is a transcript of me trying to move files to a new subdirectory in the latest Fossil:

  ]0;nolan@nolan-desktop: ~/Projects/Hermes/Webnolan@nolan-desktop:~/Projects/Hermes/Web$ fossil mv src/main/scala/info/hermesg 
  ps/web/* src/main/scala/code

  RENAME src/main/scala/info/hermesgps/web/api/V1.scala src/main/scala/code/V1.scala

  RENAME src/main/scala/info/hermesgps/web/comet/.keep src/main/scala/code/.keep

  RENAME src/main/scala/info/hermesgps/web/comet/Geolocation.scala src/main/scala/code/Geolocation.scala

  RENAME src/main/scala/info/hermesgps/web/comet/ImportMonitor.scala src/main/scala/code/ImportMonitor.scala

  RENAME src/main/scala/info/hermesgps/web/comet/Search.scala src/main/scala/code/Search.scala

  RENAME src/main/scala/info/hermesgps/web/lib/.keep src/main/scala/code/.keep


  fossil: SQLITE_CONSTRAINT: abort at 34 in [UPDATE vfile SET pathname='src/main/scala/code/.keep' WHERE pathname='src/main/scala/info/hermesgps/web/lib/.keep' AND vid=1042]: columns pathname, vid are not unique

  fossil: columns pathname, vid are not unique

  UPDATE vfile SET pathname='src/main/scala/code/.keep' WHERE pathname='src/main/scala/info/hermesgps/web/lib/.keep' AND vid=1042



  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_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress

  ]0;nolan@nolan-desktop: ~/Projects/Hermes/Webnolan@nolan-desktop:~/Projects/Hermes/Web$ fossil rebuild

  ]0;nolan@nolan-desktop: ~/Projects/Hermes/Webnolan@nolan-desktop:~/Projects/Hermes/Web$ fossil rebuild
  ...
  $ fossil mv src/main/scala/info/hermesgp
  ps/web/* src/main/scala/code

  RENAME src/main/scala/info/hermesgps/web/api/V1.scala src/main/scala/code/V1.scala

  RENAME src/main/scala/info/hermesgps/web/comet/.keep src/main/scala/code/.keep

  RENAME src/main/scala/info/hermesgps/web/comet/Geolocation.scala src/main/scala/code/Geolocation.scala

  RENAME src/main/scala/info/hermesgps/web/comet/ImportMonitor.scala src/main/scala/code/ImportMonitor.scala

  RENAME src/main/scala/info/hermesgps/web/comet/Search.scala src/main/scala/code/Search.scala

  RENAME src/main/scala/info/hermesgps/web/lib/.keep src/main/scala/code/.keep


  fossil: SQLITE_CONSTRAINT: abort at 34 in [UPDATE vfile SET pathname='src/main/scala/code/.keep' WHERE pathname='src/main/scala/info/hermesgps/web/lib/.keep' AND vid=1042]: columns pathname, vid are not unique

  fossil: columns pathname, vid are not unique

  UPDATE vfile SET pathname='src/main/scala/code/.keep' WHERE pathname='src/main/scala/info/hermesgps/web/lib/.keep' AND vid=1042



  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_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress

  <hr /><i>anonymous claiming to be nolan@thewordnerd.info added on 2011-02-11 16:00:31 UTC:</i><br />
  I did a bit more digging on this. What I'm attempting to do is to move a bunch of Scala code into another package, so I ran something like:

  fossil mv some/package/directory/* another/directory

  What I'd expect to happen is that Fossil will move all the files, honoring the directory structure. So if I had some/package/directory/lib/Lib.scala, I'd expect to find that in another/directory/lib/Lib.scala.

  What it did in this instance, unfortunately, was to attempt flattening the structure. That is, all files in the first directory were indiscriminately dumped into the second without subdirectories. Fortunately it failed or I might not have spotted it until I committed the change. The failure was caused by there being .keep files in some of the subdirectories such that they'll still exist even if empty. Fossil tried dumping these multiple files into the wrongly-flattened directory, and SQLite threw a constraint complaint.

  Thanks, let me know if you need any more details.

  <hr /><i>anonymous claiming to be sean added on 2011-02-11 18:33:03 UTC:</i><br />
  This is a duplicate of ticket [9f0120fb739aa19c3d4d84bf0fa5f289fd50d9c6] and should be closed.


tkt_uuid: 77c58e1415e06fd3a34ca1456b2dcbf119560126
type: Code_Defect
status: Fixed
severity: Minor
foundin: ae89a7ce79
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: fossil scrub --private fails when used from an open checkout
comment:
  When used from an open checkout, fossil scrub --private yields the following error:

  c:\Windows\System32\fossil.exe: SQLITE_ERROR: no such table: main.delta
  c:\Windows\System32\fossil.exe: no such table: main.delta
  CREATE INDEX IF NOT EXISTS delta_i1 ON delta(srcid);

  CREATE TABLE IF NOT EXISTS shun(uuid UNIQUE);

  CREATE TABLE IF NOT EXISTS private(rid INTEGER PRIMARY KEY);

  CREATE TABLE IF NOT EXISTS reportfmt(
     rn integer primary key,
     owner text,
     title text,
     cols text,
     sqlcode text
  );

  CREATE TABLE IF NOT EXISTS concealed(
    hash TEXT PRIMARY KEY,
    content TEXT
  );

  It does work when specifying the repository on the command line with the -R option though, so it's not critical.


tkt_uuid: 77dc5de6397fb18c0fbade48738fdcdced1bc49f
type: Code_Defect
status: Fixed
severity: Minor
foundin: ceab53718f
private_contact: 6984f5ff2d3f66a87d3c6ddcf777c37b54e478f0
resolution: Fixed
title: /home redirect loop
comment:
  When starting a new repository the index page (Admin -> Configuration) shows /home initially this redirects to /index. If you change this string to something else and then back to '/home' browsers report a redirect loop.

  What happens: Fossil stores the index page in table 'config' with key 'index-page'. Initially this record does not exist, and you get redirected to /index. Modifying the configuration overrides the default behavior. It is impossible however to get the original behavior back.
   
  The problem is that setting the string back to '/home' keeps the record in 'config', which causes the problem. Running "delete from config where name = 'index-page';" restores the original behavior and gets rid of the redirect loop.

  Suggestion: remove the record when the admin sets the index page to '/home'.


tkt_uuid: 77de516a1f2bfc1bd996a8520d0ce59b1b324e77
type: Feature_Request
status: Open
severity: Important
foundin: n/a
private_contact: 990fc58e2fbfe89bc7012d67ec7054419441d450
resolution: Open
title: Post-push patch
comment:
  Please see the mailing list archives, subject thread: "autobuild".

  To sum it up, someone posted that he'd like to see a post-push hook in Fossil's server side. A lot of questions were asked which no one cared to answer.

  Then I came along, answered the questions and came up with a small patch to implement a minimal post-push hook. Posted the patch back to the mailing list with a request for suggestions and comments, which everyone ignored. :D 

  So, here is my diff (to run against src/xfer.c). Be aware it's not complete, as noted in the code. Discussion, anyone?

  [https://dreamtrack.dnsalias.com/downloads/post-push-patch.diff|patch 1]

  <hr /><i>wolfgang added on 2010-10-15 21:08:35:</i><br />
  I've used your patch and after adding 
  <pre>
      http_exchange(&send, &recv, cloneFlag==0 || nCycle>0);
      blob_reset(&send);
  </pre>
  to the client code and making the cmd array in the hook function larger, it works. 

  But some remarks:
    *  The server process waits until the end of the hook. I don't think, that is is really a good thing
    *  simply appending outputs to a file may become tricky, if multiple client request come in at the same time. The parallel running hook jobs will append their data at the same time and will mess up the logs

  The idea of sending a special 'do-it'-line from the client is nice. The whole thing might be extended - i know, your patch is not finished :-) - with:
    *  the hook command should be configured by a setting (gui and/or command line setting)
    *  redirects of stdin/stderr should be part of the command configuration
    *  the client could use a special settings string, which would be appended to the 'do-it'-line. This setting could be read by the server and added to the command line of the server. This way, the users of such hooks can configure the message passing during the sync. Given your patch, the client might send <kbd>#FAT build</kbd> and the server would call <kbd>targetcmd build</kbd>
    *  if both sides of the line use a setting for the 'do-it' string (FAT in your patch), it would be fully configurable, if the clients wants to send a 'do-it' line and/or the server recognizes these requests.

  best regards<br>Wolfgang

  The results of my tests:
  <nowiki><pre>
  Index: src/xfer.c
  ===================================================================
  --- src/xfer.c
  +++ src/xfer.c
  @@ -40,10 +40,26 @@
     int nDeltaRcvd;     /* Number of deltas received */
     int nDanglingFile;  /* Number of dangling deltas received */
     int mxSend;         /* Stop sending "file" with pOut reaches this size */
   };

  +/*
  +** Let a server-side external agent know that a push has completed. /fatman
  +*/
  +void post_push_hook() {
  +  /*
  +  ** TO DO: get the string cmd from a config file? Or the database local
  +  ** settings, as someone suggested? Ditto output and error logs. /fatman
  +  */
  +  char cmd[1024] = "targetcmd";
  +  strcat(cmd, " >target.out 2>target.err");
  +  const char *ptr = cmd;
  +  int rc = system(ptr);
  +  if (rc != 0) {
  +    fossil_print("The post-push-hook command \"%s\" failed.", ptr);
  +  }
  +}

   /*
   ** The input blob contains a UUID.  Convert it into a record ID.
   ** Create a phantom record if no prior record exists and
   ** phantomize is true.
  @@ -617,11 +633,17 @@
     );
     zNow = db_text(0, "SELECT strftime('%%Y-%%m-%%dT%%H:%%M:%%S', 'now')");
     @ # timestamp %s(zNow)
     manifest_crosslink_begin();
     while( blob_line(xfer.pIn, &xfer.line) ){
  -    if( blob_buffer(&xfer.line)[0]=='#' ) continue;
  +    if( blob_buffer(&xfer.line)[0]=='#' ){
  +      if ( 0 == memcmp(blob_buffer(&xfer.line), "#FAT", 4) ){
  +        fprintf(stderr,"HOOK\n");
  +       post_push_hook();
  +      }
  +      continue;
  +    }
       xfer.nToken = blob_tokenize(&xfer.line, xfer.aToken, count(xfer.aToken));

       /*   file UUID SIZE \n CONTENT
       **   file UUID DELTASRC SIZE \n CONTENT
       **
  @@ -1330,14 +1352,20 @@
       }

       /* If this is a clone, the go at least two rounds */
       if( cloneFlag && nCycle==1 ) go = 1;
     };
  +  if (pushFlag && nFileSend > 0) {
  +    blob_appendf(&send, "#FAT\n");
  +    http_exchange(&send, &recv, cloneFlag==0 || nCycle>0);
  +    blob_reset(&send);
  +    nCardSent++;
  +  }
     transport_stats(&nSent, &nRcvd, 1);
     fossil_print("Total network traffic: %d bytes sent, %d bytes received\n",
                  nSent, nRcvd);
     transport_close();
     transport_global_shutdown();
     db_multi_exec("DROP TABLE onremote");
     manifest_crosslink_end();
     db_end_transaction(0);
   }
  </pre></nowiki>

  <hr /><i>wolfgang added on 2010-10-16 15:12:59:</i><br />
  I've attached a patch file, which adds a working push-hook to fossil. It's configured using the settings command/gui-page.

  The client and server can be configured:

    *  client pattern: the pattern, which will be sent to the server can be configured on client side
    *  server pattern: the prefix of the client pattern, which will be accepted to start the hook can be configured on server side
    *  the executed command can be configured on server side. The pattern, sent by the client will be added to the command line

  <hr /><i>anonymous claiming to be arichardson added on 2010-10-18 13:04:03:</i><br />
  > The server process waits until the end of the hook. I don't think, that is is really a good thing

  Agreed, this would be a bad thing. Could we simply append " &" to the hook command? That detaches the process from the command line, so it can complete in its own time. It works in *nix and I think it would work in Windows, though that point needs checking. One technique I know works in Windows is to prepend "start " to the command, but that doesn't work in *nix.

  > simply appending outputs to a file may become tricky, if multiple client request come in at the same time

  How about appending to a file named for the remote Fossil? That data could be included in the comment card, eg. #FAT[12345678] saves output to 12345678.err.log.

  > The whole thing might be extended - i know, your patch is not finished :-)

  Great - exactly what I was after. I don't want the boss catching me at this as it would be somewhat hard to explain. ;) 

  > the hook command should be configured by a setting

  Agreed.

  > redirects of stdin/stderr should be part of the command configuration

  I like it.

  > the client could use a special settings string, which would be appended to the 'do-it'-line

  Interesting. Does this not raise the spectre of potential abuse, though? Perhaps the remote user could be granted a special "allow custom hook" privilege.

  > if both sides of the line use a setting for the 'do-it' string

  I can see possibilities there.


  <hr /><i>wolfgang added on 2010-10-18 14:07:39:</i><br />
  Take a look at [9cf288de27], it's a complete implementation of a configurable post push hook. 

  <blockquote>Agreed, this would be a bad thing. Could we simply append " &" to the hook command? That detaches the process from the command line, so it can complete in its own time. It works in *nix and I think it would work in Windows, though that point needs checking. One technique I know works in Windows is to prepend "start " to the command, but that doesn't work in *nix.</blockquote>
  OK, i see  the point. We shouldn't add to much (OS-specific!) code to fossil. Using synchronous/asynchronous hooks should be part of the started scripts/programms.

  <blockquote>How about appending to a file named for the remote Fossil? That data could be included in the comment card, eg. #FAT12345678  saves output to 12345678.err.log.</blockquote>
  The hook can be triggered simultaneously from different sides. I think, i'll add a stdin/stderr redirect to a file with a timestamp/random number part. This fallback redirection is in addition to the redirect, defined in the program/script.

  <blockquote>Interesting. Does this not raise the spectre of potential abuse, though? Perhaps the remote user could be granted a special "allow custom hook" privilege.</blockquote>
  The server has its own setting which controls, which arguments  are accepted. So i think, we don't need a new user permission. Checking user permissions would only check the permission of the sync user, not the permissions of the commit users. If needed, the called hook could check the timeline(rss?) to do a more qualified permission check.

  In addition to my first remarks, i added a server side command lineoption, to activate the hook command without the need of a push.

  Some ideas - implemented in [a94ef5c00d]:
    *  I'll add a new client and server side option, to trigger the the hook on all sync, not only, if files are pushed.  The client will send a mark, if files where pushed on the push hook pattern message.
    *  The name of the fallback log file will be added as first argument to the command line. The push hook pattern will be the second argument.


tkt_uuid: 7804a3d348758dcfc77d65e4ea4d77ca00edfeed
type: Feature_Request
status: Closed
foundin: b9a744e1c4d842a289a9cb350085ca4935633e83
private_contact: 4b6281b0da561d3b4396c6498527621c42b4ad58
resolution: Rejected
title: Disconnect in HTML only wiki vs. Ticket submission
comment:
  I'm using fossil to store documentation that I generate from LaTeX or other HTML generation systems.  I'm running into a few logical defects in how this is handled.  In this case, if I set the wiki to HTML, that should NOT apply to the tickets, that's just the wiki.  Wiki is in HTML and controlled by my crew, but tickets can come from any jerk on the internet.

  So, tickets should stay wiki, and wiki can be either HTML or wiki.

  <hr><i>drh added on 2010-07-25 20:29:48:</i><br>
  The "Use-HTML-Wiki" mode is a user-contributed feature that is not maintained
  by me.  It has a very narrow purpose of making it possible to edit wiki with
  a pure HTML editor.  It should not be used for other purposes.  In my opinion,
  it should not be used at all.

  If you want to pure HTML document, you can check-in HTML files into the source
  tree and access them as [/doc/tip/www/embeddeddoc.wiki | embedded documentation].
  The files are delivered to exactly as written, with no interpretation of any
  kind.  And embedded documentation files also have a higher level of protection
  (you have to have check-in privileges) so that they cannot be altered by
  causal passers-by on the internet.  That sounds like what you want.

  I'm sorry, but I cannot accept requests for different "wiki modes"
  at this time.  Everybody
  has their own idea of how wiki should work.  If we tried to create a new wiki
  mode to suit every desire, we'd soon be smothered by dozens or hundreds of
  configuration options, and we would find that the rendering worked differently
  on every Fossil instance, according to the whims of the sponsor of that
  instance.  I used to accept some patches for different "wiki modes".  (The
  "Use HTML wiki" flag is an example and the now mostly defunct "Creole Wiki"
  mode is another.) That was before I came to view "wiki modes"
  as disruptive to the design integrity of the Fossil product.

  Suggestions on how to improve the default wiki rendering mode, in a 
  backwards-compatible way, are welcomed.  I will also entertain suggestions
  on how to make wiki rendering configurable so as to suit individual
  preferences.  But for the later, I'm looking for a complete end-to-end
  design, not a pile of hacks and patches and "mode switches" that grow
  by accretion.

  This ticket, if I read it correctly, is asking for more and finer-grained
  mode switches that allow "Use-HTML-Wiki" to be separately turned on and
  off for wiki, tickets, embedded documentation, and check-in comments.
  That is not the direction we are looking to take Fossil at this time.


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: 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: 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: 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: 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: 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: 7b55fd2958d8d4f7033ac3f6731157b3bc21be65
type: Incident
status: Open
severity: Minor
foundin: 1d93222627
private_contact: 79af641cb98a21e339ec709c11f451fabb9787c2
title: access_log problem after updating from older repository: SQLITE_ERROR: no such table: accesslog
comment:
  Preface: Updating from fossil version from (79b7902cdd) 2011-01-01 to (1d93222627) 2011-03-01 and issuing fossil all rebuild and restarting fossil.

  Problem: fossil complains in Admin / User-Log about a missing SQLITE table.
  <verbatim>SQLITE_ERROR: no such table: accesslog</verbatim>


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].


