# ticket

tkt_uuid: a53f65f57f4829da5039337bbdd305da4f234d13
type: Feature_Request
status: Open
severity: Minor
foundin: 15b293259d
private_contact: 277de4eda861e8a6d011b60d4006a963a4c7c474
title: ZIP archive of changed files between two check-ins
comment:
  Wondering whether it is possible to have some command like:

  <pre>fossil zip VERSION <nowiki>[--relative REFERENCE_VERSION] OUTPUTFILE [--name DIRECTORYNAME]</nowiki></pre>

  which generates a ZIP archive for a specified version, excluding files that existed at time of REFERENCE_VERSION and have not changed since.

  I am aware that this raises some problems like:
  * Does it make sense when REFERENCE_VERSION is not an ancestor of VERSION?
  * How can one include information about files that have been deleted between both versions?

  Thank you for having read this ticket and, I hope, for your answers.


tkt_uuid: f696bc85f8b91d263f5bf4c5bbd261bd252c46a0
type: Feature_Request
status: Fixed
severity: Minor
foundin: fb5f0c2580
private_contact: 911ecc80502632daad095cf04dac560d4ed25ad4
resolution: Fixed
title: Client side verification of SSL server certificates should use system wide default CAs
comment:
  Most installations of OpenSSL come with a system wide directory of default certificate authorities and most applications using OpenSSL make use of this certificate store during server certificate verification, which is handy because a system administrator only has to manage one central store of acceptable certificate authorities.

  Fossil presently doesn't use the system wide CA certificate store, but I think it should :-) The necessary change is only one line of code:
  <verbatim>
  Index: src/http_ssl.c
  ===================================================================
  --- src/http_ssl.c
  +++ src/http_ssl.c
  @@ -90,10 +90,11 @@
       SSL_library_init();
       SSL_load_error_strings();
       ERR_load_BIO_strings();
       OpenSSL_add_all_algorithms();
       sslCtx = SSL_CTX_new(SSLv23_client_method());
  +    X509_STORE_set_default_paths(SSL_CTX_get_cert_store(sslCtx));
       sslIsInit = 1;
     }
   }
   
   /*
  </verbatim>


tkt_uuid: 71bd5502ffc43a415862faaa707d1513b5bb32eb
type: Feature_Request
status: Closed
severity: Minor
foundin: 15b293259d
private_contact: 277de4eda861e8a6d011b60d4006a963a4c7c474
resolution: Fixed
title: Browser caching CSS and logo
comment:
  Hello,

  When using <tt>fossil ui</tt> on a repository, and then on <em>another one</em>, using same port, the logo and the stylesheet for the first repository are still in browser cache, and therefore the browser is not displaying what it should.

  Proposed workaround:
    *  Each time the logo or the stylesheet changes, compute its new SHA1 sum
    *  Embed URIs of this form in the HTML code: <tt>$baseurl/logo/{LOGO_SHA1SUM}</tt> or <tt>$baseurl/style.css/{STYLESHEET_SHA1SUM}</tt>
    *  On client side (browser) each logo and stylesheet will be cached, but every time a change is needed it is automatic
    *  On server side, optionally ignore the <tt>/SHA1SUM</tt> part in the URL, and always serve current logo and stylesheet as the previous ones are not stored.

  <hr><i>anonymous added on 2010-07-19 11:29:33:</i><br>
  I think it would be wiser to not ignore the sum but serve only the URL with the correct checksum if checksummed URL is requested.

  If the checksum was ignored and you changed the repo which is served on a particular address (either by editing the repo or by changing some redirection) then the new style could be cached on an URL referenced from an old page which is exactly what is to be avoided.


tkt_uuid: 855375dc57fb2fd96274b83a48544a7674b56989
type: Code_Defect
status: Closed
foundin: 711675774b
private_contact: f33437152151a7ffe4cdce87383155dd9c0f8d50
resolution: Unable_To_Reproduce
title: can't clone remotely
comment:
  on trunk but on various other versions I've tried.

  <pre>
  User ID	 	Capabilities	 	Contact Info
  anonymous	   	ghmncz	   	Anon
  blackdog	   	gv	   	blackdog
  </pre>

  but

  <pre>
   fossil clone http://blackdog@xx.yy.zz.dd:8080/ test
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:         120          2          0          0
  Send:             625         25          0          0
  password for blackdog: 
  Error: login failed
  </pre>

  <hr><i>benoit added on 2010-07-18 07:17:52:</i><br>
  You should use
  http://blackdog<strong>:password</strong>@server:8080

  <hr><i>drh added on 2010-07-25 21:00:09:</i><br>
  I just tried this and it works fine for me.  Please verify that both the
  client and the server have the most recent version of Fossil installed.
  If that does not clear the problem, the please reopen the ticket providing
  additional information on how to reproduce the problem.


tkt_uuid: c2c6e35506f5ffec316bb8f2e006cabcb38afdf7
type: Code_Defect
status: Closed
severity: Important
foundin: 93d7f371cc
private_contact: a8c39c4251da5fd17c2570e9580a02303e5e0805
resolution: Unable_To_Reproduce
title: Can't create Attachments to Wiki pages
comment:
  Go to any Wiki page and click Attach. Everything seems to work and there are entries put in the Blob and RcvFrom tables. It just doesn't show up on the page or /attachlist (to see all repository attachments).

  <hr><i>anonymous added on 2010-07-23 04:53:06:</i><br>
  I guess the Attachment permsission isn't granted to anonymous. Sorry for the noise.

  <hr><i>anonymous added on 2010-07-23 08:39:10:</i><br>
  If it's not active for anonymous, the option shouldn't be there.

  <hr><i>drh added on 2010-07-25 20:52:12:</i><br>
  The "Attach" option does not appear if attaching is not allowed.
  Attaching works on my tests - I am unable to find a case that does not work.

  Please reopen this ticket with additional details if you think this
  assessment is incorrect.


tkt_uuid: 950a80de558a10637b36ff8cb14bb141721122a5
type: Feature_Request
status: Fixed
severity: Minor
foundin: Fossil version [fb5f0c2580] 2010-07-03 15:33:59
private_contact: f1eecd4609fe3c20ca482b5b80c54e8f2393c215
resolution: Fixed
title: "branch --private" option
comment:
  It's not at all obvious from the documetation how to create a private branch.  The closest I could get by experiment was "fossil commit --private --branch NEWNAME", but that doesn't work if there are no changes to commit.

  It would be nice if we could create new private branches using a "--private" option with the "fossil branch new" command.

  <hr /><i>dmitry added on 2011-09-08 20:47:13 UTC:</i><br />
  Fixed by [2b33781694].


tkt_uuid: b0894abc94c175bb7840bfcda8f155e2b358512c
type: Feature_Request
status: Open
private_contact: f1eecd4609fe3c20ca482b5b80c54e8f2393c215
resolution: Open
title: fossil server -P address:port
comment:
  I would like to restrict the fossil server to listen on a single ip address; usually localhost.
  It would be nice if  I could use <verbatim>fossil server -P 127.0.0.1:8080</verbatim> or <verbatim>fossil server -P '[::1]:8080'</verbatim>

  <hr><i>anonymous added on 2010-07-25 10:43:31:</i><br>
  Here's a workaround using socat:

  <verbatim>
  /usr/local/bin/socat \
      TCP-LISTEN:8080,bind=127.0.0.1,reuseaddr,fork \
      EXEC:'/usr/local/bin/fossil http /home/me/myproject.fossil'
  </verbatim>


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: b0f1e3fed2b3b5651197ab8fb939fe538ee20552
type: Feature_Request
status: Closed
severity: Severe
foundin: b9a744e1c4d842a289a9cb350085ca4935633e83
private_contact: 4b6281b0da561d3b4396c6498527621c42b4ad58
resolution: Rejected
title: HTML wiki mode should NOT interpret [] syntax
comment:
  I'm using fossil to store and serve documentation that I create from LaTeX or other HTML generators and running into a few logic bugs.  In this case, if I set the wiki system to be HTML only, then that means verbatim and nowiki tags don't work.  However, if the .wiki files or wiki pages have link syntax accidentally from say code snippets, like <verbatim>[1,2,3,4]</verbatim> then it tries to interpret that as wiki links.

  However, since I am in HTML mode and the &lt;verbatim&gt; tag's disabled, I can't prevent this.  Now I'm stuck.

  <hr><i>drh added on 2010-07-25 20:35:08:</i><br>
  The "Use-HTML-Wiki" flag (which is a user-contributed feature and not part
  of the maintained Fossil design) was specifically engineered to accept
  hyperlinks in &#91;...&#93; in addition to HTML.

  For pure HTML with no interpretation at all, please consider using
  [/doc/tip/www/embeddeddoc.wiki | embedded documentation] with files
  ending in ".html".  Such files are delivered to the browser as-is, with
  a test/html mimetype, and can thus contain whatever HTML you desire.


tkt_uuid: dfe1fc608af97639627e48c4d0714b60f427fe8c
type: Feature_Request
status: Fixed
severity: Minor
foundin: 0e1ca296db
private_contact: 7a46edbdd4ae23c7f1340663be03348341c2cb57
resolution: Fixed
title: Reconstruct command that went away
comment:
  During the GPL -> BSD conversion, the reconstruct command was removed due to licensing issues.

  While this command is not vital to fossil, it's useful for porting foreign scms to fossil.

  It would be nice to have it back.

  <hr><i>anonymous claiming to be linuxfood added on 2010-07-28 03:07:11:</i><br>
  The attached file reimplements the reconstruct command. It was done without any prior examination of the original command.

  <hr><i>bcsmith added on 2010-08-12 19:49:32:</i><br>
  Fixed in [3332895df8].


tkt_uuid: c0bbe01436e0bed597d6495a270972c3c50fe43c
type: Feature_Request
status: Open
severity: Cosmetic
foundin: [6d828a8630] 2010-07-25 08:33:52
private_contact: 017042fb91c4a6d38e747ea2beb04c74dd39fc2e
title: SKIN: css problems with Nomenclature box on branch page
comment:
  As you can see on 

  https://chiselapp.com/user/wst/repository/WST-Skin-1/brlist

  there is a problem with the Nomenclature-box on the branch and leaves page.

  If the css for headers uses backgrounds, these are mixing up with the Nomenclature-box.

  I think, the box should use an own class, to configure especially the background.


tkt_uuid: 0d1a4fe14f1fb6ee208276bb69e7ab5948048c97
type: Code_Defect
status: Fixed
severity: Important
foundin: [0e1ca296db]
private_contact: 70e8369b18c47ff40aebcb9bd5778b54d64203f6
resolution: Fixed
title: fossil configuration push doesn't honor proxy
comment:
  'fossil push' honors proxy setting, but 'fossil configuration push' doesn't.

  <hr><i>anonymous claiming to be Urmil added on 2010-07-29 13:23:49:</i><br>
  ... may be true with 'fossil configuration pull' as well - haven't checked that.

  <hr><i>anonymous claiming to be urmil added on 2010-08-26 07:30:55:</i><br>
  Here is the patch to fix this:
  <verbatim>
  --- src/configure.c
  +++ src/configure.c
  @@ -459,10 +459,11 @@
         zPw = db_get("last-sync-pw", 0);
       }
       url_parse(zServer);
       if( g.urlPasswd==0 && zPw ) g.urlPasswd = mprintf("%s", zPw);
       user_select();
  +    url_enable_proxy("via proxy: ");
       if( strncmp(zMethod, "push", n)==0 ){
         client_sync(0,0,0,0,mask);
       }else{
         client_sync(0,0,0,mask,0);
       }
  </verbatim>


tkt_uuid: d83227cdda3d786d3743b2ce6782fe9fd0a38998
type: Code_Defect
status: Fixed
severity: Minor
foundin: e3fb8dc36cf9354c
private_contact: de256b1a144847458f288405ac2e44eeec974ca7
resolution: Fixed
title: Can not handle HTTPS tag of http header
comment:
  When the site is set to HTTP with SSL, the http server (nginx in my case) will add a HTTPS: on tag into the request header. Fossil should identity it and use https schema for all the generated links.


tkt_uuid: e12f19063a8f5959c774004a849ce8facb025a01
type: Code_Defect
status: Closed
severity: Important
foundin: [0e1ca296db] with SSL support
private_contact: 70e8369b18c47ff40aebcb9bd5778b54d64203f6
resolution: Duplicate
title: fossil with SSL support does not support proxy
comment:
  <verbatim>
  $ fossil set proxy
  proxy                (local)  off

  $ fossil clone https://fossil-scm.org ssltest
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  t:\fossil-ssl\fossil.exe: server says: 400 Bad Request

  $ fossil clone https://fossil-scm.org ssltest --proxy off
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  Received:      350929       7628          0          0
  Send:           10025        225          0          0
  ...
  </verbatim>

  <hr><i>anonymous added on 2010-07-31 03:58:48:</i><br>
  Ignore previous post. I was in a local checkout and 'clone' will see only global settings.

  However, for https:// URLs, fossil does not use 'CONNECT' method of proxy.


  <hr /><i>dmitry added on 2011-09-08 23:09:16 UTC:</i><br />
  Duplicate with patch: [e854101c4f].


tkt_uuid: ea7d583739b004afa832e1b6901259137747366f
type: Code_Defect
status: Open
severity: Minor
foundin: [15b293259d] 2010-06-11 12:02:59 UTC
private_contact: c0b04d3450fc4196f634b9d078d8dce4d4b1be6a
title: Some characters prevent "server ." from serving repos
comment:
  Windows XP (with latest patches) and fossil version [15b293259d] 2010-06-11 12:02:59 UTC

  I ran into problems with non-alphabetic characters today using "fossil server."

  These commands work:<br>
     fossil new r~1.fossil<br>
     fossil ui r~1.fossil<br>

  But after running "fossil server .", http://127.0.0.1:8080/r~1 returns "Not Found"

  Replace the tilde with an underscore, works normally. Using a caret (^) demonstrates the same problem.


tkt_uuid: 25ff8cff2bdb41766e91b17c0779b3f5f3c0c80c
type: Code_Defect
status: Fixed
severity: Minor
foundin: 1d713f3f4d
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
resolution: Fixed
title: wrong DOCTYPE in generated pages
comment:
  The doctype in the generated pages is wrong. In

  <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "http://www.x3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  you have to add a second / between W3C and DTD.


tkt_uuid: 2dbefa162bd13a5d5eb4ed37224e169814633f04
type: Code_Defect
status: Closed
severity: Minor
foundin: current
private_contact: 5ddc9ef2cc5a1544558a56a3cba910a0ba4d422a
resolution: Duplicate
title: the option "-n" of timeline command
comment:
  The "timeline" command say
      Show as many as N (default 20) check-ins.
  But it output actually line number as many as N.

  <hr /><i>dmitry added on 2011-09-08 22:12:13 UTC:</i><br />
  Duplicate with patch here [3e58b8ceaf].


tkt_uuid: 118a98cb386c0e6ee4553a70cb420670b4e93499
type: Code_Defect
status: Fixed
severity: Minor
foundin: 1d713f3f4d
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: removing a directory doesn't work with a trailing slash
comment:
  Doing fossil rm foo/bar/ lists all the files contained in foo/bar as marked deleted, but fossil changes don't show any change and fossil commit don't commit anything.

  fossil rm foo/bar without the trailing slash however, does work. 

  With the trailing slash, the output of fossil rm foo/bar/ displays the files path with two slashes after bar, which is probably the cause of the problem.

  Since bash appends a trailng slah after auto-completing a directory name with tab, it is easy to stumble upon this problem which can give the impression that removing a directory is broken.

  <hr><i>anonymous added on 2010-08-11 02:58:05:</i><br>
  Process input path with function "file_simplify_name" for command "add" and "delete".

  Have a fun!

  <hr /><i>anonymous claiming to be sean@chittenden.org added on 2011-03-21 00:35:40 UTC:</i><br />
  This ticket can probably be closed as a result of [04ddad7ab8e5c8bfe23daad995a73ead05d428fd].

  <hr /><i>dmitry added on 2011-09-08 22:58:33 UTC:</i><br />
  I've verified that it has been fixed as mentioned above.


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: 0bc90d7235404d16c7dbc7a52394b7dc8f56aef8
type: Feature_Request
status: Fixed
severity: Minor
foundin: 1d713f3f4d
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: fossil clean and ignore-glob
comment:
  An option to tell fossil clean to honor ignore-glob would be useful.

  A common scenario are some IDEs that can't help themselves but put their files in the root of the project, but you don't want any ide related files to be managed by the repository because you use an ide-independent build system, or because some of those files are local settings that shouldn't live in the repository.

  However, being able to clean out temporary test files and such without deleting the ide files (which can contain local settings that are annoying to recreate) would be useful.

  Git's approach is that by default, git clean honors .gitignore but provides an option to force it to clean ignored files as well.

  <hr /><i>anonymous added on 2010-10-15 07:54:00:</i><br />
  By reading the documentation I thought that clean would honor ignore-glob.

  Excerpt from help:
  Delete all "extra" files in the source tree.  "Extra" files are
  files that are not officially part of the checkout.  See also
  the "extra" command.

  For me this implies that clean deletes everything that is shown in extras (by the way, there is a typo, the command is extras :). For me the natural thing would be to honor ignore-glob by default, as git does. Otherwise, an option to do so would be really useful.

  <hr /><i>anonymous claiming to be viric added on 2010-12-20 08:31:53:</i><br />
  There was a patch sent to the list recently. I vote for applying it, if it solves the problem.

  I like ignore-glob being honored on fossil clean.


tkt_uuid: 0a09bc0dffc0bbf825650df1d0a89084eeaf3bc4
type: Feature_Request
status: Open
severity: Important
private_contact: 2de9a26406fe5bf13fcd0ae44197ec67eadb57d0
title: "Read Ticket" privilege should enable ticket hyperlinks even if "History" privilege is removed
comment:
  For a codebase which is developed in public, but is not publicly available, it is helpful to use the built-in Fossil web server, removing Checkout and History permissions, but allowing wiki and ticket appends.

  However, without the "History" permission, ticket IDs aren't hyperlinked, requiring users to enter the URL manually (at which point they can also append information).

  I believe if "Read Ticket" is an active permission, that should overrule the lack of a "History" permission and hyperlinks should be available for them.


tkt_uuid: f00cd046cf42d8897c8f78ac329e8b40158d4420
type: Feature_Request
status: Closed
private_contact: 73f04265888c11c182181ef4c8e5c737d6d98103
resolution: Overcome_By_Events
title: macports portfile, this is just some packaging configuration for mac osx users
comment:
  I've written a simple macports portfile, for users who wish to install fossil on osx systems with macports. I'd like to attach it to this ticket for others who are interested in it (pasting it here in a comment doesn't seem to work too well)

  <hr /><i>dmitry added on 2011-09-08 21:02:24 UTC:</i><br />
  Thanks. Fossil port is included in the recent MacPorts https://trac.macports.org/browser/trunk/dports/devel/fossil/Portfile


tkt_uuid: 7e32f0c17941a8f04ae372c7de8ca97572176bab
type: Code_Defect
status: Open
severity: Minor
foundin: current trunk
private_contact: 5ddc9ef2cc5a1544558a56a3cba910a0ba4d422a
resolution: Open
title: Memory leak
comment:
  I have fixed some memory issue. And I attach it.

  But all place of calling "db_get" have not been fixed yet. This is in progress.

  The function "cgi_replace_parameter" simply discard old value "aPramQP[[idx]].zValue", this will result memory leak.

  <hr><i>drh added on 2010-08-17 11:05:19:</i><br>
  Fossil is a command-line tool that runs a single task (quickly) and then exits.  
  Memory leaks, as long as they do not occur inside a loop, are harmless and
  unimportant.  Memory leaks of 40 or 50 bytes that are limited in number are
  particularly unimportant and should be ignored.

  Do any of these leaks you identify consume large amount of memory (megabytes)
  or can any of them occur an unbounded number of times depending on the size
  of the repository or other input factors?  If so, please let us know and we
  will have a look.  Otherwise, this is not a problem and is not something 
  we intend to fix.

  Thanks for the report.

  <hr><i>anonymous added on 2010-08-18 02:09:24:</i><br>
  If fossil will have a FastCGI version in future？ It will have a better performance, and so can serve more user.


tkt_uuid: 38f2c8d37559b0de49fce2afa1f2c1989da332bf
type: Code_Defect
status: Open
severity: Important
foundin: [d090292800] 2010-08-05 10:09:43 UTC
private_contact: 45d36f7d5d2b2b77c6b49066c9cfc6327a058068
title: ISA Server authentication fails
comment:
  I've tried clone through MS ISA proxy using usual URL format for proxy setting (http://username:password@proxy.server), and fail with message:

  server says: 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied. )

  I've also tried DOMAIN\username as possible format of supplying username. But result the same.

  Do fossil supports NTLM authorization for proxies?

  Many thanks in advance!


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: 15f44789de1acaa39f094d6bf1771a01b3d9eeb5
type: Feature_Request
status: Closed
priority: Low
severity: Minor
foundin: 391ef2853b
resolution: Fixed
title: Restore rstats command
comment:
  While not a big deal, the rstats command was nice.  It went away after the GPL -> BSD conversion.

  It worked like so (which should be enough for a clean room reimplementation):

  <verbatim>
  $ fossil help rstats
  Usage: fossil rstats

  Deliver a report of the repository statistics for the
  current checkout.

  $ fossil rstats
   Number of Artifacts: 7691
    2251 full text + 5440 delta blobs
   41348 bytes average, 318009144 bytes total

    Number Of Checkins: 1811
       Number Of Files: 362
  Number Of Wiki Pages: 20
     Number Of Tickets: 494
   Duration Of Project: 1123 days
  </verbatim>

  It would be nice to have it back.

  <hr><i>bcsmith added on 2010-08-18 03:12:37:</i><br>
  Hi,

  If you navigate to the Admin section of the web interface, you'll find near the bottom a 'Stats' link which contains the above information (and some other). Is this not sufficient?

  Thanks,

  -B

  <hr /><i>anonymous added on 2010-11-11 10:40:52:</i><br />
  Hello

  Cant read it from console and parse it anymore.

  -OL


tkt_uuid: 8f8083f23038c3b5c67146b8ee1e9e0fd2e947a1
type: Code_Defect
status: Open
severity: Important
foundin: [4e1241f323] 2010-10-31 21:51:11 UTC
private_contact: 799fcce709e3f04aa96834caec7945b22b8b6a57
resolution: Open
title: commit not possible
comment:
  <pre>
  I was'n able to commit added files in version
  fossil version [d8f8932ff2] 2010-08-13 07:07:08 UTC

  and succedd with older version
  fossil version [fb5f0c2580] 2010-07-03 15:33:59 UTC

  fossil commit --comment "úvodní naplnění databáze"
  Autosync:  file:///Users/navratil/fossil/bin.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             146          2          0          0
  Error: Database error: database is locked
  COMMIT



  /Applications/fossil commit
  Autosync:  file:///Users/navratil/fossil/bin.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:             146          2          0          0
  Received:         108          3          0          0
  Total network traffic: 252 bytes sent, 282 bytes received
  /usr/bin/vim "/Users/navratil/bin/ci-comment-0D37EFA17E26.txt"
  New_Version: 074b99d7792352ff4363ff80f2cceb833168d342
  Autosync:  file:///Users/navratil/fossil/bin.fsl
                  Bytes      Cards  Artifacts     Deltas
  Send:          500258         72          3          0
  Error: Database error: SQL error: database is locked
  </pre>

  <hr /><i>anonymous claiming to be arichardson added on 2010-11-11 12:01:59:</i><br />
  I'm occasionally seeing this error in my Buildbot logs.

  <pre>
  fossil pull && fossil update
   in dir /var/lib/buildbot/Reu2/slave/bin/nikko/build (timeout 1200 secs)
   watching logfiles {}
   argv: fossil pull && fossil update
   environment:
    HOME=/var/lib/buildbot
    LANG=en_GB.UTF-8
    LOGNAME=buildbot
    LS_COLORS=&lt;snip very long string&gt;
    MAIL=/var/mail/fatman
    PATH=&lt;snip very long string&gt;
    PWD=/var/lib/buildbot/Reu2/slave/bin/nikko/build
    SHELL=/bin/bash
    SUDO_COMMAND=/usr/bin/buildbot start /var/lib/buildbot/Reu2/slave/
    SUDO_GID=1000
    SUDO_UID=1000
    SUDO_USER=fatman
    TERM=screen-bce
    USER=buildbot
    USERNAME=buildbot
   closing stdin
   using PTY: False
  Server:    http://fatman@dreamtrack.dnsalias.com/fossils/reu2.cgi
                  Bytes      Cards  Artifacts     Deltas

  Sent:             146          2          0          0
  waiting for server...
  processed: 100%         fossil: 
  Error: Database error: database is locked
  DELETE FROM unclustered WHERE rid IN (SELECT rid FROM private)
  program finished with exit code 1
  elapsedTime=0.172838
  </pre>

  The build runs every 8 hours. Usually it's fine, but sometimes this happens and causes the build to fail.


  <hr /><i>drh added on 2010-11-11 12:09:26:</i><br />
  Recommended fix in both cases above:

    1.   Run the <tt>fossil sql</tt> command to get an interactive SQLite shell.

    2.   Type "<tt>PRAGMA journal_mode=WAL;</tt>"


tkt_uuid: dba59ec54423f192ba91fd226bfeab7323b57329
type: Code_Defect
status: Fixed
severity: Important
foundin: 61ca4141cc
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Fixed
title: Cannot commit with --date-override
comment:
  <verbatim>
  cat > test.sh <<EOF
  #!/bin/sh
  rm -f test.repo
  rm -rf test; mkdir test; cd test
  fossil new --date-override "1980-01-01T00:00:00+0" ../test.repo
  fossil open ../test.repo
  :> test; fossil add test
  fossil ci --date-override "1980-01-01T00:00:00+0" -m "Check in test file."
  fossil version
  EOF
  </verbatim>

  "sh test.sh" output follows:

  <verbatim>
  project-id: 06dc47045026a113d202f6ebf85807a699ef5ca1
  server-id:  8e1bc7871007ca8338c67b15012ca24229ac7bea
  admin-user: asau (initial password is "36c4b4")
  ADDED  test
  New_Version: dfa15dfb77b49b84dd6cd95663bf5daee5413fec
  fossil: manifest file (3) is malformed
  This is fossil version [61ca4141cc] 2010-08-18 17:27:25 UTC
  </verbatim>

  <hr><i>drh added on 2010-08-19 11:47:51:</i><br>
  Fossil uses the SQLite date/time parsing routines and those routines
  do not recognize the +0 timezone suffix.  Fossil has now been updated to
  output an error when an unrecognized date is handed to --date-override.


tkt_uuid: 038905cc3af2c5c869b3c953e08a6c1e0e4e12ad
type: Code_Defect
status: Closed
severity: Important
foundin: 07afdea6e2
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Works_As_Designed
title: fossil ignores line terminators when submitting tickets
comment:
  When submitting tickets, text input appears with no line breaks,
  only empty lines are preserved. This is critical to plain text information,
  e.g. test scripts.

  <hr><i>drh added on 2010-08-19 11:51:11:</i><br>
  Input to tickets is in the [/wiki_rules | wiki format].  
  To show plain text, surround the
  plain text with either &lt;verbatim&gt;..&lt;/verbatim&gt; or (if the
  text contains no "&lt;" characters) &lt;pre&gt;..&lt;/pre&gt;.


tkt_uuid: a9f7b23c2e376af5b0e5bc180e55ca2b8b012ff7
type: Code_Defect
status: Fixed
severity: Important
foundin: 15b293259d
private_contact: 214bb5765a5d2d4513fe393de9e8c8431e3e869a
resolution: Fixed
title: fossil diff produces a non-working patch
comment:
  Using the repo at [http://fossil.msofer.com/wip]. 

  Checkout 17ac7d08a76ec30730903eeabb454aa69032979d, then diff from af27f155bafb13628c80786c0964a7f5cc73b1ec. 

  When you try to apply the patch: there are rejections.

  <hr><i>drh added on 2010-08-21 03:41:22:</i><br>
  The problem seems to be that the "fossil diff" command ignores whitespace
  at the end of lines.  IIRC, I added this "feature" when I encountered some
  check-ins from people using windows editors that inserted \r at the end of
  every line.  If end-of-line whitespace is not ignored in that case, then
  the diff output is useless.  

  Maybe the right solution is to make "diff" output ignore end-of-line 
  whitespace but create a new command for generating patches that takes
  end-of-line whitespace into account?

  <hr><i>anonymous added on 2010-08-21 13:58:02:</i><br>
  This does not work even after asking fossil to use an external diff:

    fossil set diff-command /usr/bin/diff

  still produces unusable patches. 

  Actually, it still produces a unified diff - so apparently it is not calling the external diff at all. Same result if setting diff-command to FOO.

  <hr><i>anonymous added on 2010-08-21 14:02:16:</i><br>
  What's more: this seems not to be just a whitespace-at-the-end issue: patch -l still finds (fewer) conflicts.


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: f18142409088bfc707e264d00f71d4139d443ef4
type: Feature_Request
status: Fixed
severity: Minor
foundin: [d090292800] 2010-08-05 10:09:43 UTC
private_contact: cb9895983f32946f27a57b1ea169270321707822
resolution: Fixed
title: Disabling Zip Download
comment:
  When the ability to download a zipped archive of the files is disabled from the Admin > Users menu from, say, the anonymous user, the ZIP Archive link is still shown in the Timeline page. Clicking on it leads to the login page, which does not necessarily show any helpful message about needing to be authorized, for example.

  I'd like to request to have the said link either be grayed out or removed completely when the option to download zips is disabled.


tkt_uuid: 311fbfd6b696142a4b2c86dcf2c4595ed3e5a0ed
type: Code_Defect
status: Fixed
severity: Important
foundin: [8474ca6747] 2010-08-23 22:24:16 UTC
private_contact: 7dbf398b8524d19867c9afaa7207ea0a602e4458
resolution: Fixed
title: Unable to "fossil conf pull all" via proxy
comment:
  <verbatim>C:\foo>fossil pull
  Server:    http://user@example.com/repo/foo.repo
  via proxy: http://192.168.2.1:3128/
                  Bytes      Cards  Artifacts     Deltas
  Send:             146          2          0          0
  Received:         384          9          0          0
  Total network traffic: 370 bytes sent, 438 bytes received
  </verbatim>
  same local repository, same remote repository url and proxy settins, user has admin privileges:
  <verbatim>>C:\foo>fossil conf pull all
                  Bytes      Cards  Artifacts     Deltas
  Send:             619         24          0          0
  fossil: can't resolve host name: example.com
  </verbatim>
  It turns out that <kbd>fossil conf</kbd> do not respect proxy setting at all. Should this be fixed or it is intentional?

  <hr><i>anonymous claiming to be urmil added on 2010-08-26 07:32:27:</i><br>
  Duplicate of [0d1a4fe14f]. See that ticket for fix.


tkt_uuid: 11622724e5b46818396db583ac839391f70c8d64
type: Feature_Request
status: Open
foundin: current trunk
private_contact: 5ddc9ef2cc5a1544558a56a3cba910a0ba4d422a
resolution: Open
title: implementation of function “popen2” on win32
comment:
  I use this function in winhttp.c to improve windows http server performance.

  see my attachment.

  Have a fun!

  <hr><i>anonymous added on 2010-08-26 09:08:18:</i><br>
  Notice:
  The child processes must set "stdin" and "stdout" to binary mode when use pipe to pass binary data.
  <pre>
      _setmode(0, _O_BINARY);
      _setmode(1, _O_BINARY);
  </pre>

  <hr><i>anonymous added on 2010-08-26 09:53:14:</i><br>
  And I have a suggestion that the subroutine "pclose2" is prone to confuse.

  Such as in winhttp.c, if the parent does not close pOut in time, the child will block on reading the pipe until his parent close the pOut.


tkt_uuid: cf50ea4d6914fb6d856988da72293098942da98e
type: Code_Defect
status: Fixed
severity: Minor
foundin: current trunk
private_contact: 5ddc9ef2cc5a1544558a56a3cba910a0ba4d422a
resolution: Fixed
title: popen2 for windows have a typo
comment:
  File popen.c:line 120
  <pre>
    fd = _open_osfhandle(hStdoutWr, 0);
  </pre>
  should be 
  <pre>
    fd = _open_osfhandle(hStdinWr, 0);
  </pre>
  I have tested it, it worked well.


tkt_uuid: a0756511991399b41255256111e03ebfe3e73a4d
type: Code_Defect
status: Fixed
severity: Critical
foundin: all of them
private_contact: 4b6281b0da561d3b4396c6498527621c42b4ad58
resolution: Fixed
title: Fossil completely screws up repositories if there's any clock skew
comment:
  This has resulted in a major frustrating hour.  If anyone does a fossil clone when they have their clock skewed, they don't find out about it until they commit eventually and get:

  <verbatim>
  fossil: ancestor check-in [4f205c7175] (2010-08-25 21:09:30) is younger (clock skew?)
  </verbatim>

  It happens because fossil clone doesn't enforce clock correctness.  None of the commands except for commit do.  So this is the pattern of complete fail:

    1.  Do a clone with your clock skewed.
    2.  Do some stuff, work really hard on something.
    3.  Add all these files you so lovingly crafted.
    4.  Try to commit your files.  Oops clock skewed.
    5.  Fix your clock, nope timeline still says original time from the clone.
    6.  Try to reclone, nope you can't undo your adds so it bitches that you can't close.
    7.  Finally, copy your .fossil out of the way, copy your source out of the way, clone again, open again, and *FINALLY* you can start working again.

  I consider this a huge block to contributors.  People will have their clock skewed.  Tough.  If it's so important than fossil should require it on clone, actually on any command that could screw up the timeline's clock and put someone into this totally screwed up state.

  <hr><i>drh added on 2010-08-28 20:14:35:</i><br>
  If you get the message "ancester check-in ... is younger" then one of two
  things is wrong:

    1.  The previous check-in was correct but your current clock is wrong.

    2.  The previous check-in contains a bad timestamp

  If the problem is (1), then all you have to do is fix the clock on your
  local machine.  If the problem is (2), then simply run "fossil ui", browse
  to the previous check-in, click on the "Edit" link, and change the 
  check-in time;  (If multiple check-ins have been made using a bad clock,
  you might want to go back and fix up several prior check-in times.)

  I think this is a very sensible approach.  What would you prefer
  Fossil do?  Check-in the change out-of-order and let the poor user
  try to figure out what happened later?  (That seems scary to me.)
  Or automatically adjust the timestamps?  (That seems even scarier.)
  If you know of a better solution, please offer a suggestion.

  <hr><i>drh added on 2010-08-29 00:22:27:</i><br>
  Modified so that the "-f" open to "commit" will override the clock skew
  check and allow the check-in to proceed.  It will then be up to an
  adminstrator to straighten out the check-in times using the check-in
  editor.

  <hr><i>anonymous added on 2010-08-29 01:56:13:</i><br>
  Another option is to obey the principle of least surprise: if clock skew is a problem, upon <em>any</em> operation have Fossil do a sanity check on the time to warn of potential lurking skew problems before you've gone too far down the work line.


tkt_uuid: 21447822de6be0614f208bbf8810c1ff233d8ccf
type: Code_Defect
status: Fixed
severity: Severe
foundin: ac8c21b986
private_contact: dac76f2fe95c1fd2dc90443d459ffaa5f29c5f2c
resolution: Fixed
title: fossil mangles autosync url
comment:
  In the latest snapshot build of fossil, I get problems with URLs in autosync:

  <pre>
  PS C:\rev\src\capstray> fossil ver
  This is fossil version [ac8c21b986] 2010-09-02 10:28:21 UTC
  PS C:\rev\src\capstray> fossil update trunk
  Autosync:  http://rev:password%40svn.thereverend.org%3A8080/capstray
                  Bytes      Cards  Artifacts     Deltas
  Send:             146          2          0          0
  c:\rev\bin\fossil.exe: can't resolve host name: rev
  </pre>

  i think the %40 for '@' and %3A for ':' is confusing autosync.  anyhow it is inconsistently applying %3A.

  <hr><i>rwilson added on 2010-09-02 23:37:14:</i><br>
  It looks like fossil remote-url is also adversely affected.  All of those +++ symbols below are some bazaar side effect.  I didn't type them in or redact any of it.
  <pre>
  PS C:\rev\src\capstray> fossil remote-url http://rev:password@svn.thereverend.org:8080/capstray
  http://rev:0password+++++++++++++++++++++++++++++++++++++revvn.thereverend.org%25
  PS C:\rev\src\capstray> fossil update trunk
  Autosync:  http://rev:0password+++++++++++++++++++++++++++++++++++++revvn.thereverend.org%25
                  Bytes      Cards  Artifacts     Deltas
  Send:             146          2          0          0
  c:\rev\bin\fossil.exe: can't resolve host name: rev 
  </pre>


tkt_uuid: a7eff56a933249258f0d902da3736ad62382e53d
type: Feature_Request
status: Fixed
severity: Cosmetic
foundin: d090292800
private_contact: d66ecbed41cfc11708f85c2d7a607eb4c13c38e6
resolution: Fixed
title: Attachment Download Link
comment:
  When viewing an attachment on a ticket if the user clicks "Download" and doesn't have the necessary privileges they are redirected to the login page. If the user doesn't have permission to download attachments maybe the link just shouldn't show up?

  <hr><i>anonymous claiming to be anonymous  added on 2010-09-04 07:37:43:</i><br>
  What is the goal of forbidding attachment downloading while allowing to view it? User can just copy-paste text attachment or run a simple script to reconstruct binary attachment from shown hex-dump, so why do such restriction exist?

  <hr /><i>anonymous added on 2010-09-27 08:51:10:</i><br />
  Attachments and checkouts both result in files transferred from the repository to the user, but it is not clear that the same permission flag (checkout) should be used for both.

  The wiki/ticket system attachments are informational in nature and could be of interest to users who are not developers, to whom checkout is usually restricted.

  I suggest that ability to read a wiki/ticket should be sufficient privilege to download any attachment to it.


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: 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: 115e95ac11631d0f3f2cf2427f1a7212999b079e
type: Code_Defect
status: Open
severity: Important
foundin: 370d5be389
private_contact: ed6dff866eb37366073a96e065746f2317e4b826
resolution: Open
title: ssh clone failing
comment:
  I am running fossil 370d5be389 both locally and on the server to which I'm connecting. Using this version of fossil, I have created a repository:

  <pre>
  remote:/home/me/ $ uname -a
  FreeBSD remote.example.com 7.3-RELEASE-p2 FreeBSD 7.3-RELEASE-p2 #0 r210461M: Sun Jul 25 11:12:37 UTC 2010
  remote:/home/me/ $ which fossil
  /home/me/bin/fossil
  remote:/home/me/ $ fossil new test-repo.fossil
  project-id: ...
  server-id: ...
  admin-user: ...
  </pre>

  I then attempt to clone this repository.

  <pre>
  local:/home/me/ $ uname -a
  Linux local 2.6.35-19-generic #28-Ubuntu SMP Sun Aug 29 06:34:38 UTC 2010 x86_64 GNU/Linux
  local:/home/me/ $ fossil clone ssh://username@remote.example.com//home/me/test-repo.fossil?fossil=/home/me/bin/fossil test-repo.fossil
  me@remote.example.com's password: 
                  Bytes      Cards  Artifacts     Deltas
  Send:              49          1          0          0
  </pre>

  Output then stops there, with the process not accepting any input or responding, until killed with ^C.

  I imagine there must be some issue with FreeBSD's SSH.

  <hr><i>drh added on 2010-09-06 23:23:41:</i><br>
  Can you ssh once from the linux box into the freebsd box?  Perhaps ssh is
  asking you to accept a certificate, and that question is getting mixed in
  with the Fossil traffic and confusing things.

  <hr><i>anonymous added on 2010-09-07 00:31:59:</i><br>
  I had to SSH into the box to build fossil and create the repo. It works fine for that.

  <hr /><i>anonymous added on 2010-09-20 00:07:47:</i><br />
  I have the same issue trying to clone from an OpenBSD server. Just hangs. Normal ssh works fine so does git and hg ssh cloning.

  <hr /><i>ron added on 2010-10-17 07:04:40:</i><br />
  I'm having the exact same problem -- "fossil clone ssh://..." used to work, but no longer does.

  The regular  <tt>fossil clone ssh://name@server/path localname</tt> just hangs forever.

  The slightly more obscure  <tt>fossil clone ssh://name@server:port/path localname</tt> gives a "fossil: ssh connection failed" error.

  Obviously, I have no problem connecting using ssh to either server, and  they are running different Linux distros -- so it's not specific to a particular distro.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-12-24 23:55:38:</i><br />
  I think I found the root of this problem. fossil is using ssh -T to connect to the server. This inhibits the creation of a pty and therefore sh is started with a pipe for stdin/stdout/stderr. This in turn makes libc use buffering. The commands are sent to this shell and the following POST request is obtained by sh too (due to the buffering). As a result, the remote fossil is waiting in read for data that will never arrive.

  I think the best approach for this is to not do fancy things involving the shell, but switch to something like:

  <verbatim>
  ssh -e none -T <host> <fossil> ssh-sync <repo-path>
  </verbatim>

  ssh-sync differs from test-http by looping on stdin until it is closed. E.g. use ssh like the equivalent of keep-alive with HTTP.

  Advantage: much less chance for a shell to mock things up. It can be easily changed to make fossil an ssh subsystem, which might be a nice option for deployment on central servers, where normal users shouldn't have shell access.

  <hr /><i>anonymous claiming to be viric added on 2011-01-26 22:09:28 UTC:</i><br />
  I also get a fossil blocked in that situation.

  If I turn --httptrace on, I can later run this:
  <verbatim>
  $ ssh -e none -T vicerveza "fossil test-http fossil/encara.fossil" < http-request-1.txt 
  </verbatim>

  which works perfectly without hanging and getting all the HTTP answer. But "fossil sync --httptrace" hangs, with the http reply file void.

  Who do you think is buffering (about libc)? Fossil? As it closes its stdout, buffers will be flushed. Do you think opensshd does the buffering? Why would it?

  This happens to me in the version [6f42e76d80] 2011-01-13.

  <hr /><i>anonymous claiming to be viric added on 2011-01-26 22:10:56 UTC:</i><br />
  Just as extra information... I have other repositories in that computer where I can sync and clone fine through ssh (some other 'repository.fossil' files next to the one that blocks on sync).

  <hr /><i>mjanssen added on 2011-02-02 01:02:18 UTC:</i><br />
  Could you check if the changes described in ticket [884c40589fcee6fa54d18eb3e8db1d1ba337a294] resolve the problem?

  <hr /><i>anonymous claiming to be viric added on 2011-02-07 23:49:23 UTC:</i><br />
  I think it is not related.

  Of course, fossil should be using an ssh remote command execution within a non-interactive shell, a non-login shell. That should make the remote interpreter to avoid anything like the MOTD, or any welcome message the user could have set.

  As fossil is not running ssh in such a way, welcome messages to the shell annoy. I could not find how to call ssh without parameters, without specifying any program to run. On the other hand, running "ssh REMOTE sh" (run the program sh) would make the shell non-login, so no displaying any welcome message. It could be used to overcome this login problem.

  But the problem I seconded above was not related to any welcome message. Some repositories sync, some hang, between the very same computers.

  <hr /><i>viriketo added on 2011-02-16 20:42:19 UTC:</i><br />
  The problem went away for my use case after [7c8519003d].

  I think the key was in transport_load_buffer(..., 1000), that was waiting for either 1000 bytes or EOF. As with ssh EOF does not come, and data transmitted may be below 1000 bytes, we need a different approach.

  With the ssh case, the call goes transport_load_buffer(..., 2), asking for two bytes or EOF.

  I'm not sure if it works in all cases.


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: 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: 7dc10e5daf3051bae7c4ae5e9775b64c2c54e271
type: Code_Defect
status: Open
severity: Important
foundin: [8474ca6747] 2010-08-23 22:24:16 UTC
private_contact: 46288be69e27505ec62204ecee889870e84b970e
resolution: Open
title: Initial import failed most likely due to brackets in file name
comment:
  <verbatim>
  fossil add .
  ...
  fossil: filename contains illegal characters: Development/TypeConverter/Source/TestResults/genericADO2-sqlanywhere[10].trx
  fossil: SQLITE_BUSY: statement aborts at 2: [ROLLBACK] cannot rollback transaction - SQL statements in progress
  fossil: unfinalized SQL statement: [SELECT x FROM sfile ORDER BY x]

  fossil version
  This is fossil version [8474ca6747] 2010-08-23 22:24:16 UTC
  </verbatim>


tkt_uuid: c6bc7f5e4167176020c5916a58cbb8386bb6d14f
type: Feature_Request
status: Open
severity: Minor
foundin: 4887a1da84
title: cvs2fossil broken due to missing "test-import-manifest" in current fossil
comment:
  When using the cvs2fossil tool to import a CVS repository
  fossil version [4887a1da84] 2010-09-10 16:11:29 UTC fails:

  >fossil: unknown command: test-import-manifest

  Using fossil version [4c931047ef] 2010-05-14 17:02:31 UTC with the cvs2fossil tool from the current version [4887a1da84] succeeds in importing the CVS tree. I have not, however, checked whether this is the only fossil function missing in getting cvs2fossil working.


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: b1934313bcfb3a90d4027be1388a63d33fd267e6
type: Code_Defect
status: Fixed
severity: Important
foundin: 8474ca6747
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: admin/stat page is not 64bit clean
comment:
  If the repository is larger than 4GB, at least "Repository size" and "Uncompressed Artifact Size" are displayed incorrectly. The calculations involving them also give bogus results.


tkt_uuid: 082487952ca580e3296cda395ccd3dcc45c3a58e
type: Code_Defect
status: Open
severity: Minor
foundin: 8474ca6747
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
title: admin/stat page is slow
comment:
  On a large scale repository, loading the repository statistic page can need multiple minutes even on a fast machine with lots of memory. No progress reports are given during that time either.


tkt_uuid: a182bd01a9c8dde66b1f55637b0a3e23c4099b02
type: Documentation
status: Fixed
severity: Minor
foundin: e5e2bd7aaf
private_contact: 1f976d4960f4fa4a2625a8595a0c93a0253ce9f6
resolution: Fixed
title: Description of 'annotate' in fossil help is incorrect
comment:
  The description provided by entering the command, "fossil help annotate" is as follows:

  "Output the text of a file with markings to show when each line of the file was introduced."

  This description is not entirely accurate. The 'annotate' command will provide the date and committer of that last check-in that modified the line, not when the line was introduced.


tkt_uuid: 22a59e9a3455d8ecb883f62e775914714c967d8b
type: Code_Defect
status: Fixed
severity: Severe
private_contact: 2cb55ab2bb328cf06cfc931d9e8c2776bb52a4d2
resolution: Fixed
title: Existing file named "MANIFEST" always overwritten
comment:
  CPAN distributions have a boilerplate set of files that need to be created - one of these is called "MANIFEST" and lists all the files to be packaged within the distribution. If the fossil repository is created inside the base folder and this file added fossil will overwrite this file with its own data and never be able to commit as the checksums change, displaying an error message <code>fossil: tree checksums before and after commit do not match</code>.

  Sadly I am unable to have this bug recreate exactly 100% of the time. It may not happen after the first commit but rather after a couple of commits - however eventually it does and the fossil repository is essentially worthless as it can no longer commit since the MANIFEST file is being tracked, yet also written by fossil at the same time. Currently the only fix I have of this is to create the repository outside of the base directory as the temp files that fossil leaves as droppings (_FOSSIL_, manifest etc) are written elsewhere.

  <hr /><i>wolfgang added on 2010-09-27 18:16:00:</i><br />
  on my branch wolfgangFormat2CSS_2 i have added an experimental setting, to change the filename of the generated manifest files (checkin [9978d2aba6]).

  <hr /><i>drh added on 2010-09-29 13:20:26:</i><br />
  Back out the change to allow the name of the "manifest" file to be changed
  since that approach causes complications in distributed systems.  Instead,
  modify "add" to allow files named "manifest" and "manifest.uuid" to be
  checked in and if such files are checked in, "checkout" and "update" will
  no longer overwrite them.


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: 8e291053ef80e56d06ad9c192ea80ce94e04d762
type: Feature_Request
status: Open
severity: Cosmetic
foundin: b48f78964e
resolution: Open
title: Color picker (edit check-in properties)
comment:
  Is it doable to include code from http://jscolor.com/ in the check-in properties page?

  I think there might be a license issue… please tell me

  <hr /><i>BMorgat added on 2010-09-23 08:46:58:</i><br />
  In particular, example at [http://jscolor.com/try.php#setting-color] seems interesting

  <hr /><i>wolfgang added on 2010-09-25 11:16:58 / edited on 15:20</i><br />
  i think, it should be possible by adding some scripting to the footer. there is an example for syntax highlighting in editor fields in the documentation.

  The new button could be added by a pre/post entry in the css for the editor box.  Eventually we have to add a new id to the color input. I´ll take a look at the sources.

  Using css/javascript in the footer enables us to have a small binary and prevent any licence problems, because adding code is an user decission inside fossil configuration.

  <hr /><i>Ratte added on 2010-09-26 11:38:55:</i><br />
  with my commit 	[5b2c837336] on my branch, i've added a version, with an user defined color edit on the checkin edit page.

  With this change, you can add jscolor's script to the header and let the script generate the color picker. The classname/id of the input are documented in the default css view on admin/edit-css. For example, you can add the following to your footer:

  <pre>
  <th1>
    if { "$current_page" eq "ci_edit" } {
      html "<script src=\"http://jscolor.com/jscolor/jscolor.js\" type=\"text/javascript\"></script>"
      html "<script type=\"text/javascript\">"
      html "var myPicker = new jscolor.color(document.getElementById('clrcust'), {hash:true})"
      html "</script>"
    }
  </th1>
  </pre>


tkt_uuid: f37c5d9fe64b6521befda46afda9caa09e0879ce
type: Code_Defect
status: Open
severity: Important
foundin: f29a826666
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Open
title: -R, --repository not recognized with "fossil branch new" cmd
comment:
  -R and --repository are not recognized when trying to create a new branch. The command synopsis and error msgs indicate it should:
  <pre>
  $ ls
  new.fsl
  $ fossil help branch
  Usage: fossil branch SUBCOMMAND ... ?-R|--repository FILE?

  Run various subcommands to manage branches of the open repository or
  of the repository identified by the -R or --repository option.

     fossil branch new BRANCH-NAME BASIS ?-bgcolor COLOR? 

         Create a new branch BRANCH-NAME off of check-in BASIS.
         You can optionally give the branch a default color.

     fossil branch list

         List all branches
  $ fossil branch new newbranch trunk -R ./new.fsl
  fossil: use --repository or -R to specify the repository database
  $ 
  </pre>

  <hr /><i>bharder added on 2010-09-23 18:48:16:</i><br />
  Have tracked (so far) to <pre>void db_open_repository()</pre> in <pre>db.c</pre> -- all looks sane up to this point (haven't dived into db_open_repository() yet).

  <hr /><i>bharder added on 2010-09-23 19:07:51:</i><br />
  Curious: removing second condition from <pre>if( access(zDbName, R_OK) || file_size(zDbName)<1024 ) (function "void db_open_repository()", db.c)</pre> things seem to work.


tkt_uuid: 99d0791365daaec739c53c8b94059e280efc9628
type: Incident
status: Fixed
severity: Critical
foundin: b48f78964e
private_contact: a563a71e5f857dde49670b64cd4ded705a2f9a18
resolution: Fixed
title: Redirect problem prevents fossil access
comment:
  After working on the wiki yesterday, I closed all instances of Firefox. This morning, when attempting to reach the wiki to continue work, FF said "The page isn't redirecting properly".

  When I attempted retrieval from a fedora command line, these were the headers returned:

  <pre>
  HTTP/1.1 302 Moved Temporarily
  Cache-Control: no-cache, no-store
  Connection: close
  Date: Fri, 24 Sep 2010 13:13:57 GMT
  Location: http://www.redistream.com/cgi-bin/f/fossil
  Server: Apache/1.3.37 (Unix) AuthMySQL/2.20 mod_perl/1.30 mod_ssl/2.8.28 OpenSSL/0.9.8a
  Content-Length: 77
  Content-Type: text/html; charset=utf-8
  Client-Date: Fri, 24 Sep 2010 13:13:57 GMT
  Client-Peer: 70.104.141.70:80
  Client-Response-Num: 1
  Client-Warning: Redirect loop detected (max_redirect = 7)
  </pre>

  fossil is accessed as /cgi-bin/f

  the contents of f are:
  <pre>
  #!/usr/local/bin/fossil
  repository: /fossil/redistream
  </pre>

  perms are a+rw to /fossil

  a new repo /fossil/bingo seems to work fine, but all work in the previous repo is unavailable.

  from the command line, 'fossil wiki list -R /fossil/redistream' works.

  fossil all rebuild /fossil/redistream has no effect.

  <hr /><i>anonymous claiming to be ttmrichter added on 2010-09-24 15:55:24:</i><br />
  I experienced this problem and reported it on the mailing list.  To recover from this (albeit with some annoying reconfiguration chores afterward), perform the following steps:

    1  BACK UP YOUR CURRENT, BROKEN DATABASE!  (I lost my backup and Richard was
       thus not able to figure out what went wrong.)
    2  <code>fossil configuration reset all -R repository-file-name</code>
    3  <code>fossil ui</code>
    4  Go through your settings and re-establish your users, access, etc.

  That should get you your code again at least.  It doesn't solve the problem of the actual redirect, of course.

  <hr /><i>anonymous added on 2010-09-24 16:23:10:</i><br />
  I created a new repo, hacked together a utility to copy wiki entries from one repo to another, viewed the new wiki, and all was well.

  I then exported the settings from the old one, imported to the new one, and was able to reproduce the error. This suggests that the error is visible in the settings file, I think, although I'm not experienced enough to know what's happening under the covers to recognize it.

  <hr /><i>anonymous claiming to be ttmrichter added on 2010-09-24 16:52:54:</i><br />
  That's certainly promising.  Can you attach the settings file here?

  <hr /><i>anonymous added on 2010-09-24 18:18:19:</i><br />
  done.

  <hr /><i>drh added on 2010-09-26 11:34:52:</i><br />
  It is still possible to mess up the "home-page" redirect by entering
  invalid information in the Setup/Configuration page.  But the instructions
  on that page have been enhanced slightly.  And there is now some defense
  against redirect loops, even if that defense is not prefect.


tkt_uuid: cc4cd990165317f38618f5b784befd3e9ff3fe61
type: Code_Defect
status: Fixed
severity: Minor
foundin: f29a826666
private_contact: beeb6059fe2a4ae184337778f9eaf830ff954499
resolution: Fixed
title: dir browser crashes on unknown checkin name
comment:
  Calling the browser page with an unknown checkin name crashes the forked server process

  example:  /dir?name=src&ci=ti

  The problem is located at browse.c/page_dir near line 145 when memcpy tries to copy NULL

  <hr /><i>wolfgang added on 2010-09-27 15:45:58:</i><br />
  with checkin [872f6a45e3] on branch the problem should be solved.


tkt_uuid: 3f748ac12ce43743dfd803baa531152c927ead2f
type: Code_Defect
status: Fixed
foundin: 4a01787609
private_contact: d542e1ecf08fcd35873e96a0140f4026f1043c20
resolution: Works_As_Designed
title: reconstruct or deconstruct failure
comment:
  fossil reconstruct fails right after fossil deconstruct.
  running fossil deconstruct ~/artifactdir from within a fossil source checkout and then fossil reconstruct clone.fossil ~/artifactdir fails.  Fossil does create clone.fossil but most of the tables contained within are empty.  fossil ui clone.fossil brings up an empty project with nothing in its timeline.
  I've also tried fossil deconstruct -R fossil.fossil ~/artifactdir instead of being inside of a checkout as above.  After running deconstruct the artifact directory is populated with artifacts and a cursory check against fossil ui shows that they contain the right things.  So I'm only guessing that reconstruct is the problem...

  <hr /><i>wolfgang added on 2010-09-28 04:46:30:</i><br />
  i tested successfully a deconstruct(into a local directory of checkout) / reconstruct(into std-dir of my multi repo. server) of my clone of fossil-scm.org.

  the reconstructed repository worked. some things to mention:
    *  the number of artifacts files matches the number of artifacts displaed on the stat page
    *  the new repo-file was much bigger than the original; the stat page shows a big number of free pages in the sqlite db

  so i think too, it should be a problem of reconstruct, but i don´t understand this part of the code :-(

  <hr /><i>wolfgang added on 2010-09-28 05:28:29:</i><br />
  i get the same error, if i use the standard deconstruct with subdirectories, named like the first 2 chars from the uuid.

  if exporting with <b>-L 0</b> in a flat list of files, it works.

  the current implemenation of reconstruct ignores subdirectories and reads files only in the given dir, not recursing into the subdirs:
  <pre>
        if( file_isdir(pEntry->d_name)==1 ){
          continue;
        }
  </pre>

  with checkin [92f8cefcc8] i've extended the command help with notes about the flat import. i think, it´s not necessary to implement recursion in reconstruct.

  <hr /><i>wolfgang added on 2010-09-29 17:14:55:</i><br />
  on trunk: recursiv version of reconstruct implemented


tkt_uuid: 1b41304d8b7acfc5446bc93eae15baae41dced71
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: wolfgangFormat2CSS_2
resolution: Fixed
title: <div style="clear: both"> is really necessary?
comment:
  <div style="clear: both;"></div> in the very end of page somehow restricts skinning of fossil. What is the goal of having this. Shouldn't it be just <code>div#footer { clear: both; }</code> property in CSS?

  <hr /><i>wolfgang added on 2010-09-28 08:22:06:</i><br />
  clear both is needed on pages with info boxes(branch,..):
  <pre>
  style.c:
    /* Put the footer at the bottom of the page.
    ** the additional clear/both is needed to extend the content
    ** part to the end of an optional sidebox.
    */
  </pre>
  This is added INSIDE the conten area. I'll try to move this to the footer style. This will require edits on all existing footers, because this has to be added to the footer style definition in the configured CSS.

  <hr /><i>wolfgang added on 2010-09-28 08:32:05:</i><br />
  should be solved with checkin [15b3ad2509] on branch wolfgangFormat2CSS_2. The css definition for div.footer has to be extended with <code>clear: both;</code>, otherwisse sideboxes on some pages(branch,..) will not extend the content area.

  <hr /><i>wolfgang added on 2010-09-28 08:46:24:</i><br />
  the display is not ok, if background color of the entirre page is different from the one, used for the content div. The siddebox maybe higher than the content area.

  So i'll try to move the clear:both back to the content area. Maybe i'll use a empty span with an own class definition.

  <hr /><i>wolfgang added on 2010-09-29 17:14:21:</i><br />
  on trunk: clear:both is only on pages using sideboxes


tkt_uuid: c179f93e633aa38569e3d46d6422f090df958edf
type: Code_Defect
status: Fixed
severity: Important
foundin: [b48f78964e] 2010-09-18 15:51:43 UTC
private_contact: 3b3fbf5f62d20e7941725f9b6dcc6cffe90f1d71
resolution: Fixed
title: fossil commit crashes when added paths contain Shift-JIS
comment:
  Trying to commit a file with a path containing Shift-JIS encoded characters (e.g. Japanese) causes fossil.exe to crash.  I'm doing this in cmd.exe with codepage set to "932 (ANSI/OEM - Japanese Shift-JIS)", but performing 'chcp 850' or 'chcp 65001' before adding the file doesn't affect the outcome.

  <pre>
  Steps to reproduce:
  > fossil.exe add "テスト\foo.txt"
  ADDED  テスト/foo.txt<br />
  > fossil.exe commit -m foo
  <<< Access Violation (0x00000005) occurs here >>>
  </pre>

  <hr /><i>anonymous added on 2010-09-30 01:12:09:</i><br />
  Amendment: I'm using Windows XP Professional with default OS codepage set to Japanese.

  <hr /><i>jan.nijtmans added on 2012-09-27 08:10:27 UTC:</i><br />
  This one should be fixed in trunk now


tkt_uuid: 93fef9f3c8649f8e00c672e698ee59c659129d84
type: Code_Defect
status: Open
severity: Important
foundin: 2010-09-18 15:51:43
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: fossil clone -A username does not work
comment:
  In windows we have usually the login name 'developer'. For clones not to set the fossil 'developer' user to the local repository administrator, we want to use: "fossil clone -A admin URL FILE".

  But after doing that, fossil keeps using 'developer' as the repository administrator.

  <hr /><i>anonymous added on 2010-09-30 09:06:19:</i><br />
  Sorry, I see that the username said with '-A' works fine, but after the clone, fossil does not say about the new admin user and its password, but about the system user name, and its password.

  So, on "fossil clone -A admin URL FILE" it does not say the password of 'admin', but the password for the name of the current system user.

  <hr /><i>anonymous added on 2010-09-30 13:50:38:</i><br />
  As an additional note, running:

  fossil -A admin URL
  (Note I did not write any FILE name)

  this makes a file named 'admin'.

  <hr /><i>renez added on 2010-09-30 21:41:04:</i><br />
  The problem is in

  void db_create_default_users(int setupUserOnly, const char *zDefaultUser)

  It first checks for the default user in the database

  it should check zDefaultUser first and if that is empty go for the 
  default user in the database


tkt_uuid: fb9a08bc0e836fc9c2cd9076bf481533985bd224
type: Code_Defect
status: Open
foundin: b48f78964e
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Default user not respected for 'fossil tag'
comment:
  We have the default user (fossil user default XXX) set different than the system user running the commands.

  After setting tags to check-ins, I noticed that the artifacts created get "U system-user-name" instead of "U fossil-default-user-name".

  <hr /><i>renez added on 2010-09-30 21:25:30:</i><br />
  If i understand you right then
    *  login tag creator is john AND john is defined as a fossil user
    *  the default user is doe
    *  if john executes "fossil tag new johntag" (in an open checkout!)
    *  then the tags are marked with user john
    *  if lear executes "fossil tag new leartag" and he has no fossil login and user anonymous has right to  tag Then the default user doe is used!

  I don' think it is a defect could you check again?


  <hr /><i>anonymous added on 2010-10-01 19:09:16:</i><br />
  I cannot reproduce this again. It was on cygwin.

  Nevertheless I think it was not the situation you explain. I will open a ticket with clear steps of reproducing the problem, if I can.

  Thank you.


tkt_uuid: ad15a8e2af8c3162d6e80f45a5ef9ef2dc4e9844
type: Code_Defect
status: Fixed
severity: Important
foundin: b48f78964e
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Cannot commit a renamed file specifying files
comment:
  After doing the operation:
  $ fossil mv filea fileb
  $ mv filea fileb

  A status shows a rename for 'fileb'. Trying to run:
  $ fossil commit fileb

  shows:
  fossil: file 'fileb' has not changed

  So having other changes in the working directory, I don't know how could I commit only the rename.

  <hr /><i>wolfgang added on 2010-10-01 10:27:35:</i><br />
  but

  fossil commit

  will work.

  <hr /><i>anonymous added on 2010-10-01 19:10:28:</i><br />
  Yes, "fossil commit" will work, but partial commit as in "fossil commit file1 file2" will not work.

  <hr /><i>anonymous added on 2010-11-24 13:54:17:</i><br />
  I have the same problem even with the most recent version of fossil [cf178577ec].

  The only way I can commit a rename/mv is by committing all the files which is not what I want to do.  I have stuff pending that is not ready to be committed but the rename can be committed now.

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

  Thanks

  <hr /><i>drh added on 2010-11-25 01:34:58:</i><br />
  If you click on the
  [/tkttimeline/ad15a8e2af | timeline] link in the sub-menu bar on this
  page, you see a timeline of all changes to this ticket interspersed
  with all check-ins related to this ticket.  From that, you can
  easily see that the fix occurred with
  check-in [2ceeeca19dfea6ed]


tkt_uuid: c9b62d38efbbbf17696c9faa01d26bb4e7130cb9
type: Code_Defect
status: Open
severity: Severe
foundin: 9d896dcadb
resolution: Open
title: fossil rebuild fails on PellesC-compile
comment:
  <pre>
  ...>fossil rebuild
  fossil: SQLITE_ERROR: no such table: main.tagxref
  fossil: no such table: main.tagxref
  CREATE TABLE filename(
    fnid INTEGER PRIMARY KEY,
  .......
  </pre>

  Running a dmc-build on the same file works!


tkt_uuid: 2a1e8e3c4b0b39e08fdde0d24d9fb35fbc66d39a
type: Code_Defect
status: Fixed
severity: Severe
foundin: c492eab395
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: content_get can recursive too deep
comment:
  I'm trying to convert an existing larger CVS repository into fossil.
  The process bar from rebuild_db had reached the 100% and fossil was spending several minutes without giving any indication on what. After attaching gdb, I saw

      #2556 0x000000000040d048 in content_get (rid=11398, pBlob=<value optimized out>) at content_.c:256

  in the bt output. So it seems like it is creating a stack frame for ~every CVS revision of a file. That is screaming like it should be done differently by not depending on huge stacks.

  <hr /><i>anonymous added on 2010-10-03 12:52:15:</i><br />
  This issue results in stack overflows with the default 2MB limit while cloning a medium sized (40MB after vacuum) repository. It also seems to be responsible for the 6h of rebuild_db() after the equivalent of fossil reconstruct.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-03 17:52:58:</i><br />
  Bumping the content cache from 50 entries to 2500 brings the rebuild time for this repository from 6h to 2min or so. It doesn't fix the deep stack nesting.

  <hr /><i>drh added on 2010-10-03 18:02:19:</i><br />
  I don't understand your issue with the stack size.  Yes, content_get() is
  deeply recursive, but each stack frame is only 52 bytes.  What workstation
  these days can't handle 100K or more recursions of a 52-byte stack frame?

  Content is stored as a sequence of deltas.  So the extraction algorithm
  is inherently recursive.  We could switch to using a loop and store the
  recursion information in memory obtained from the heap.  But what does 
  that really accomplish, other than making the code more obtuse.

  We've not had performance issues with rebuild before.  This suggests that
  your repository has a different structure than what we have seen in the
  past.  Can we clone a copy of your repository for further study, so that
  we can get a better grip on the source of your performance problem?

  <hr /><i>drh added on 2010-10-03 18:32:30:</i><br />
  Changing the cache size from 50 to 2500 makes no measurable difference
  in the rebuild time for the 10.35-year, 8400 check-in, 46MB repository
  used by SQLite.  This is further evidence that your repository structure
  is different from what we are used to and that we will need to see your
  repository in order to figure out what is slowing things down for you.

  <hr /><i>drh added on 2010-10-03 19:16:34:</i><br />
  Perhaps I have misunderstood the nature of the problem reported above.  Are
  you trying to run "fossil rebuild" or "fossil reconstruct"?  I've been
  assuming "fossil rebuild", but now I'm thinking I misunderstood.

  There is an inefficiency in "fossil reconstruct", I think.  And I think I
  have a simple fix.  But I need to fix some inefficiencies in
  "fossil deconstruct" first, so that I can construct a large set of files
  from which to test "fossil reconstruct".  I'll try to post a patch soon....

  <hr /><i>anonymous added on 2010-10-04 10:00:21:</i><br />
  I'm seeing this as part of the rebuild step of reconstruct and clone. I haven't tried "fossil rebuild". With "fossil clone", the stack nesting is deep enough to hit the stack limit. Backtrace starts with a few thousand content_get and ends with a few thousand of:

  #14478 0x000000000040d6a0 in after_dephantomize (rid=25789, linkFlag=1) at content_.c:361

  I can't share this repository, but the problematic part is a single file that has ~3000 commits, incrementally extending it. Think of a ChangeLog if you want.

  I think the best approach here is to avoid deep recursions by limiting the length of a delta chain. What do you think about storing the start and depth of the delta chain with each delta and introducing an on-disk content cache to cut it when it reaches a specific limit. Phantoms could be processed as forward process without recursion by using a small todo bag.


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: 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: 89b54e57b464fa8a51515295ae9be9da014f6024
type: Code_Defect
status: Closed
severity: Minor
foundin: cabf810b0b
private_contact: 735ae1c8a572d669bafab35cf8b1f5116c325c86
resolution: Duplicate
title: branch new asks to sign although clearsign says not to sign
comment:
  I'm always asked to sign my branch (not using omitsign) Is this intentional or should branch new obey the global clearsign setting like commit does?

  <hr /><i>drh added on 2010-10-03 18:12:08:</i><br />
  My personal opinion is that the "branch new" command should be removed.
  I don't see the point it in.  One does not have to "create" branches in
  Fossil - they spring into existence on their own as they are needed.

  I suspect that the "branch new" command stems from prior exposure to other
  VCSes (svn perhaps?) where branches do have to be explicitly created prior
  to use.  But Fossil does not work that way.  My suspicion is that the
  "branch new" command was added for familiarity for people coming from other
  VCSes.  I did not have anything to do with the "branch" command myself.

  Looking further, I see that the "branch list" command does not appear very
  helpful either, at least not in its current form.  Perhaps if "branch list"
  actually returned a list of branches, rather than a timeline, it would be
  useful for something.  But in its present form, my preference would be to
  remove the entire "branch" command - both "branch new" and "branch list".

  So, are there any objections to solving this ticket simply by removing
  the "branch" command?  What arguments are there in favor of keeping the
  "branch" command around?  

  <hr /><i>wolfgang added on 2010-10-03 18:36:42:</i><br />
  I would prefer to have a command like branch new. Before i start a new development step, which will become a branch, i usually
    *  open a new checkout
    *  define the branch
    *  update to the newly created branch

  So i prevent to checkin something on the main trunk, which shouldn't be there.

  Without defining the branch at the development start, i have to remember to give my 'branch' a name and a background color - until first commit.

  This working style is inspired by cvs, but i think, it works well with fossil.

  Instead of "fossil branch list" i always use the gui, so i don't need this command.

  best regards
  Wolfgang

  <hr /><i>renez added on 2010-10-04 20:22:02:</i><br />
  I have no proble with removing the branch command.
  In fact you can still do the cvs branch way but have to use
    *  open a new checkout
    *  define the branch like so: fossil commit --branch rene --comment "just an other branch"

  Would it be logical if you could do also:
    *  fossil commit --tag rene --comment "just an other tag"



  <hr /><i>wolfgang added on 2010-10-04 20:48:34:</i><br />
  adding the branch at commit time is possible, but doesn't match the working style, to start with a branch! The branch itself is an important step in this working style. We document the fact, that there is active development by starting the branch - without any changes!

  OK, we can do a commt with branch and force. This would be a proper replacement for the branch new command. But in this case, it should be mentioned in the documentation - maybe as a table of command replacements:

    *  scm (example: <kbd>CVS</kbd>)
    *  scm command(<kbd>cvs tag -b branch</kbd>)
    *  fossil replacement(<kbd>fossil commit -m "start new branch" -b branch -f</kbd>)

  <hr /><i>dmitry added on 2011-09-08 21:21:36 UTC:</i><br />
  Duplicate of [5e624dbfca4c].


tkt_uuid: a32ff1eddb6ac1f4996e6e0df2e5bc4207722135
type: Code_Defect
status: Fixed
severity: Important
foundin: c492eab395
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Optional R card not properly ignored
comment:
  The file format description says that R cards are optional. As lazy first run, my CVS import tool doesn't write them. This results in crashes on checkout as the non-existance of the checksum is not properly checked.

  <hr /><i>drh added on 2010-10-03 23:32:22:</i><br />
  The change in checkin.c as shown in the attached diff does not appear to
  be necessarily since checkin.c always generates the R card.


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: 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: 3bcacd36ff9e88201740e3b49d16caa651855e75
type: Feature_Request
status: Open
severity: Minor
foundin: cabf810b0b
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: Show ticket history on ticket edit page
comment:
  It's harder than necessary to reply to a ticket if you don't see what you are replying to while writing. The easiest approach would be to just duplication the comment field + email for anonymous on the start page. Preview could be done inline after the existing comments.

  <hr /><i>anonymous added on 2010-12-20 13:58:15:</i><br />
  +1. It is much more natural to comment on a ticket with all previous comments visible than having to click to go toe a special edit page.

  <hr /><i>anonymous added on 2011-04-08 16:33:45 UTC:</i><br />
  +1. Hard to add a comment when I don't see what I'm replying to

  <hr /><i>anonymous claiming to be Feral added on 2011-04-10 22:38:36 UTC:</i><br />
  Perhaps in the mean time edit in a separate page (middle click the edit button for instance); Regardless, such an enhancement OPTION is worth a +1 for certain. -- Simply seeing the comments below the field would cure this. Hrm, easy enough to add... (<i>A very quick hack</i>)

  From Admin|Tickets|Edit Ticket Page(/tktsetup_editpage):
  <code><verbatim>
  <tr><td colspan="2">
  Previous descriptions:<br /><hr />
  <th1>wiki $comment</th1>
  <hr />
  </td></tr>
  </verbatim></code>

  Above:
  <code><verbatim>
  <tr><td align="right"></td><td>
  <input type="submit" name="submit" value="Submit Changes" />
  <input type="submit" name="cancel" value="Cancel" />
  </td></tr>
  </table>
  </verbatim></code>
  At the bottom.

  <i>HTH</i>


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: cee1b58990e8107297a052107101724ccfe46275
type: Documentation
status: Fixed
severity: Cosmetic
foundin: cabf810b0b
private_contact: 3e65e23d1eb4a4006bfecf78b01bc7b16cbeb33a
resolution: Fixed
title: Questions And Criticisms using wrong tag </p> instead of </b>
comment:
  A typo on the closing tag of: 
  "<b>Fossil looks like the bug tracker that would be in your 
  Linksys Router's administration screen.</p>" where </p> should be </b>.

  So in Chrome it renders the rest of the text as bold.


tkt_uuid: a1a08cb41896b1a7075caff6bce6256f2ae90efc
type: Code_Defect
status: Open
severity: Minor
foundin: july
private_contact: 36f0fb79a71d7f6f746a9380e7eab81fa1eb1b8a
title: autosync fails after network outage
comment:
  I've noticed that when committing with autosync on, a failed network 
  connection (say you forgot to turn it on),will stop syncing on all future 
  commits until you do a another sync. 

  <pre>
  > fossil will automatically push your changes back to the server you
  > cloned from or whatever server you most recently synced with. 
  </pre>

  Can it be changed so it keeps trying to sync?


  to reproduce
  --
    #  clone repo
    #  change file under vc
    #  commit (autosync's correctly)
    #  change file under vc
    #  disconnect network
    #  commit (fails to autosync - tries and fails)
    #  reconnect network
    #  <strong>commit (fails to autosync - does not retry)*Issue*</strong>
    #  sync
    #  change file under vc
    #  commit (autosync's correctly)
  --


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: fcadf658ed282b3a2769cabf915d76125ba7eeda
type: Code_Defect
status: Fixed
severity: Minor
foundin: [b48f78964e]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Checkin ui edit "propagate color to descendants" problem
comment:
  If the checkin already has a color set, and you click 'Edit', ticking or not ticking "Propagate color to descendants" makes no effect.
  It only makes effect if you change the color from what it was.

  <hr /><i>anonymous claiming to be viric added on 2010-12-17 22:11:56:</i><br />
  Hello drh,

  I think the change in [2080d52168] does not handle the case of "disabling the propagate color to descendants", if it was enabled.

  Did you mean this?


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: 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: a888fc2aa72073f4ae6697ff4e427737508eb737
type: Documentation
status: Closed
severity: Minor
resolution: Fixed
title: typographic error in "fossil ticket" help
comment:
  Run the the ticket report ---> Run the ticket report

  <hr /><i>wolfgang added on 2010-10-06 19:11:42:</i><br />
  fixed with checkin [3c6f67fc81]


tkt_uuid: 96276d63634dacb9a0465db0a594a935f99a4018
type: Feature_Request
status: Deferred
severity: Cosmetic
foundin: 2010-10-05 03:55:49
resolution: Open
title: Shunned artifact remain in log without a link to the artifact
comment:
  I created a 'test' ticket to try my newly defined settings on the "New Ticket"  page.

  I shunned it then rebuilt and the log on this artifact now display:<br>
  rcvid: 20<br>
  User: Simon <br>
  Date: 2010-10-07 05:34:23 <br>
  IP Address: 127.0.0.1 <br>
  Artifacts: <br>

  I find it odd and I'm unsure if it is the expected behavior.

  If it is, I suggest changing it to removing the log associated with a shunned artifact upon rebuild or displaying *Shunned* or *Shunned on 2010-10-07 06:03:03* beside artifact.


tkt_uuid: 9a768781e4c5fd4cd6b553232d761f0f7febfa0e
type: Feature_Request
status: Deferred
severity: Cosmetic
foundin: Fossil version 2010-10-05 03:55:49
resolution: Open
title: Email information stored for tickets not removed on shun
comment:
  I created a 'test' ticket to try my newly defined settings on the "New Ticket" page.

  I shunned it then rebuilt and upon viewing the repository with an SQLite database browser I noticed that associated email of shunned artifact remain in the database in the "Conceiled" table.

  I'm unsure it is the expected behavior.

  I suggest removing these values when an artifact is shunned.


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: 0fd3c7d243e74adf4d51d6f36d7d5d294245bac4
type: Code_Defect
status: Open
severity: Minor
foundin: 12a79e5b93
resolution: Open
title: wiki inserts P tags in tables
comment:
  Fossils wiki inserts extra p tags around the first row in the first column of every table, for example:
  <verbatim>
  <table>
   <tr>
    <td>first item</td>
    <td>second item</td>
   </tr>
  </table>
  </verbatim>

  renders as

  <verbatim>
  <table>
   <tr>
    <td><p>first item</p></td>
    <td>second item</td>
   </tr>
  </table>
  </verbatim>

  <hr /><i>anonymous added on 2010-12-27 13:01:03:</i><br />
  The following small patch seems to fix the problem:
  <pre>
  Index: src/wikiformat.c
  ===================================================================
  --- src/wikiformat.c
  +++ src/wikiformat.c
  @@ -1404,10 +1404,11 @@
             if( backupToType(p, MUTYPE_TABLE|MUTYPE_TR) ){
               if( stackTopType(p)==MUTYPE_TABLE ){
                 pushStack(p, MARKUP_TR);
                 blob_append(p->pOut, "<tr>", 4);
               }
  +            p->wantAutoParagraph = 0;
               pushStack(p, markup.iCode);
               renderMarkup(p->pOut, &markup);
             }
           }else
           if( markup.iType==MUTYPE_HYPERLINK ){
  </pre>

  <hr /><i>anonymous added on 2010-12-27 13:13:51:</i><br />
  You can use:
  <verbatim>
  <nowiki>
  </nowiki>
  </verbatim>


tkt_uuid: 0cb89f4c72e3b957f37821dd1b26780f690e8ace
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: [8995df3aee]
resolution: Fixed
title: Misarranged lines in fossil tag help text
comment:
  The following text appears at the end after running "fossil help tag":

  <verbatim>will be taken as an artifact or baseline ID and fossil will
  probably complain that no such revision was found. However

    fossil update tag:decaf

  will assume that "decaf" is a tag/branch name.

  only allow --date-override and --user-override in 
    fossil tag add --date-override 'YYYY-MMM-DD HH:MM:SS' \n                  --user-override user 
  in order to import history from other scm systems</verbatim>

  <hr /><i>anonymous added on 2010-10-07 12:09:53:</i><br />
  Changed ticket title from "unnecessary" to "misarranged." It looks like the text describes the timestamp override option for <tt>fossil tag</tt>.

  <hr /><i>wolfgang added on 2010-10-07 16:10:34:</i><br />
  patch added to branch wolfgangTicketCmd ([8041eab372])


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: e94aee5905e991c9d69df13d5e8e4ea46817b28e
type: Feature_Request
status: Closed
severity: Minor
foundin: f93a54d0ba
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Time line should shorten commit message
comment:
  At the moment, the UI prints the full commit message in the time line. As this messages can be very long, that's generally just a waste of space.

  I would suggest to truncate the message by default to something like 200 characters or so and add an option to show the rest (either via JS or form).

  <hr /><i>wolfgang added on 2010-10-10 12:43:57:</i><br />
  This i a little bit complex.

  Timeline can be displayed in 2 ways:
    *  no block markup - here we can cut the text simply
    *  using block markup - the problem is, to close all used elements in the html hierachy and do it in a way, not destroying the layout.


  <hr /><i>anonymous claiming to be anonymous2 added on 2010-10-10 13:30:24:</i><br />
  What about a setting to only display the first paragraph in the timeline? Then it would be possible to have a summary line (followed by an empty line) + a more detailed description that is only visible on the info page.

  <hr /><i>wolfgang added on 2010-10-10 15:15:27:</i><br />
  If block rendering is activated, the commit messages will be formated like wiki pages.

  Inside wiki pages it's possible to use the fossil internal wiki format combined with pure html. If a commit message uses for example tables, i cannot simply stop rendering at the first end paragraph after n characters. I t can be, that this paragraph is inside a table cell. Cutting the commit message may corrupt the complete gui display.

  To handle this situation, fossil has to
    *  parse it's own html - this might be possible
    *  parse all currently unhandled html - we have no code for this!

  For me, the effort to handle shortened html is to much for this. The only thing, i could accept would be, to offer the opportunity to shorten the simplified text display but leave the block rendering variant unchanged.

  <hr /><i>drh added on 2010-10-11 13:50:22:</i><br />
  Fossil already gives you the capability to limit the length of timeline
  messages.  Under the Admin/Timeline menu, you can specify the maximum
  length of any timeline message. If the maximum length is 0, then there
  is no limit.  That is the default.  Setting a limit of 350 to 500 bytes
  seems to work pretty well for the pkgsrc repository.


tkt_uuid: cf67fa9343e145dee3d2600da7184eaffa8064ce
type: Incident
status: Closed
severity: Important
foundin: [cfbbad3d48] 2010-10-08 10:59:53 UTC
resolution: Works_As_Designed
title: Fossil crashes when committing
comment:
  I wanted to see if Fossil would be able to pull changesets/revisions from one repo to another (like Hg does). However, during testing, it kept crashing when I tried to commit.

  Here are the steps I did:
  <verbatim>
  ** The following commands all occur within the "test1" directory
  $ fossil new tr1.fsl
  $ fossil open tr1.fsl
  $ fossil add file1.txt
  $ fossil ci -m "Initial commit"
  ...Edited file1.txt...
  $ fossil ci -m "Removed some lines"
  $ cd ../test2

  ** The following commands all occur within the "test2" directory
  $ fossil clone http://localhost:8080/ tr2.fsl -> success
  $ fossil open tr2.fsl -> success
  ..Edited file 1.txt...
  $ fossil ci -m "Added lines at the end"
  </verbatim>

  I am using a Windows 7 box for this.

  <hr /><i>anonymous added on 2010-10-08 15:46:27:</i><br />
  I forgot to mention: tr2.fsl is a clone of tr1.fsl.
  Running sqlite3 "pragma integrity_check" on both test repos returns ok.

  <hr /><i>wolfgang added on 2010-10-08 16:03:41:</i><br />
  i could reproduce the error on Win XP SP2

  The error does not appear, if autosync is switched off.

  <hr /><i>anonymous added on 2010-10-08 18:05:50:</i><br />
  Ah, yes. New repos do have that option enabled by default.

  I just tried it now and it works. Thanks!

  <hr /><i>anonymous added on 2010-10-08 18:17:27:</i><br />
  Can I at least request for an error message to be shown instead of Fossil crashing? That way, it could point users to which they need to change.


tkt_uuid: 3567d7dd0cd5b2134421dced890bdeba5655b391
type: Code_Defect
status: Open
severity: Important
foundin: [e3292ef8c3] 2010-09-24 17:07:49 UTC
private_contact: 799fcce709e3f04aa96834caec7945b22b8b6a57
resolution: Open
title: occupied port 8080 has been used instead of available 8081
comment:
  I had Plone running locally on 8080

  I started <pre>fossil ui</pre> and instead of 8081 port, 8080 has been used. Plone has been replaced by fossil web interface.

  There is no message displayed. I expected
  <pre>Listening for HTTP requests on TCP port 8080</pre>

  I started i other source tree (other project) also <pre>fossil ui</pre> and I got properly 
  <pre>Listening for HTTP requests on TCP port 8081</pre>

  I'm using Mac OS X


tkt_uuid: c8c0b78c840e4df9aefd2687bf6cac5abfce08e5
type: Code_Defect
status: Fixed
severity: Important
foundin: 2010-10-14 20:28:49 [703653489e]
private_contact: 990fc58e2fbfe89bc7012d67ec7054419441d450
resolution: Fixed
title: Windows 7: "fossil ui" and "fossil server" fail
comment:
  OS: Windows 7 Ultimate

  With fossil.exe installed in C:\Windows\system32, "fossil ui" and "fossil server" fail to start the web server. On each attempted access to http://localhost:8080 , the command prompt outputs:

  <pre>'"fossil"' is not recognized as an internal or external command,
  operable program or batch file.</pre>

  Windows Firewall is off and there are no other firewalls installed.

  <hr /><i>anonymous claiming to be Arnel added on 2010-10-08 18:03:34:</i><br />
  Are you able to edit your PATH variable and add another folder (e.g., C:\Users\<username>\Documents) where you can transfer fossil.exe instead? Fossil probably does not understand %SystemRoot%\system32, which is what's on PATH for that folder.

  <hr /><i>wolfgang added on 2010-10-10 12:32:16:</i><br />
  This is not a problem of fossil.

  The mentioned error message is a MS Windows message, documenting, that the requested command is not found in the path.

  So you should check:
    *  is the path really correct
    *  how do you call fossil, MS Windows doesn't use the path variables in all call variants

  <hr /><i>anonymous claiming to be arichardson (op) added on 2010-10-15 09:10:18:</i><br />
  >Arnel added on 2010-10-08 18:03:34:<br>
  >Fossil probably does not understand %SystemRoot%\system32, which is what's on PATH for that folder.

  I think you've hit on the problem here. It works perfectly well on XP though, which is why I'm puzzled. I will try your suggestion but ultimately will end up with Fossil back in system32, where (IMO) it belongs.

  >wolfgang added on 2010-10-10 12:32:16:<br>
  >This is not a problem of fossil.

  I believe it is. Please see below for my reasons.

  >The mentioned error message is a MS Windows message, documenting, that the requested command is not found in the path.<br>
  ><br>
  >So you should check:<br>
  ><br>
  >is the path really correct<br>
  >how do you call fossil, MS Windows doesn't use the path variables in all call variants<br>

  Looks like you didn't read my ticket. I'll explain again:

  At the command prompt, I'm running "fossil ui". ("fossil server" does the exact same thing.) There is a known good, open fossil in the working directory. Fossil opens a web browser (Firefox in this case) and gives it the path "localhost:8080" as expected.

  The problem occurs when Firefox accesses localhost:8080. Fossil is definitely listening on 8080/tcp because it reacts to connections on localhost:8080. The way it reacts is to output this error on stdout:

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

  instead of returning a web page to the browser.

  You're right that this error is generated by the OS, but I believe the flaw is in Fossil. IMO Arnel's suggestion is correct, that Fossil is not interpreting %SystemRoot%\system32 properly. I will now attempt to prove it.


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-15 09:13:21:</i><br />
  I mean, I will attempt to prove it in 8 hours or so, when I get home from work and have access to my Windows 7 box.


  <hr /><i>anonymous claiming to be Arnel added on 2010-10-15 11:28:11:</i><br />
  I can confirm "fossil server" works with fossil.exe inside the %SystemRoot%\system32 folder from a Windows 7 box I'm using. 

  With "fossil ui" I'm getting the "'http:' is not recognized...batch file" message. Which is odd, considering I can run "start http://127.0.0.1:8080/" from within the C:\Windows\system32 folder.

  <hr /><i>anonymous claiming to be Arnel added on 2010-10-15 11:34:02:</i><br />
  Sorry, I forgot to add: "fossil ui" does provide the error message I described earlier when I ran it from the command-line, *BUT* if I open a browser and go to http://localhost:8080/ it opens the web UI for Fossil.

  <hr /><i>drh added on 2010-10-15 13:58:28:</i><br />
  I think the problem comes about because Fossil tries to run a copy of
  itself by calling system() with argv[0] being used as the command name.
  Apparently on windows, argv[0] is not a reliable name for the program
  that is being run.

  Does anybody have any suggestions for an alternative way to get a
  windows program to run a copy of itself?

  <hr /><i>rwilson added on 2010-10-15 15:30:22:</i><br />
  is this recently introduced?  i've been using fossil on windows 7 64 bit since it was released with no problems (not counting a few hiccups along the way in the win32 build).  i haven't updated my build for about six weeks, so i'm not experiencing this issue (Fossil version [7aae4ef068] 2010-09-03 01:57:41).

  <hr /><i>drh added on 2010-10-15 16:13:52:</i><br />
  Nothing has changed in this area recently.  I think the people that are
  having problems simply have an unusual windows configuration.

  <hr /><i>wolfgang added on 2010-10-15 16:37:14:</i><br />
  For my XP machine, argv[0] is correctly filled with the complete path. A windows 7 Home Premium machine shows only the filename(fossil.exe), not the complete path. Both tests used a standard cmd.exe console starting fossil with <kbd>fossil help ver</kbd> and fossils install directory in environemt variable PATH. =>
    *  on XP argv[0] seems to be filled with the complete path, so that the environment is not used
    *  on Win 7 is only the filename stored in argv[0]. This way it depends on the environment/registry settings, whether fossil is found or not.

  The contents of argv[0] can be tested with

  fossil help ver

  The name of the binary, displayed in the output is replaced with argv[0]. 

  Windows uses diffent ways to find a binary (calling via cmd.exe or calling by explorer,..). So if argv[0] doesn't contain a full path, the error  may appear.

  I've found a link to some information, how to get the application location:

  [http://msdn.microsoft.com/en-us/library/ms683197]:
  <pre>
  DWORD WINAPI GetModuleFileName(
    __in_opt  HMODULE hModule,
    __out     LPTSTR lpFilename,
    __in      DWORD nSize
  );
  </pre>

  <hr /><i>wolfgang added on 2010-10-16 14:48:55:</i><br />
  I think, using <code>pgmptr</code> doesn't really solve the problem. Reading the microsoft msdn pages, i see:

  <blockquote>
  When a program is run from the command interpreter (Cmd.exe), _pgmptr is automatically initialized to the full path of the executable file. For example, if Hello.exe is in C:\BIN and C:\BIN is in the path, _pgmptr is set to C:\BIN\Hello.exe when you execute:
  Copy

  C> hello 

  When a program is not run from the command line, _pgmptr might be initialized to the program name (the file's base name without the file name extension) or to a file name, relative path, or full path.
  </blockquote>
  If the fossil.exe is called by tools like anysrv/nssm/.., the value of pgmptr may be a relative or absolute path or only the filename.



  <hr /><i>anonymous claiming to be arichardson added on 2010-10-18 12:41:22:</i><br />
  >Nothing has changed in this area recently. I think the people that are having problems simply have an unusual windows configuration.

  Could you narrow this down a bit? Tricky I know, but did you have something particular in mind? It's a standard Windows 7 Ultimate install. I haven't applied vLite or anything, all the usual parts seem to be there.


  <hr /><i>anonymous added on 2010-10-19 08:03:50:</i><br />
  Richard, perhaps you refer to this? [http://fossil-scm.org/index.html/tktview?name=44002a7760|44002a7760]<p>I have since set a HOMEPATH (which, OT, I think might be an artifact of AD, which would explain why I've never seen it as I've never had an AD domain at home).


  <hr /><i>wolfgang added on 2010-10-19 08:26:31:</i><br />
  The original poster uses windir/system32. I think it's not a good idea, to use such an special OS folder for a user installed executable. Especially Vista/Win7 haves special mechanismns to protect this folder. In addition to this: windows uses differrent ways to expand paths while searching executables(see above).

  I don't think, that we should try to handle these MS-Windows specific problems.

  Many of us do not have any problems with a win7 fossil install. For me the following works pretty good (on different windows versions (XP Home, XP Prof., Win7 HP):

    1  install fossil into a fodler in the data area, including executable and repositories (this makes it easy to copy the installation between different computers)
    2  add the install directory to the PATH environment variable
    3  install a service(nssm/anysrv/..) using the complete path, so the OS path search is deactivated

  The problem of the original poster should be solved, if the service uses a fully qualified path instead of giving only fossil (and letting the OS search for the path).

  In my opinion, this isn't a problem, which should/can be solved in fossil => Close ticket?

  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 08:58:10:</i><br />
  > starting fossil with "fossil help ver"

  I'm not sure this test does what you think it does. It didn't work on my Ubuntu workstation:

  <pre>arichardson@vostro-1:~$ fossil help ver
  Usage: fossil version

  Print the source code version number for the fossil executable.</pre>

  When I used the full path, though, it did work...

  <pre>arichardson@vostro-1:~$ `which fossil` help ver
  Usage: /usr/bin/fossil version

  Print the source code version number for the fossil executable.</pre>

  ... but using the full path defeats the point, I think. This is on a 32-bit Linux. I do have a 64-bit Linux somewhere but that test will have to wait.

  Windows XP (32-bit), same result:

  <pre>C:\Programs\Windows Resource Kits\Tools>fossil help ver
  Usage: fossil version

  Print the source code version number for the fossil executable.

  C:\Programs\Windows Resource Kits\Tools>%WINDIR%\system32\fossil.exe help ver
  Usage: C:\WINDOWS\system32\fossil.exe version

  Print the source code version number for the fossil executable.

  C:\Programs\Windows Resource Kits\Tools></pre>

  I really must change the starting dir. My projects folder would be much more handy.

  My 64-bit Windows system is at home and offline, so that test will also have to wait.

  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 09:11:14:</i><br />
  >The original poster uses windir/system32. I think it's not a good idea, to use such an special OS folder for a user installed executable.

  I can't agree with that. The executable should absolutely not care where it's installed. Why should it stop working in some magic location? If the OS wants to prevent the installation, fine, if group policy wants to prevent it, also fine, but otherwise the executable should work as expected.

  I have installed many programs in %windir%\system32 in the past and this is the first time there's ever been a problem.

  >Especially Vista/Win7 haves special mechanismns to protect this folder.

  The only "special mechanism" is a dialog box saying "you want to do this? really?" and me saying "yes".

  >In addition to this: windows uses differrent ways to expand paths while searching executables(see above).

  As far as I can see this is the only valid argument against fixing this, that it would require OS-specific code in a "#ifdef _WIN32" block. I hate that kind of thing normally.


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 09:37:52:</i><br />
  >Does anybody have any suggestions for an alternative way to get a windows program to run a copy of itself?

  Thinking about it, is this the best way to do it? Could we not just call the cgi function instead of launching a separate instance of Fossil?


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 12:31:31:</i><br />
  Here's another unfinished patch (for src/winhttp.c) to implement the internal call.

  [https://dreamtrack.dnsalias.com/downloads/self-call.diff]

  It doesn't trigger the error any more, but neither does it return anything to the browser.

  It <i>almost</i> works, now if only I could figure out how to call into main.c from winhttp.c! I'd prefer to do that than separate out the required functions into their own .c file.


  <hr /><i>drh added on 2010-10-19 12:40:56:</i><br />
  Thanks for the patch, Fatman, but a solution that runs each HTTP request in
  a thread will be unacceptable.  Fossil is designed around processes, not
  threads.  The amount of work required to make Fossil threadsafe would be prohibitive.

  See also, [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf]

  I need a way to start a new process (not a thread) running the same binary in Windows 7.  Apparently the technique of calling system() on <nowiki>argv[0]</nowiki> or on _pgmptr works for all prior versions of Windows does not work in Windows 7.  Nobody has yet explained to me why it doesn't work, and I do not have access to Windows 7 to test it for myself, but apparently it does not.  I would prefer to fix the problem, rather than rearchitect all of Fossil.


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 13:12:04:</i><br />
  >a solution that runs each HTTP request in a thread will be unacceptable

  Fair enough. I saw "_beginthread" in winhttp.c and assumed it would be ok to use it. I'll think some more.


  <hr /><i>anonymous claiming to be arichardson added on 2010-10-19 13:23:14:</i><br />
  > Nobody has yet explained to me why it doesn't work

  I'd like to know that too. It will affect my work in future.

  > I do not have access to Windows 7 to test it for myself

  Would it be useful if I set up a Windows 7 VM and you could fiddle with it remotely? My internet connection is fast enough for that, I think, and my server should be able to cope with a small VM. Just an idea there.


  <hr /><i>anonymous added on 2010-10-19 14:12:33:</i><br />
  I wonder, could this be a related issue?

  [http://msdn.microsoft.com/en-us/library/ms683197(VS.85).aspx#4]

  Maybe system() does a GetModuleFileName() call internally. I <i>have</i> been using the 32-bit version of Fossil on my 64-bit OS. If Win7 64-bit screws with 32-bit GetModuleFileName() calls, a simple recompile with MinGW-w64 might fix the problem.

  Well, probably not. But I'm hoping for an easy fix. :P 

  <hr /><i>rwilson added on 2010-10-19 23:34:38:</i><br />
  i keep seeing people (including drh) in this thread saying that fossil doesn't work in windows 7.  again, it's working for me on windows 7 64 bit, and has always worked.  i have it installed in c:\rev\bin, which is different than the OP, but i agree it shouldn't make a difference.  you can see my easyunit mirror at [http://svn.thereverend.org:8080/easyunit].  so what is different about the OP's configuration?

  <hr /><i>anonymous claiming to be achavasse added on 2010-10-20 13:40:04:</i><br />
  I also have fossil server and fossil ui both working perfectly on two different windows 7 machines. One is running windows 7 32 bit, the other windows 7 64 bit.

  In both cases I too have been lazy and just copied fossil.exe to c:\windows\system32.

  fossil help ver doesn't show the full path either, only "fossil".

  The version I use is 7954ccba68 that I built myself with mingw.

  I think the MSDN link a couple comment above is interesting. I built fossil directly on each machine I use it on, so the one I run at home on my 64 bits windows 7 is a 64 bit binary and on my work machine it is a 32 bit binary, so maybe the problem happens only when running a 32 bits binary on a 64 bit windows.

  I'm going to try the 32 bit binary I use here at work on my 64 bit windows 7 when I'm home in a few hours and see what happens.

  <hr /><i>anonymous claiming to be achavasse added on 2010-10-20 18:29:18:</i><br />
  Update: upon verification I actually installed mingw32 on my home computer (the one running windows 7 64bit) and I'm running a 32 bit build of fossil there.

  So it's not a problem of 32 bit fossil running on a 64 bit windows.

  <hr /><i>anonymous added on 2010-10-20 18:51:20:</i><br />
  I would suggest to the person having this problem to use Process Monitor (link below) to log file accesses that are done when running fossil ui.

  It will show exactly where windows is trying to load fossil from and what exact problems it encounters while doing so. It might well be something else than a path problem, like a permission problem of some sort.

  [http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx]

  <hr /><i>jan.nijtmans added on 2012-08-30 08:58:32 UTC:</i><br />
  proposed fix committed to branch ticket-c8c0b78c84

  <hr /><i>jan.nijtmans added on 2012-09-24 09:03:58 UTC:</i><br />
  This one should be fully fixed on trunk now


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: 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: c6376b37a87171e2f1d2dc2bb7affd6c262e7f4a
type: Code_Defect
status: Open
severity: Important
foundin: 7aae4ef068
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
title: fossil rename says 'file outside of checkout tree' when it isn't
comment:
  Fossil undo doesn't work after a mv/ren operation.  Also, I'm unable to move the file back up the source tree because fossil thinks the path is outside of the checkout tree.  I tried several variations.  Here is my repro on Windows 7 using PowerShell:
  <pre>
  PS C:\rev\src\test> fossil ver
  This is fossil version [7aae4ef068] 2010-09-03 01:57:41 UTC
  PS C:\rev\src\test> fossil new ..\test.fossil
  project-id: 642e99bc40ce3ba6e4b643dd79c1f8e14b55a645
  server-id:  2fdbc1bdee11d946bba0105c34727630449caf84
  admin-user: rwilso20 (initial password is "670296")
  PS C:\rev\src\test> fossil open ..\test.fossil
  PS C:\rev\src\test> ls


      Directory: C:\rev\src\test


  Mode                LastWriteTime     Length Name
  ----                -------------     ------ ----
  -a---         10/6/2010  11:18 AM       7168 _FOSSIL_


  PS C:\rev\src\test> echo 123 > x.txt
  PS C:\rev\src\test> fossil add .\x.txt
  ADDED  x.txt
  PS C:\rev\src\test> fossil commit -m "1"
  New_Version: aabc5e2eea1539d113322daa8a0395304c184a66
  PS C:\rev\src\test> md sub


      Directory: C:\rev\src\test


  Mode                LastWriteTime     Length Name
  ----                -------------     ------ ----
  d----         10/6/2010  11:20 AM            sub


  PS C:\rev\src\test> fossil mv .\x.txt sub
  RENAME x.txt sub/x.txt
  PS C:\rev\src\test> fossil undo
  c:\rev\bin\fossil.exe: no update or merge operation is available to undo
  PS C:\rev\src\test> move x.txt sub
  PS C:\rev\src\test> fossil mv .\sub\x.txt .
  c:\rev\bin\fossil.exe: file outside of checkout tree: .
  PS C:\rev\src\test> fossil mv .\sub\x.txt .\
  c:\rev\bin\fossil.exe: file outside of checkout tree: .\
  PS C:\rev\src\test> fossil commit -m "2"
  New_Version: 910c565be0c6b70c70a0725eba977abec16837b5
  PS C:\rev\src\test> ls


      Directory: C:\rev\src\test


  Mode                LastWriteTime     Length Name
  ----                -------------     ------ ----
  d----         10/6/2010  11:21 AM            sub
  -a---         10/6/2010  11:24 AM        211 manifest
  -a---         10/6/2010  11:24 AM         41 manifest.uuid
  -a---         10/6/2010  11:24 AM       8192 _FOSSIL_


  PS C:\rev\src\test> fossil mv .\sub\x.txt .
  c:\rev\bin\fossil.exe: file outside of checkout tree: .
  PS C:\rev\src\test> fossil mv .\sub\x.txt .\
  c:\rev\bin\fossil.exe: file outside of checkout tree: .\
  PS C:\rev\src\test>
  </pre>


tkt_uuid: 7cb0e01aab61756aa60d95e2fb406aa363f365cf
type: Code_Defect
status: Closed
severity: Minor
foundin: 12a79e5b93
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Duplicate
title: "<!--" in .wiki files is translated to visible code
comment:
  If an embedded doc .wiki file has some text in the shape of html comments (<!-- blabla -->) it appears translated to &lt;!-- and therefore visible.

  I think it should not be shown and maybe kept as html comments visible in the source of the page, but not rendered by the browser.

  For example, see how could I write it even in this ticket.

  <hr /><i>dmitry added on 2011-09-08 23:14:33 UTC:</i><br />
  Duplicate with more discussion: [3e6775edfe].


tkt_uuid: e0352240adeafd4d4d8d297c2141dacf076507b7
type: Feature_Request
status: Open
severity: Important
foundin: 356e877cea
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Open
title: Support for importing vendor source
comment:
  When tracking third party software in Fossil, I want to have better support for checking external source in in full.

  Handling it manually is tiresome:
  <pre>
  fossil open ~/repo/project vendor --keep
  fossil add $(fossil extras --dotfiles)
  fossil rm $(fossil changes | awk '$1 == "MISSING" {print $2}'
  fossil ci -m "Import vendor version 6.6.6"
  </pre>
  The shell magic is error-prone, it works badly with files containing white space in names, it is good luck I haven't run into problems yet.

  I propose to create some "import" command that synchronizes inventory with file system.

  <hr /><i>anonymous added on 2010-10-13 13:26:02:</i><br />
  I support this. The import command should also add a non-propagating tag like CVS does to make it easier to keep that of what version was imported.

  <hr /><i>wolfgang added on 2010-10-13 19:44:04:</i><br />
  I have added an experimental IMPORT command to my branch wolfgangHelpCmd (checkin [b37d5f256e]).

  Maybe you take a look at it and/or test it in your environment.

  The command help is:

  <pre>
  Usage: fossil.exe import

  If used in a checkout, the current checkout file tree is synchronized
  with the repository:
   * all files, existing in the file tree but not in the repository
     (files displayed using the "extra" command)
     are added to the repository - see also "add"
   * all files, existing in the repository, not existing in the file tree
     (files displayed as MISSING using the "status" command)
     are removed from the repository - see also "rm"
  The command does not "commit"!

  This command can be used to track third party software.
  </pre>

  best regards
  Wolfgang

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-13 21:38:34:</i><br />
  Well, coming from the cvs model, effective 3rd party management includes:

  (1) A separate branch with the unmodified sources in a specific location.
  Ideally, the import command does a sanity check that the "vendor" branch doesn't contain anything else.

  (2) A symbol for each each imported version. Normally, this is the release version from upstream or the commit id or whatever. This should be a non-propagating tag.

  (3) A merge from the vendor branch to trunk. As fossil keeps track of the merge state, this is easier than with cvs, where it had to be simulated with cvs up -j old-tag -j new-tag.

  A really useful "fossil import" would therefore be:

      fossil import REPOSITORY PATH BRANCH TAG

  and not require a checkout of the proper branch. The merge part is easy enough to do with the normal merge processing and can be skipped.

  <hr /><i>anonymous added on 2010-10-14 07:54:40:</i><br />
  Separate branch is easy to create yourself, the problem is that you can't merge from it even to empty trunk:
  <pre>
  $ fossil merge vendor
  fossil: lack both primary and secondary files
  </pre>
  Perhaps this should be fixed too.

  A symbol for each version isn't needed, you have version identifiers already,
  and you can always tag what you want.


  <hr /><i>wolfgang added on 2010-10-14 10:20:26:</i><br />
  I think - like mentioned above - creating a branch and tag with proper vendaor tags can already be done using the standard fossil commands.

  The main problem, deescribed at the beginning was the sync of the checkout file tree and the files in the repository. This can be hanlded with the new commen.

  Would the merge work, if we use the cherrypicck option? I cannot test it now, but i'll try it later and i think, it will work.

  The only problem, we may have is the fact, that the import command needs to be called from an ceckout. The new command shares most of its code withalready exitant code for add/extras/rm and all these ccommands are only implemented, when called from an existing checkout. 
  It will be complex to extendd it to work with standalone checkouts, and i don't believe, that it's neccesary:

    *  First checkin:<br>fossil new x.fsl;mkdir x;cd x;fossil open ..\x.fsl<br>
       copy source tree to x<br>fossil import<br>fossil commit -m "..."<br>and
       set branches/tagss to whatever you want
    *  further checkins:<br>cd x;fossil update VENDORBRANCH<br>
       remove old data and copy new source tree<br>
       fossil import;fossil commit -m ".."

  Merging to main development branch should be possible by using cherrypick

  best regards

  Wolfgang

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-14 10:41:57:</i><br />
  Re tagging the import:

  I've had to deal with vendor imports that often enough lack any version number other than some RCS ids in the file. Importing files directly from the upstream version control system is a common task for larger projects. Sadly enough, having to identify what changed between different imports is also often enough required.

  Re main problem:

  I consider "import" a convenience command. The original set of commands can be simplified a lot by removing all files first with find . -type f -print0 | xargs -0 fossil rm, copying the new files and doing find . -type f -print0 | xargs -0 fossil add. That's safe for spaces in names etc. Having to switch to the vendor branch requires either creating another checkout and copying files or switching from a large checkout to a minimal one. The latter isn't a lot of fun if you have a working copy size of > 100MB and uncommitted changes.

  Not having to move the vendor branch has another very property, it reduces the chance of accidentally messing it up.

  Re fossil merge failure:

  This looks like a bug. Merging to the initial empty version should certainly be allowed as special case. It works fine if any commit was done on trunk first.

  <hr /><i>wolfgang added on 2010-10-14 13:30:13:</i><br />
  Following my proposol, you could see any changes between different imports. Though we add/remove only some of the file, the commit will also track the differences between changed files. Creating a vendor branch on the first import and using a tag like VENDOR_1 and using new tags on this branch for following import (like VENDOR_2). All changes (new/rm and change) can be seen using "fossil diff --from VENDOR_1 --to VENDOR_2". As long, as we use the vendor branch only for the checkin's, we can also see them in the gui.

  The import command is useful on OS != *nix. On windows, scripting these commands is a little bit tricky. Because add/extras can work recursiv, i think it's a good extension, to offer the mixed comman import.

  I would always use multiple checkouts, to handle venddor imports - on the vendor branch - and development - main trunk or development branch. 

  <hr /><i>anonymous added on 2010-10-14 14:03:04:</i><br />
  Merge bug filed separatly as 144180bf7db83724a9c647c60a411512cf605e50
  Test case provided.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-14 14:11:54:</i><br />
  If you just want to synchronize the file list with the working copy, a better command would be to adopt Mercurial's addremove.

  I maintain that having to use a separate working copy for doing vendor imports is a PITA.

  <hr /><i>wolfgang added on 2010-10-14 18:36:16:</i><br />
  The new import program works like "mercurial addremove", so i think, i should rename the command.

  I've started a small test repository on chiselapp.com:
    *  [http://chiselapp.com/user/wst/repository/import-vendor-test]
    *  use user/password d/d to play with it.

  import/addremove and merging with cherrypick seems to work fine for me.

  But i can see some problems/weak points:
    *  importing a new delivery needs to remove unused file from the source tree.
       For big projects, this might only be done by deleting the complete tree
    *  if the development branch is messed up with temporary files, which are
       not under version control, it's difficult to remove them

  This could only be done, using a import directory outside of the checkout.

  Merging is OK for me.

  Conclusion:
    *  I'll rename import to addremove
    *  I'll analyse the code, how to do a add/remove from outside a repository.
       But this will be difficult, because i cannot use existing code. But i
       think, it will be easier to add an option --keep to update(like for open).
       So we could<br>
       1. create a new directory for the delivery<br>
       2. go to this directory and open a fossil connection with --keep<br>
       3. update this <i>checkout</i> to VENDOR without affecting the file using
          --keep<br>
       4. commit and tag the new checkin with VENDOR_n+1

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-14 18:56:30:</i><br />
  I think the addremove by itself is good enough and a win.

  I was thinking about the import in terms of creating the manifest mostly from scratch, just using the correct P card. I haven't looked (yet) how much work the commit code creates for that.

  <hr /><i>wolfgang added on 2010-10-14 19:49:43:</i><br />
  i've checked the command line help for open. We do have the opportnity to add a version to the open command.

  So doing fossil open VENDOR --keep creates just the needed synchronisation information into a new venddor delivery, to use addremove/commit/tag to do a proper import.

  So i think, addremove in its current form shouldd be good enough as first step.

  <hr /><i>anonymous added on 2010-10-25 08:20:01:</i><br />
  Can we have "addremove" changes on trunk? In tarball snapshot?

  <hr /><i>anonymous added on 2011-02-04 21:55:32 UTC:</i><br />
  Browsing through the list of tickets and it looks like this ticket can be closed.  It doesn't look like the vendor tag code is complete, however.  *shrug*

  % fossil help | tail -1
  This is fossil version [356e877cea] 2011-01-13 19:55:28.947 UTC

  % fossil help addremove | head -1
  Usage: fossil addremove ?--dotfiles? ?--ignore GLOBPATTERN? ?--test?


tkt_uuid: e90d38c2054e9b44792eb4f3447d85bd86e465cc
type: Feature_Request
status: Fixed
severity: Critical
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Fixed
title: Generate full diff
comment:
  There's no way to generate full textual difference between versions when files are added or removed.

  This is essential to interact with outside world, for reference see "cvs diff -uN"

  <hr /><i>anonymous added on 2010-10-14 16:30:01:</i><br />
  I've attached a partial implementation of full diffs. This doesn't support diffs between two versions or diffs requesting a single file yet. It should be a starting point for discussing the behavior though.


tkt_uuid: 144180bf7db83724a9c647c60a411512cf605e50
type: Code_Defect
status: Fixed
severity: Important
foundin: c845b28714
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Fixed
title: Merge onto empty branch fails
comment:
  When tracking third party source, it is useful to have it on separate branch and merge onto trunk as needed.
  This doesn't work in Fossil:
  <pre>
  rm -rf /tmp/fossil-merge-bug
  mkdir /tmp/fossil-merge-bug
  cd /tmp/fossil-merge-bug/
  fossil new bug.fossil
  mkdir bug
  cd bug
  echo "vendor version" > test
  fossil open ../bug.fossil 
  fossil add test
  fossil ci --branch vendor -m "Import vendor source."
  fossil close
  rm -rf *
  fossil open ../bug.fossil trunk
  echo === Attemt the merge... ===
  fossil merge vendor
  </pre>

  The script output here is:
  <pre>
  project-id: 3f2182fb3f096d5197fa8788ff73a14c62d9b7b9
  server-id:  d908e77a1322004ebae2cceeb10ea32689ee611d
  admin-user: asau (initial password is "485164")
  ADDED  test
  New_Version: f7f55946e4adbab2523aa38f08e15e519b16ce01
  project-name: <unnamed>
  repository:   /tmp/fossil-merge-bug/bug.fossil
  local-root:   /tmp/fossil-merge-bug/bug/
  project-code: 3f2182fb3f096d5197fa8788ff73a14c62d9b7b9
  server-code:  d908e77a1322004ebae2cceeb10ea32689ee611d
  checkout:     10a4088889fec65a08f69899969e3e8e51a9de8d 2010-10-14 13:54:22 UTC
  child:        f7f55946e4adbab2523aa38f08e15e519b16ce01 2010-10-14 13:54:23 UTC
  tags:         trunk
  comment:      initial empty check-in (user: asau)
  === Attemt the merge... ===
  fossil: lack both primary and secondary files
  </pre>


tkt_uuid: e3a1beef67c97eb2e4d5a140cb0bf1a222ec0512
type: Feature_Request
status: Fixed
severity: Severe
foundin: c845b28714
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Fixed
title: Conflict markers are reversed
comment:
  <pre>
  Fossil marks conflicts differently as anything else around starting from diff3.
  This conflicts with user experience, breaks usage patterns and it is extremely unhelpful when one uses ready tools.
  In particular opening marker should be "<<<" rather than ">>>" and vice versa.
  </pre>


tkt_uuid: 24e1e78fa301399e5711c3786594819445694668
type: Code_Defect
status: Open
severity: Important
foundin: b48f78964e
private_contact: fbbc887beb8da03d2f38921a58bf0501ff03b2dc
resolution: Open
title: Files in conflict are not marked as so
comment:
  I do a fossil update, and am reported a file is in conflict:

  $ fossil up

  MERGE hello.txt

  ***** 1 merge conflicts in hello.txt

  but then when I do fossil st:

  $ fossil st

  ...

  EDITED     hello.txt

  If I had a long list of files, I would like to know which ones are in conflict and which not.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-15 14:03:15:</i><br />
  There are two potential questions related to this:

  (1) Should fossil always scan for the markers on files with modified mtime. This works for conflicts from manual patches too. It has the strong disadvantage of requiring reading potentially large files to determine the conflict. Such a check should at least be done pre-commit, I think.

  (2) Should conflict resolution be implicit or explicit? I'm not a fan of the Mercurial approach of explicit "hg resolve", but it has its merits too. At the very least, it would make the status operation very cheap and force people to more explicit think about it.


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: 984d15b81114087e9ebd036b70161d1f14ea75fa
type: Feature_Request
status: Open
severity: Minor
private_contact: 77d1fb9b8673fda6e5de8f02a6ad22d96857b3e1
resolution: Open
title: Merge conflict markers could be more helpful
comment:
  It isn't easy to understand which conflicting version is which.

  CVS puts version information into markers:
  <pre>
  <<<<<<< PLIST
  @comment $NetBSD$
  =======
  @comment $NetBSD: PLIST,v 1.28 2010/09/13 12:43:16 asau Exp $
  >>>>>>> 1.28
  </pre>
  meaning that the text below the opening marker is fresh,
  and the text above the closing marker comes from revision 1.28.

  It would be nice to see Fossil behaving in a similar way, e.g. putting version id and/or time stamp in conflict marker.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-10-15 13:59:32:</i><br />
  I agree that the markers at the moment are less helpful. Would it make sense to make them real prefixes? E.g.

  <verbatim>
  <<<< Working copy (version: XXX)
  ...
  ==== Conflict from version YYY
  ....
  >>> End of conflict between XXX and YYY
  </verbatim>

  Would that break any tools for conflict resolution?

  <hr /><i>anonymous added on 2010-10-15 14:11:30:</i><br />
  I expect adapting tools to handle version on "===" harder than adapting code that handles them on ">>>".

  Not to mention changing user habits when doing the same visually.


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: 014ac374123d9a6ab6894a8e33a3f7bbd38f05ed
type: Code_Defect
status: Fixed
severity: Minor
foundin: b48f78964e
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Cannot run "fossil diff" while in commit
comment:
  Sometimes, during the writing of the commit message after "fossil commit", I find the need of showing the differences in the checkout by "fossil diff".

  In this case, "fossil diff" says that the database is locked, and so cannot proceed. Shouldn't "fossil diff" be a readonly operation, that could be used regardless of a parallel "fossil commit"?


tkt_uuid: 3873f0ad52cf0f617645ee7f7ed7318f83257bc2
type: Code_Defect
status: Closed
severity: Minor
foundin: daf28132a9
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Duplicate
title: The ticket 'version' field (found_in) does not appear hyperlinked
comment:
  As square brackets allow usually in ticket descriptions, commit messages and wiki pages to hyperlink to a specific version, I find a bit annoying that the ticket "Version" field does not show any hyperlink, either with or without brackets.

  <hr /><i>wolfgang added on 2010-10-15 16:48:42:</i><br />
  This can be changed by editing the ticket view page configuration:

    *  go to Admin => Ticket => View Ticket Page
    *  and change <nowiki>$<foundin></nowiki> to <nowiki><th1>wiki $foundin</th1></nowiki>

  This way, everything entered into the foundin field will be rendered by the wiki engine.


  <hr /><i>anonymous added on 2010-10-15 18:44:24:</i><br />
  Ah great. Thank you!

  <hr /><i>dmitry added on 2011-09-08 23:23:13 UTC:</i><br />
  Duplicate of [04ba0f70b8].


tkt_uuid: 38d7bb8cf044219c2eff80229fb5c49b2400ca39
type: Code_Defect
status: Fixed
foundin: 8f41b2fa75
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: segfault
comment:
  I don't have time to dig into it atm, but with latest [8f41b] fossil, I'm getting segfault when running "diff" across a whole repo ("fossil diff").

  No other datapoints atm.

  <hr /><i>bharder added on 2010-10-15 21:08:23:</i><br />
  OS is FreeBSD 7.3 on AMD64.

  <hr /><i>bharder added on 2010-10-15 21:10:37:</i><br />
  Reverting back to [c845b28714] did stop segfault.

  <hr /><i>bharder added on 2010-10-16 05:24:33:</i><br />
  data point: is repeatable. On problem repo, co 2b29e4ee776c635e7e59bc, merge 2eb37886cc42606, "typical" clean, fossil diff.


  <hr /><i>bharder added on 2010-10-16 05:26:12:</i><br />
  <pre>0x0000000800c5be02 in _malloc_thread_cleanup () from /lib/libc.so.7
  (gdb) bt
  #0  0x0000000800c5be02 in _malloc_thread_cleanup () from /lib/libc.so.7
  #1  0x0000000800c5d54c in _malloc_prefork () from /lib/libc.so.7
  #2  0x0000000800c5d7cf in free () from /lib/libc.so.7
  #3  0x0000000000411cb9 in diff_cmd () at diffcmd_.c:288
  #4  0x000000000041c48e in main (argc=1, argv=0x7fffffffe710) at main_.c:261
  </pre>

  <hr /><i>bharder added on 2010-10-16 22:21:08:</i><br />
  Confirmed not segfaulting anymore with [7954ccba68]


tkt_uuid: 13813896d549ecad45148b84a86b5e39ef4caad9
type: Code_Defect
status: Open
severity: Minor
foundin: 12a79e5b93
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: Editing multiple ticket fields ends in no changes
comment:
  We have simple modifications to the tickets so we have these new fields: owner, assigned_to, effort and module.
  Both in 'new ticket' and 'edit ticket', if we change three or more of those fields with the ui, and submit the changes, the browser goes back to the ticket list as if we had not submit anything.

  For the ticket changes to be recorded, we have to do that through multiple submits changing less fields per submit


tkt_uuid: be56c89def7f86bcbd766009cd365f6a40a37345
type: Code_Defect
status: Fixed
severity: Severe
foundin: 8f41b2fa75
private_contact: ba07c6d5d3c5e044f8238154a7f39762cc1663cc
resolution: Fixed
title: Manifest parser bug causes fossil push to fail if a file look like a manifest but isn't one
comment:
  The bug can be reproduced with the following steps:

  1. create an empty repository


  2. clone it

  3. open it

  4. Create a text file containing "C blabla" and make sure it doesn't end with a newline character

  5. commit it

  6. Try to push it: it should fail with "bad command" followed by some stuff.

  The bug is caused by the manifest parser which acts in a destructive way: when it parses a card, it uses blob_terminate which modifies the original buffer, even if it turns out afterwards that the file isn't actually a manifest (in my case it was just a small binary file which happened to begin with C and a tabulation character), which overwrite what's next (in this case it overwrites the first character of the following file card of the xfer stream, which confuses the xfer parser and make it end up trying to parse file content as cards).

  I've attached a quick fix patch which simply make a copy of the line before parsing it. It works but it's probably possible to solve it without the additional copy.

  <hr /><i>drh added on 2010-10-16 16:25:17:</i><br />
  Thanks for the patch.  Even though I didn't apply it, it was still very
  useful in understanding the problem.


tkt_uuid: 986daabbc4b969dd22dc93d183b566f7faf004f9
type: Code_Defect
status: Open
severity: Cosmetic
foundin: [f1d309ccd7] 2010-08-29 00:21:09
private_contact: 6b7d8d19b3584e0b0b59ee79d0f778ecd9f60111
title: checkin command lost merge information if --force option used.
comment:
  version [f1d309ccd7] or later, checkin --force option disable clock skew alarm.<br>But if this option specified, checkin_cmd() skip append merged IDs to manifest's "P" card.<br>It must not skip collect IDs from vmerge table even forceFlag is set.<br><blockquote><verbatim>--- ../7954ccba68/src/checkin.c	2010-10-19 00:28:10.437308800 UTC
  +++ src/checkin.c	2010-10-19 15:25:37.979195200 UTC
  @@ -826,23 +826,26 @@
     db_finalize(&q);
     zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
     blob_appendf(&manifest, "P %s", zUuid);
  -
  -  if( !forceFlag ){
  -    checkin_verify_younger(vid, zUuid, zDate);
  -    db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
  -    db_bind_int(&q2, ":id", 0);
  -    while( db_step(&q2)==SQLITE_ROW ){
  -      int mid = db_column_int(&q2, 0);
  -      if( !g.markPrivate && content_is_private(mid) ) continue;
  -      zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
  -      if( zUuid ){
  -        blob_appendf(&manifest, " %s", zUuid);
  -        checkin_verify_younger(mid, zUuid, zDate);
  -        free(zUuid);
  -      }
  -    }
  -    db_finalize(&q2);
  -  }
  +  if( !forceFlag ){
  +    checkin_verify_younger(vid, zUuid, zDate);
  +  }
  +
  +  db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
  +  db_bind_int(&q2, ":id", 0);
  +  while( db_step(&q2)==SQLITE_ROW ){
  +    int mid = db_column_int(&q2, 0);
  +    if( !g.markPrivate && content_is_private(mid) ) continue;
  +    zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
  +    if( zUuid ){
  +      blob_appendf(&manifest, " %s", zUuid);
  +      if( !forceFlag ){
  +        checkin_verify_younger(mid, zUuid, zDate);
  +      }
  +      free(zUuid);
  +    }
  +  }
  +  db_finalize(&q2);

     blob_appendf(&manifest, "\n");
     blob_appendf(&manifest, "R %b\n", &cksum1);
  </verbatim></blockquote>


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: 2517414fef7aeba0e61af26d51cd5e1c7c4e26ec
type: Feature_Request
status: Fixed
severity: Important
foundin: 8175b57923
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: baseline manifests should be stored as delta to last baseline
comment:
  Let's say version A is parent of B and C is baseline manifest of B. If A would create a too large manifest and encoded as new baseline, fossil should consider storing A as delta to C.

  For the pkgsrc repository, the use of baseline manifests if more than 1/125 of all files changed is currently increasing the size of the resulting sqlite database by 50% compared to not using the baseline feature.

  <hr /><i>anonymous added on 2010-10-27 13:44:03:</i><br />
  Fixed by [e21ca81e1a].


tkt_uuid: bd9a306492f9ed894aef09d8241643255636654a
type: Feature_Request
status: Open
severity: Important
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: Support for on-commit code reviews
comment:
  Various repository hosting sites like GitHub or Google Code allow adding comments to commits directly from the web interface. This can be considered as equivalent functionality to classic commit mailing lists. I think it would be highly useful to have something similar in fossil.

  <hr /><i>anonymous claiming to be viric added on 2010-11-24 22:22:34:</i><br />
  Maybe this could be implemented as a special link next to a commit that creates (or points to if created) a related Event with some predefined title/text?

  Then, as commits have checkins related, checkins could have 'events' related, or events have checkins related.

  (It's just a dump of what came up to my mind)


tkt_uuid: d3ab7965c636275e51f13cbcc1c85500ac084569
type: Feature_Request
status: Fixed
severity: Minor
foundin: 05b152aedf
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: fossil artifact needs checkout
comment:
  It is useful for debugging if artifacts can be obtained directly from a fossil repository without having to create a checkout. Aka support "fossil artifact -R".

  <hr /><i>drh added on 2010-10-25 20:12:18:</i><br />
  That would be the "<tt>fossil artifact</tt>" command.

  <hr /><i>anonymous added on 2010-10-26 15:42:22:</i><br />
  <verbatim>
  % fossil help artifact
  Usage: fossil artifact ARTIFACT-ID  ?OUTPUT-FILENAME?
  </verbatim>

  There is no way to specify a repository to extract the artifact directly without having to open it first.

  On the same line:

  <verbatim>
  % fossil help test-parse-manifest
  Usage: fossil test-parse-manifest FILENAME ?N?
  </verbatim>

  There is absolutely no reason why it needs a repository at all. Not helpful when debugging why a rebuild failed.


tkt_uuid: ef48c60cee1483ef24bb551e554c9e0bb2e0555f
type: Code_Defect
status: Fixed
severity: Important
foundin: d13054ce84
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: checkout/build failure
comment:
  Using fossil [d13056] to co fossil repo at [57347e6ee87a] yields:
  <pre>
  gcc -g -O2 -o mkindex ./src/mkindex.c
  ./mkindex add_.c allrepo_.c attach_.c bag_.c blob_.c ... >page_index.h
  gcc -g -O2 -o makeheaders ./src/makeheaders.c
  gmake: *** No rule to make target `src/../manifest.uuid', needed by `VERSION.h'.  Stop.
  </pre>

  where fossil set is: 
  <pre><nowiki>
  [bch@ansel ~/work/fossil]$ fossil set</nowiki>
  auto-captcha        
  auto-shun           
  autosync             (local)  1
  binary-glob         
  clearsign           
  diff-command        
  dont-push           
  editor              
  gdiff-command       
  ignore-glob         
  http-port           
  localauth            (local)  0
  manifest            
  mtime-changes       
  pgp-command         
  proxy               
  repo-cksum          
  ssh-command         
  web-browser         
  </pre>

  The following will fix at command line, but is a brittle solution to real problem (in header file):
  <pre>
  fossil set manifest 1
  </pre>

  <hr /><i>drh added on 2010-10-26 23:44:27:</i><br />
  Once I get the server updated, new clones will set the "manifest" option
  automatically.  What other fix do you suggest?  Make "manifest" the default?
  The feedback I have received about the manifest and manifest.uuid files is
  uniformly negative - everybody hates them it seems - so it seems best to
  leave them turned off by default.

  <hr /><i>anonymous added on 2010-10-30 18:45:48:</i><br />
  Hi,
  I recently got this error too. Could a command be implemented to generate the manifest and manifest.uuid files? Then they could be deleted when the build finishes. Thing is, this wouldn't work if you just zipped up the working tree and sent it to someone. Hmm.
  Thanks, kj4ufx.

  <hr /><i>drh added on 2010-10-31 23:14:15:</i><br />
  The command

      fossil set manifest on

  creates the manifest and manifest.uuid files, in addition to making sure
  they are updated on all future checkouts.

  If the "manifest" setting for a server is "on", then all ZIP archives
  generated by that server include the "manifest" and "manifest.uuid" files.


tkt_uuid: a4a9f45b67cbbcf265ed5b1fa90bfdacf853144f
type: Code_Defect
status: Fixed
severity: Critical
foundin: 7954ccba68
private_contact: 2f102b33d8f807336292e56ff47c6c59de4876c0
resolution: Fixed
title: core dump on attempted branch
comment:
  <pre><nowiki>
  [bch@ansel ~/work/xyz]$ fossil ver
  This is fossil version [7954ccba68] 2010-10-16 16:24:24 UTC
  [bch@ansel ~/work/xyz]$ ../fossil/fossil branch new bchtest 7cb890 --bgcolor \#ff2222
  Segmentation fault: 11 (core dumped)
  [bch@ansel ~/work/xyz]$ fossil info 
  project-name: dev1 xyz
  repository:   /home/bch/work/fossils/xyz.fsl
  local-root:   /home/bch/work/xyz/
  project-code: f2002b49daf7eaa8429a31a5a7bfcdaaf412e115
  server-code:  de5815f84350c8ec7b68d93d16009a32c9d9604d
  checkout:     7cb890f36a69a2a578b6fc61daf68c120d16124f 2010-10-26 01:03:29 UTC
  parent:       b24bfc57e457e4add29fb33bab5486c7f0047d9b 2010-10-26 00:56:09 UTC
  child:        c56c5daca15e2dd28ecb0e97d8e964b72b89ff50 2010-10-26 01:10:25 UTC
  child:        0eff20d8719e0f6338c84bf98f0ca843ba67bc11 2010-10-26 23:36:10 UTC
  tags:         trunk
  comment:      adj css by-hand, per joe (user: bch)
  [bch@ansel ~/work/xyz]$ gdb ../fossil/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 branch new bchtest 7cb890 --bgcolor \#ff2222
  Starting program: /home/bch/work/fossil/fossil branch new bchtest 7cb890 --bgcolor \#ff2222

  Program received signal SIGSEGV, Segmentation fault.
  0x000000000040704a in branch_new () at branch_.c:97
  97            if( pParent->aFile[i].zPerm[0] ){
  (gdb) bt
  #0  0x000000000040704a in branch_new () at branch_.c:97
  #1  0x0000000000407397 in branch_cmd () at branch_.c:198
  #2  0x0000000000421633 in main (argc=6, argv=0x7fffffffe6b0) at main_.c:261
  (gdb) 
  </nowiki></pre>

  <hr /><i>bharder added on 2010-10-27 17:28:00:</i><br />
  I made a mistake when I tried to show fossil version in previous post. Proper version identification:

  <pre>
  $ ./work/fossil/fossil version
  This is fossil version [57347e6ee8] 2010-10-26 21:37:16 UTC
  $ 

  </pre>

  <hr /><i>bharder added on 2010-10-28 17:57:31:</i><br />
  Confirmed fixed. Thx.


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: b18338c226f6fb4899bf646accf79cd0bca221a1
type: Feature_Request
status: Fixed
severity: Cosmetic
private_contact: ab5c04693d4ea3b3339a1e41947ceb8da8054625
resolution: Fixed
title: include sqlite shell with fossil
comment:
  There are a very small number of cases where it is necessary or desirable to work directly with the fossil database - debugging, exploring, or tweaking low-level data in a nonstandard and generally unrecommended way (for example, when merging repositories as described in http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01641.html ).  Nevertheless, in those cases it is necessary to have the sqlite shell available separately.  Fossil already bundles 95% of sqlite with it, so why not include the raw shell also?  The main benefit (in those admittedly rare cases) would be that you are guaranteed to have the correct version of sqlite, while the shell installed elsewhere may be different (if you are tracking fossil and sqlite builds separately).

  <hr /><i>anonymous added on 2010-10-29 23:51:13:</i><br />
  How to access functions accessible in fossil by built-in sqlite shell?

  Thanks.

  <pre>
  c:\bin>fossil help sqlite
  Usage: fossil sqlite3 ?DATABASE? ?OPTIONS?
  Run the standalone sqlite3 command-line shell on DATABASE with OPTIONS.
  If DATABASE is omitted, then the repository that serves the working
  directory is opened.

  c:\bin>fossil sqlite myfossilclone.fossil
  SQLite version 3.7.3
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> SELECT * FROM sqlite_master where name ='blob';
  table|blob|blob|2|CREATE TABLE blob(
    rid INTEGER PRIMARY KEY,
    rcvid INTEGER,
    size INTEGER,
    uuid TEXT UNIQUE NOT NULL,
    content BLOB,
    CHECK( length(uuid)==40 AND rid>0 )
  )

  sqlite> select * from blob where rid =9310;
  9310|526|43735|a67ab11ff47c2c026af817110a564a13fd9c33a2|

  sqlite> select content from blob where rid =9310;
  returns nothing
  </pre>


tkt_uuid: aa01499923bd622758a4e7ed3770827bc9e02bc2
type: Build_Problem
status: Fixed
severity: Severe
foundin: d03718ad5f
private_contact: 63f4cb9d6971f7dbdee05412b8546975182b32e4
resolution: Open
title: Merge tests fail on NetBSD and Mac OS/X 10.6.4
comment:
  If I perform the unit tests Fossil is coming with via
  <verbatim>
     make test
  </verbatim>
  then the test run fails with 33 errors concerning merging. The message is:
  <verbatim>
    33 errors: merge1-2.1 merge1-2.2 merge1-4.1 merge1-4.2 merge1-7.1 merge1-7.2 merge3-3
    merge3-4 merge3-5 merge3-6 merge3-7 merge3-8 merge3-11 merge3-24 merge3-25 merge3-34 
    merge3-35 merge3-44 merge3-45 merge3-54 merge3-55 merge3-64 merge3-65 merge3-74 
    merge3-75 merge3-84 merge3-85 merge3-94 merge3-95 merge3-103 merge3-104 merge3-1000 
    merge3-1002
  </verbatim>

  The error output of the failed tests is similar like this:
  <verbatim>
    ~/Project/fossil/fossil test-3-way-merge t1 t2 t3 t4
    ~/Project/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 [{<<<<<<< BEGIN MERGE CONFLICT} 2b 3b 4b 5 6b 7b 8b = 2 3 4c 5c 6c 7 8 {>>>>>>> END  MERGE CONFLICT}]
      test merge3-1002 FAILED!
  </verbatim>

  If more information is necessary, please let me know ...

  <hr /><i>anonymous added on 2010-10-29 11:13:31:</i><br />
  Fallout from [e3a1beef67]. The output the test cases expects needs to be adjusted.

  <hr /><i>chi added on 2010-10-30 06:19:21:</i><br />
  With the attached patch the ticket may be fixed. The patch is against [8c723318d2] of Fossil.

  Thank you, anonymous, for you hint. That enabled me to make the patch.


tkt_uuid: 35b02baad5df5f443f2a5f94fbfb56eec405aeef
type: Feature_Request
status: Open
severity: Important
foundin: f89d953a06
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: Support in timeline for jumping to specific point in time
comment:
  The timeline should make it easier to move to old versions by allowing it to enter the date directly. On old repositories with years of history and more than a few thousand commits, it is currently very hard to browse back other than editing the URL directly.

  <hr /><i>drh added on 2010-11-01 23:08:10:</i><br />
  You can, if you want, go up to the URL bar and append

     <tt>?c=1970-01-01</tt>

  (or some other date) to the end of the URL, if you like.  
  That is what I normally do.  I will
  admit that this is not as nice as having any entry box, but I'm still
  struggling to figure out where to put that entry box (without unnecessarily
  cluttering the screen).

  <hr /><i>anonymous added on 2010-11-01 23:32:44:</i><br />
  I would say next to "Wiki Only" in #submenu, e.g. something like:

  <verbatim>
  200 Entries | Newer | Older | Before: <...> <Load>
  </verbatim>

  or maybe even combine it with Older by filling the data in:

  <verbatim>
  200 Entries | Newer | Older: <...> <Load>
  </verbatim>


tkt_uuid: 926a1b1639a1ee373968727940d5f6a6124c92ae
type: Documentation
status: Fixed
severity: Cosmetic
foundin: trunk
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: new diff options -N or --new-file not defined in fossil help diff
comment:
  New options for fossil diff command as described in [/event?name=d6ba73e22bf6ecbac3b6debb47ca2e15d5e63630|Release notes] are not documented in command line help accessible with: 
  <pre>
  fossil help diff
  </pre>
  Perhaps I am overlooking something, but it would be helpful, to have also somewhere consistently documented hyper-linking to other repository elements like [/timeline?c=2010-11-01+17:24:02|Timeline entries]   

  It took me some try and error iteration to figure it out. [/timeline?r=StvPrivateHook2+|StvPrivateHook2] contains very helpful command help browser, perhaps it could be merged into trunk. 

  Thanks.


tkt_uuid: 87f7cebc27d15049398e21474af1b243c56959a4
type: Code_Defect
status: Open
severity: Minor
foundin: b48f78964e
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Wiki page names starting with '.' don't work
comment:
  I can link to a page with a starting dot like [.this], but it is not understood as a wiki page apart.

  <hr /><i>stephan added on 2011-09-15 22:01:36 UTC:</i><br />
  Why would you expect a page name starting with a non-letter to work? i'm not aware of ANY wiki which allows wiki works to start with non-alpha characters (and most require CamelCaseWords). Fossil doesn't have a 100% generic document management system - it has a wiki, and wiki conventions call for certain naming patterns. Granted, fossil's naming conventions are "more flexible" than most wikis, but i would never expect a page name starting with a dot to work.

  <hr /><i>dmitry added on 2011-09-16 10:00:41 UTC:</i><br />
  I agree with the strangeness of the name, but the problem is that we have inconsistent behaviour. Currently Fossil:

    *  Allows creating a new page with dot in the beginning here: [http://www.fossil-scm.org/index.html/wikinew] Note that there are rules for names listed on this page; and ".Pagename" is okay by these rules.
    *  But when linking to such pages via <nowiki>[.Pagename]</nowiki> syntax, links don't work correctly (should point to http://www.fossil-scm.org/index.html/wiki?name=.Pagename, but point to http://www.fossil-scm.org/index.html/.Pagename).

  We should either disallow creating wiki pages with "." in the beginning and update the rules, or fix the link formatting.

  <hr /><i>stephan added on 2011-09-16 10:31:49 UTC:</i><br />
  i would vote for requiring the name to start with a letter, but that requires more code for the validation and error handling :/. i think allowing any character as the start character will lead to ambiguities downstream at some point. e.g. if the first letter is '#', how do we distinguish that from an anchor link?


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: e49f245975f89a8a9c006ec224eed48c8ad77593
type: Feature_Request
status: Fixed
severity: Minor
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: Add '-nocgi' option
comment:
  I just encountered a small issue using fossil within a php script.  Using the php "exec()" function to run fossil -- to add a ticket to a repository -- I was unable to do it directly because fossil starts in cgi mode.

  The way around was to execute fossil from a shell script which "unset"s GATEWAY_INTERFACE.  This took me a bit to figure out, and seems unnecessary.

  So I suggest adding a '-nocgi' option so that it is easier to run fossil from within a cgi-script (without using fossil in cgi mode)

  <hr /><i>ron added on 2010-11-05 05:46:45:</i><br />
  This fix seems to make my server not work any longer.

  It is configured as a script which is executed from the server, and that server is:

  <blockquote><pre>
  #!/path/to/fossil
  directory: /home/my/fossils
  notfound: http://somewhere.else/
  </pre></blockquote>


  What is happening is a 'server misconfigured' message when I access the page now; reverting to ver cb2ff51 fixes the problem.  Adding 'cgi' as a parameter on the #! line helps, but I lose the css.

  <hr /><i>ron added on 2010-11-09 09:01:37:</i><br />
  Reverted your fixes, because they cause problems with certain CGI scripts scenarios (e.g. if the CGI script is named a valid fossil command prefix).

  Instead, check for '-nocgi' option and disable automatic 'cgi' if it is present.

  [1b883d49cf0885c74f1324b545caf28aafec385a]


tkt_uuid: 2d1109c6402512146ecf675e479fb80f5eba660c
type: Feature_Request
status: Open
severity: Minor
foundin: [24636f7057]
private_contact: 70e8369b18c47ff40aebcb9bd5778b54d64203f6
resolution: Open
title: fossil should delete repository & journal files if 'fossil clone' is cancelled
comment:
  If one cancels 'fossil clone' half-way (using ^c), fossil keeps to-be-created repository file and journal file. It should delete them.

  For other cases where fossil clone fails due to some reason, it may keep these files only if asked (through command-line arguments) for debug purpose.

  <hr /><i>drh added on 2010-11-05 09:55:41:</i><br />
  Catching the SIGINT and performing cleanup would require signal handling
  which is easy enough to do on unix, but is rather more challenging on
  windows.  So even if we do provide this enhancement, it would be a 
  unix-only thing, I suspect.


tkt_uuid: 9a34fbad7a5e8eaa4e32631fe25b37ecad970841
type: Feature_Request
status: Open
severity: Minor
foundin: [24636f7057]
private_contact: 70e8369b18c47ff40aebcb9bd5778b54d64203f6
resolution: Open
title: Creating new tickets does not let you specify/override user name
comment:
  Creating new tickets does not let you specify/override user name but adding remarks to existing tickets lets you do that.

  I use this feature with anonymous login - I do not have a username/password.

  <hr /><i>anonymous added on 2010-11-08 18:19:43:</i><br />
  Prueba


tkt_uuid: 3edef69bf3e995ed2693d57f28560c464d05b13f
type: Code_Defect
status: Fixed
severity: Important
foundin: 7957624606
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: Cookies don't include port
comment:
  Start two instances of fossil on one machine. Login as anonymous from a different machine to the first and the second repository from the same browser session. Reload the page of the first repo -- you are logged off again.


tkt_uuid: 2e088c58159bad1a5305f98189bd9a5bf29e7ef2
type: Code_Defect
status: Closed
severity: Minor
resolution: Fixed
title: Allow svg for in-line diagrams in embedded documentation
comment:
  In new browsers (other than firefox) embedded images can be of type svg.
  Fossil does not serve the right mime type for these images, preventing
  svgs to be used for inline documentation in embedded wiki files.

  <hr /><i>venks added on 2010-11-07 18:45:11:</i><br />
  Implemented in [151a2104ae].

  <hr /><i>venks added on 2010-11-08 06:20:31:</i><br />
  Included in [c01e3c1794]


tkt_uuid: c18a77e837a66122ed196f88aff867d8edb5e898
type: Code_Defect
status: Fixed
severity: Important
foundin: 6a11af1782
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Typo in the Doctype declaration.
comment:
  There is a typo in the declaration of the Doctype which prevents the successful validation of the HTML generated by Fossil.

  The attached patch fixes this.

  --tsbg


tkt_uuid: 11209555c90f3b61e4e70b871f5823002963ef7e
type: Code_Defect
status: Fixed
severity: Important
foundin: 6a11af1782
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Wrong MIME-type on "Edit Project Logo" page showed
comment:
  Fossil shows the the wrong MIME-Type on the "Edit Project Logo" page when the
  Logo was changed and does not have a MIME-Type of "image/gif".

  The attached patch fixes this.

  --tsbg


tkt_uuid: 9d186979fc4fe8d9c4360af603067cde558a50f7
type: Code_Defect
status: Fixed
severity: Important
foundin: 6a11af1782
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: printf() does not understand %lld on windows
comment:
  On windows some compilers do not understand the %lld format specifier.

  The attached patch circumvents the problem with the help of functions from SQLite.

  --tsbg

  <hr /><i>anonymous added on 2010-11-07 22:03:17:</i><br />
  I would strongly prefer to introduce a LL_FORMAT macro. Define it like

  <verbatim>
  #ifdef _WIN32
  #define LL_FORMAT "l64d"
  #else
  #define LL_FORMAT "lld"
  #endif
  </verbatim>

  This would allow sane fallbacks for other ancient / broken platforms.


tkt_uuid: e5f0b3e30ba64464eeb7925e3e34f3667d5ccd65
type: Feature_Request
status: Fixed
foundin: f89d953a06
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
resolution: Fixed
title: foissil does not provide downloadable diff
comment:
  There are several pages in fossil that show diffs like

  http://fossil-scm.org/index.html/ci/69e81b0260

  However, the diffs shown on the pages are in HTML and cannot be in general used as input to patch because the whitespace may not match when tabs are used in the source.

  Also the patch header is missing.


  There should be an option to download applicable patches

  <hr /><i>dmitry added on 2011-09-08 21:51:36 UTC:</i><br />
  Fixed by [4bdf71b1ce].


tkt_uuid: 3c14d720fa0cc3cbae9253214b74b8e6c0f42427
type: Feature_Request
status: Open
severity: Minor
foundin: f89d953a06
private_contact: 3ee274ce2d2982add24b2405f53b32a02504dcd8
title: show ticket title as tooltip for ticket links
comment:
  In bugzilla bug links created from bug numbers show bug title as tooltip.

  Fossil should be able to do the same for artifact links.


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: 1318677c15af04480b5f693b8c7a4eccdadb5698
type: Code_Defect
status: Fixed
severity: Minor
foundin: [696668aa4e] 2010-11-08 20:01:41 UTC
resolution: Fixed
title: Configuration pull does not work
comment:
  I just set up a fresh clone of my repo, then I did:
  <verbatim>
  $ fossil configuration pull ticket http://127.0.0.1:8080/ -R repo.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:             336         11          0          0
  waiting for server...Total network traffic: 291 bytes sent, 0 bytes received
  </verbatim>
  Ran "fossil ui" and found the ticket report formats were not transferred as they should be. My current workaround is doing "config export" and "config import" but that command should work also.


tkt_uuid: ad76b5d67b6e054f30d5b8d2b92a92015bd1db1d
type: Incident
status: Open
severity: Minor
foundin: [d0753799e4] 2010-11-01 14:23:35 UTC
resolution: Open
title: Cannot clone http://www.fossil-scm.org/
comment:
  Cannot clone www.fossil-scm.org, but cloning www2.fossil-scm.org works. Windows XP SP3 32-bit.
  <verbatim>
  C:\Projects>fossil clone http://www.fossil-scm.org/ fossil.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  processed: 0%         fossil: unknown command: ☺1q┼xЬь}iw█╕▓рчсп`л╙ЙЬжm☻рк─yЇn'▐╫,Эё☺☺Pвн-вфнoЄ█з

  C:\Projects>fossil ver
  This is fossil version [d0753799e4] 2010-11-01 14:23:35 UTC
  </verbatim>

  <hr /><i>anonymous added on 2010-11-09 14:51:04:</i><br />
  Upd: same problem when cloning my own repository.
  <verbatim>
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  Received:         152          2          0          0
  Sent:             648         26          0          0
  processed: 0%         fossil: unknown command:
  </verbatim>
  Both server and client are running fossil [d0753799e4] 2010-11-01 14:23:35 UTC (Linux x86-64 version on server, Windows XP version on client).

  <hr /><i>anonymous added on 2010-11-09 15:02:40:</i><br />
  Can you get a network trace e.g. with tcpdump of the connection?

  <hr /><i>drh added on 2010-11-09 15:21:38:</i><br />
  I'm very sorry that this does not work for you.  However, it does work for
  me, on both Linux and WinXP.  On WinXP (running under VMWare) see the result
  of doing a clone in the attachment below.  For Linux, I get:

  <blockquote><pre>
  drh@elly:~/fossil/m2> ./fossil clone http://www.fossil-scm.org/ x1.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  Received:    20017608       9494       2819       6673
  Sent:             651         26          0          0
  Received:       34771         22          4          0
  Total network traffic: 605 bytes sent, 6984263 bytes received
  Rebuilding repository meta-data...
    100.0% complete...
  project-id: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
  server-id:  9834fa9cbb13bf51d29168a63c48459a9bd4e02a
  admin-user: drh (password is "d7f2a5")
  drh@elly:~/fossil/m2> ./fossil version
  This is fossil version [d0753799e4] 2010-11-01 14:23:35 UTC
  </pre></blockquote>

  I do not have any idea what might be going wrong for you.  Please help us
  by sending debugging info.  Add the --httptrace option to your clone
  command and see what comes back.  Explain in detail your network configuration
  and setup.  www.fossil-scm.org is now attempting to send a 20MB reply to
  the first clone query, whereas www2.fossil-scm.org limits the first reply
  to 5MB.  Might this larger reply be causing problems for your firewall?

  <hr /><i>drh added on 2010-11-09 15:24:29:</i><br />
  I just lowered the reply-size limit on www.fossil-scm.org from 20MB to 4MB.
  Please try again to clone from that site and report success or failure.

  <hr /><i>anonymous added on 2010-11-09 17:53:23:</i><br />
  <b>drh</b>, now it works.<verbatim>C:\Projects>fossil clone http://www.fossil-scm.org/ fossil.fossil
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  Received:     4003936       2879        255       2622
  Sent:             651         26          0          0
  Received:     4114679       2700        946       1736
  Sent:              56         17          0          0
  Received:     4093181       2864       1139       1723
  Sent:              56          1          0          0
  Received:     4719404        234        102        130
  Sent:              56          1          0          0
  Received:     3142843        850        386        462
  Total network traffic: 1217 bytes sent, 7002624 bytes received</verbatim>
  Actually it started working almost immediately after this:
  <i>anonymous added on 2010-11-09 15:02:40</i>.

  I'm using an ADSL router to connect to the Internet, I have no firewall, no AV software, no other active network interfaces. Also I have WinPCap installed but I don't think it can cause any problems.

  As for [052de1d35b] I've sent you an email with --httptrace.


tkt_uuid: ffcf5b9f623dd30a7da0d862432576f9a29ab593
type: Feature_Request
status: Open
severity: Minor
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
title: Add 'append' to 'wiki' command
comment:
  Currently, I do a "wiki export", append my text, and "wiki commit" when I want to append to a wiki page.

  What I would like is a way to add text to the bottom of a page (not necessarily with the datetime stamp the 'wikiappend' page uses) from the 'wiki' command.


tkt_uuid: bf18e29fbe89791502d1fff3542d3ea542b6d824
type: Feature_Request
status: Fixed
severity: Minor
private_contact: 2f98bd34c080ac26bbeb8ea754dfd01c5d3a2018
resolution: Fixed
title: make 'fossil rm' to be able to remove more than one file
comment:
  Hello!

  Today I've encountered small glitch when working on one video-slide show.

  I had 4 directories each with 50 scanned files which were added to the fossil repo.

  I forgot to rename them prior to adding and then did regex rename, but when wanted to commit, Fossil was rightfully complained about MISSING files.

  However, Fossil's rm command enables to remove only one file at a time, so I had to use shell scripting to remove all of them in order to be able to commit.

  Idea is whether making 'fossil rm' to use e.g. shell's wildcards to remove more files at once would be a nice feature or bloat?


  Sincerely,
  Gour

  <hr /><i>lrem added on 2011-08-29 16:09:19 UTC:</i><br />
  Implemented a long time ago. Works well in current version, 1.18.


tkt_uuid: a734fe24da8f75758cf48e80a4f9cd064943bbfb
type: Code_Defect
status: Fixed
severity: Important
foundin: aaf8cfa296
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Timeline graph alignment on IE6
comment:
  Currently, the timeline graph is misaligned on IE6. The node boxes do not line up with the text to the right.

  With the attached patch applied, the timeline graph renders correct on the following browsers: IE6, IE7, IE8, Firefox 3.6.12, Safari 5.0.2, Google Chrome 7.0.517.49 and Opera 10.63. All tested on windows.

  --tsbg


tkt_uuid: a3336458f6864db0404b6d45b144be0b17526fb0
type: Documentation
status: Closed
severity: Minor
private_contact: 2f98bd34c080ac26bbeb8ea754dfd01c5d3a2018
resolution: Fixed
title: typo in http://fossil-scm.org/index.html/doc/trunk/www/fossil-v-git.wiki
comment:
  There is typo in the beginning of http://fossil-scm.org/index.html/doc/trunk/www/fossil-v-git.wiki page. 1st sentence...

  s/is is/it is


  Sincerely,<br/>
  Gour

  <hr /><i>aku added on 2010-11-12 21:06:04:</i><br />
  Fixed with checkin [03b53ca4ca2c51758b7e93cf77d4e94f623b0de8].


tkt_uuid: 8b46db87f1bfa942b48169ef7a8e8d69df8bd2d5
type: Incident
status: Closed
severity: Important
foundin: d0753799e4
private_contact: 194c9ef8edbd9a57ef36f4f18fde1d57ce26e1e5
resolution: Open
title: fossil update reporting 'login failed' despite local repo having a password for the account used
comment:
  I made my first commit to fossil in a long time, and started from a fresh clone.
  1. So, to be able to push I did:
       fossil push http://aku@www.fossil-scm.org/fossil
       typed the password, and of I went.
     OK

  2. Later I ran
       fossil update
     and got back:
      Autosync:  http://aku@www.fossil-scm.org/fossil
                      Bytes      Cards  Artifacts     Deltas
      Sent:             193          3          0          0
      Error: login failed    fossil: 
     BAD

  3. I should note, when I do a
       fossil pull
     I get asked for the password again, and then the pull works.

  I suspect that something is wrong with the local password storage, or how it is used by the transfer code. ... Looking into the user table fossil has stored a HASH of my password ... The last-sync-url contains my user name ... Oh, it is some mismatch between client and server about password vs hash usage.

  While this can have a severe impact on usability I decided to set the priority of this ticket only to important because of 3.

  Last note: I ran a 'fossil rebuild' and then the above again, this had no effect on the problem.

  <hr /><i>aku added on 2010-11-12 23:03:20:</i><br />
  Thanks Richard. Tried this using the binary built from [328fc92ceb318278b] and the problem with update is gone.

  I came to wonder why pull and sync (maybe push) ask for the password tough, given that it is known. The modified 'update' shows that fossil can find the information somewhere for an automatic pull/push cycle.


tkt_uuid: 929dd38716bf1f7297880b80229560d39ebe6414
type: Code_Defect
status: Closed
foundin: e0eceb7892
private_contact: 285d50b7823bcc6fb606209ae580c53cd440652c
resolution: Not_A_Bug
title: NOWIKI tag has no effect
comment:
  The nowiki tag is having no effect in my wiki pages. A simple example:

  <nowiki>[SomeotherPage]</nowiki>

  (Put NOWIKI tags around that - they're apparently hidden in the ticket viewer.)

  The wiki viewer is still processing that link.

  i'm trying to use the nowiki tag as a workaround for plugging in a google-code-compatible wiki parser (implemented in JS, as i posted to the mailing list earlier tonight).

  Fossil version [e0eceb7892] 2010-11-12 15:17:56

  <hr /><i>drh added on 2010-11-13 12:25:49:</i><br />
  How, exactly, is the wiki viewer still processing the link
  inside of &lt;nowiki&gt;...&lt;/nowiki&gt;?  It appears that
  wiki is disabled to me.

  <hr /><i>stephan added on 2011-09-14 17:55:23 UTC:</i><br />
  This appears to have been a denkfehler on my part.


tkt_uuid: 289844a2cb535a465c4d956f9907e5b3762d2193
type: Code_Defect
status: Fixed
foundin: 761a6a9dcf
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
resolution: Fixed
title: missing table time_fudge on commit
comment:
  doing commits using the --date-override option i a strange way forces the following error:

  <pre>
  fossil "commit" "--force" "--user-override" "anonymous" "--date-override" "2003-02-18 14:22:20" "--comment" "Initial revision"

  fossil "commit" "--nosign" "--force" "--user-override" "anonymous" "--date-override" "2003-02-18 14:22:19" "--branch" "avendor" "--comment" "nocomment"
  ..\fossil.exe: SQLITE_ERROR: no such table: time_fudge
  ..\fossil.exe: no such table: time_fudge
  INSERT OR REPLACE INTO time_fudge VALUES(5, 2452689.098842593, 6, 2452689.098831019);

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

  <hr /><i>wolfgang added on 2010-11-14 16:17:42:</i><br />
  This appears while trying to import a cvs repository into fossil. The avendor branches, created on importing sources are generated with the same time, as the main version:
  <pre>
  1.1 initial revision with time <i>a</a>
  |
  +- 1.1.1 branch "avendor"
      |
      +- 1.1.1.1 same file as 1.1 with time <i>a</a> like 1.1
         |
         +- tag "arelease"
  </pre>


tkt_uuid: 25d3f8d5641deed328a1c05fb331a82e61101364
type: Code_Defect
status: Fixed
severity: Minor
foundin: [0e87f42762] 2010-11-10 01:43:19 UTC
private_contact: 7dbf398b8524d19867c9afaa7207ea0a602e4458
resolution: Fixed
title: Time skew when cloning a large repository via slow connection
comment:
  <verbatim>
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  processed: 99%         fossil: *** time skew *** server time differs by 12.2 minutes
  Received:     4720686        296        288          6
  Total network traffic: 234 bytes sent, 922143 bytes received
  </verbatim>
  Client is connected to the Internet using GPRS and connection is <em>very</em> slow. But I guarantee that the difference between server and client time is not more than 1-2 seconds. Does this message indicate a problem or I can safely ignore it?

  <hr /><i>drh added on 2011-03-02 22:50:35 UTC:</i><br />
  It's just a warning.  I have modified the time skew detection to take into
  account large transfers over slow networks.  Hopefully that will help.


tkt_uuid: af2658e1fe1d11d5f1f23423f3964b4b7b52b3ef
type: Code_Defect
status: Open
severity: Minor
foundin: [64459dd091]
private_contact: 2f98bd34c080ac26bbeb8ea754dfd01c5d3a2018
resolution: Open
title: attempt to 'fossil init filename' where filename = dirname confuses fossil
comment:
  Hello!

  While being busy converting my old darcs repos into Fossil, I did a mistake when naming folder to keep git format (I do darcs --> git --> fossil)
  and named folder vasb.fossil.

  After that I executed: 
  <verbatim>
  [gour@atmarama study] fossil init vasb.fossil 
  fossil: SQLITE_CANTOPEN: cannot open file at line 27473 of [e55ada8924]
  fossil: unable to open database file

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

  but, as you can see, Fossil reported a bit strange things, while, in reality, the only problem is to detect there is already folder named the same as the new supposed-to-be-created Fossil repo.

  Maybe some improvement could be made in reporting such thing?

  Sincerely,<br/>
  Gour

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-14 15:31:55:</i><br />
  The only thing I would change is reporting the actual system error, e.g. "EISDIR".


tkt_uuid: de35b174255cd2a8a6e52a7879f4912680fa019b
type: Code_Defect
status: Open
severity: Minor
foundin: [761a6a9dcf]
private_contact: 40aba61d32222f9df09cded35d532d494b2dec55
title: defect in command line parser: -- is not a valid comment
comment:
  Calling 

  fossil commit --comment --

  doesn't work. Fossil throws an error complaing on wrong option/missing argument: --comment


tkt_uuid: 93112ea7e802f65c763bb4067f7831dae4117546
type: Code_Defect
status: Closed
severity: Cosmetic
foundin: d0753799e4
private_contact: fac97f23def2edef326f318462266407c69e540f
resolution: Works_As_Designed
title: Timeline graph for trunk not straight
comment:
  Screenshot: [http://imgpaste.com/i/mqnwd.png]

  Normal branch, do a few check-ins, then merge branch with trunk. Would expect graph for trunk (white) to stay as a straight line on the left while the branch (pink) behaves as it does. Trunk curving around the right of the branch and then back seems a bit odd and visually confusing.

  <hr /><i>drh added on 2010-11-16 12:09:43:</i><br />
  The thin line represents a merge.  You didn't merge your branch back into
  the trunk - you renamed your branch as "trunk" beginning at check-in
  <nowiki>[6523fd3854]</nowiki> and then merged the old trunk into your branch (now called "trunk").

  That's an interesting way of doing it.  But it should give the same result
  as if you had merge the branch into the trunk.  So no harm done.

  The graph correctly shows what you did.  The thin merge-lines never stay on
  the same "rail" as the thicker ancestry lines.  That is by design.


tkt_uuid: f89470bc3d3477814b0c16ffee3e0a21d106b265
type: Feature_Request
status: Open
severity: Important
foundin: 80c42a3312
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: More useful file browser
comment:
  The current file based repository browsing is useful for finding the history of a specific file, but doesn't help much in finding out what changed when. In addition, the multi-column layout makes it harder to locate a specific entry.

  Example: [http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/cvs/]

    *  linear, sorted list
    *  revision of head
    *  time of last commit, color coded for ease of use
    *  author and commit message of last commit

  Another example: [http://svn.freebsd.org/viewvc/base/]

    *  List the same data for each directory, e.g. the last time something in this directory tree changed.

  <hr /><i>zachtodd added on 2010-11-30 14:46:25:</i><br />
  I have updated the file browser to reflect the requested functionality shown in the first example.

  Below is the patch that implements the new file browser:

  ---------------------
  <verbatim>
  Index: src/browse.c
  ===================================================================
  --- src/browse.c
  +++ src/browse.c
  @@ -93,10 +93,66 @@
       zSep = "/";
       while( zPath[j]=='/' ){ j++; }
     }
   }
   
  +void get_filemeta(const char* zFN, char** zAuthor, char** zComment, char** mtime)
  +{
  +    Stmt q;
  +    int fnid;
  +    int mid;
  +    int ztime;
  +
  +    int min   = 60;
  +    int hour  = min * 60;
  +    int day   = hour * 24;
  +    int week  = day * 7;
  +    int month = week * 4;
  +    int year  = month * 12;
  +
  +    db_prepare(&q, "SELECT fnid FROM filename WHERE name=:x");
  +    db_bind_text(&q, ":x", zFN);
  +    db_step(&q);
  +
  +    fnid = db_column_int(&q, 0);
  +    db_finalize(&q);
  +
  +    db_prepare(&q, "SELECT max(mid) FROM mlink WHERE fnid=:x");
  +    db_bind_int(&q, ":x", fnid);
  +    db_step(&q);
  +
  +    mid = db_column_int(&q, 0);
  +    db_finalize(&q);
  +
  +    db_prepare(&q, "SELECT (julianday('now') - julianday(mtime)) * 86400, user, comment FROM event WHERE objid=:x");
  +    db_bind_int(&q, ":x", mid);
  +    db_step(&q);
  +
  +    ztime       = db_column_int(&q, 0);
  +    (*zAuthor)  = db_column_text(&q, 1);
  +    (*zComment) = db_column_text(&q, 2);
  +
  +    if (ztime == 0){
  +        mtime[0] = 0;
  +        return;
  +    }
  +
  +    if (ztime - year >= 0)
  +        sprintf(*mtime, "%i years", ztime/year);
  +    else if (ztime - month >= 0)
  +        sprintf(*mtime, "%i months", ztime/month);
  +    else if (ztime - week >= 0)
  +        sprintf(*mtime, "%i weeks", ztime/week);
  +    else if (ztime - day >= 0)
  +        sprintf(*mtime, "%i days", ztime/day);
  +    else if (ztime - hour >= 0)
  +        sprintf(*mtime, "%i hours", ztime/hour);
  +    else if (ztime - min >= 0)
  +        sprintf(*mtime, "%i minutes", ztime/min);
  +    else
  +        sprintf(*mtime, "%i seconds", ztime);
  +}
   
   /*
   ** WEBPAGE: dir
   **
   ** Query parameters:
  @@ -105,13 +161,10 @@
   **    ci=LABEL         Show only files in this check-in.  Optional.
   */
   void page_dir(void){
     const char *zD = P("name");
     int nD = zD ? strlen(zD)+1 : 0;
  -  int mxLen;
  -  int nCol, nRow;
  -  int cnt, i;
     char *zPrefix;
     Stmt q;
     const char *zCI = P("ci");
     int rid = 0;
     char *zUuid = 0;
  @@ -235,40 +288,41 @@
       db_multi_exec(
         "INSERT OR IGNORE INTO localfiles"
         " SELECT pathelement(name,0), NULL FROM filename"
       );
     }
  -
  -  /* Generate a multi-column table listing the contents of zD[]
  -  ** directory.
  -  */
  -  mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
  -  cnt = db_int(0, "SELECT count(*) FROM localfiles /*scan*/");
  -  nCol = 4;
  -  nRow = (cnt+nCol-1)/nCol;
     db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
  -  @ <table class="browser"><tr><td class="browser"><ul class="browser">
  -  i = 0;
  -  while( db_step(&q)==SQLITE_ROW ){
  -    const char *zFN;
  -    if( i==nRow ){
  -      @ </ul></td><td class="browser"><ul class="browser">
  -      i = 0;
  -    }
  -    i++;
  -    zFN = db_column_text(&q, 0);
  -    if( zFN[0]=='/' ){
  -      zFN++;
  -      @ <li><a href="%s(zSubdirLink)%T(zFN)">%h(zFN)/</a></li>
  -    }else if( zCI ){
  -      const char *zUuid = db_column_text(&q, 1);
  -      @ <li><a href="%s(g.zBaseURL)/artifact?name=%s(zUuid)">%h(zFN)</a></li>
  -    }else{
  -      @ <li><a href="%s(g.zBaseURL)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN)
  -      @     </a></li>
  -    }
  +  @ <table class="report browse" border="1"><tr><th>File</th><th>Age</th><th>Author</th><th>Last comment</th></tr>
  +
  +  while (db_step(&q) == SQLITE_ROW) {
  +   const char *zFN;
  +   char *zAuthor  = NULL;
  +   char *zComment = NULL;
  +
  +   zFN = db_column_text(&q, 0);
  +   char *zFNPath  = malloc(strlen(zPrefix) + strlen(zFN) + 2);
  +   char *zMtime   = malloc(32);
  +
  +   strcpy(zFNPath, zPrefix);
  +   strcat(zFNPath, zFN);
  +
  +   get_filemeta(zFNPath, &zAuthor, &zComment, &zMtime);
  +
  +   if (zFN[0] == '/') {
  +       zFN++;
  +       @ <tr><td><a href="%s(zSubdirLink)%T(zFN)">%h(zFN)/</a></td><td nowrap>%s(zMtime)</td><td>%s(zAuthor)</td><td>%s(zComment)</td></tr>
  +   }
  +   else if (zCI) {
  +       const char *zUuid = db_column_text(&q, 1);
  +       @ <tr><td><a href="%s(g.zBaseURL)/artifact?name=%s(zUuid)">%h(zFN)</a></td><td nowrap>%s(zMtime)</td><td>%s(zAuthor)</td><td>%s(zComment)</td></tr>
  +   }
  +   else
  +       @ <tr><td><a href="%s(g.zBaseURL)/finfo?name=%T(zPrefix)%T(zFN)">%h(zFN)</a></td><td nowrap>%s(zMtime)</td><td>%s(zAuthor)</td><td>%s(zComment)</td></tr>
  +
  +   free(zFNPath);
  +   free(zMtime);
     }
     db_finalize(&q);
     manifest_destroy(pM);
  -  @ </ul></td></tr></table>
  +  @ </table>
     style_footer();
   }
  </verbatim>



  <hr /><i>zachtodd added on 2010-11-30 14:47:12:</i><br />
  Not the most well formatted patch.  Adding as an attachment.


tkt_uuid: feeb8a91eb838f743ae9ac2de426f60bcadeefee
type: Incident
status: Fixed
severity: Minor
foundin: [115f3ea60e] 2010-11-16 23:16:20 UTC
resolution: Fixed
title: "Unsupported command: blob" error during Fossil to Git export
comment:
  Converting a clone of the Fossil repo to Git produces the following error:
  <verbatim>
  $ fossil export -R ../fsl.fsl | git fast-import
  fatal: Unsupported command: blob
  fast-import: dumping crash report to .git/fast_import_crash_4728
  </verbatim>

  This was done on a Windows 7 box using msysGit (with Git v1.7.3.1).

  <hr /><i>drh added on 2010-11-17 12:46:38:</i><br />
  Perhaps this is the notorious windows
  NL -> CRNL issue that I still do not know
  how to solve.  Can you try the same export on Linux or Mac?


tkt_uuid: f386e46e1f177c2890b3ddc0b8f9c7487e1f9b91
type: Code_Defect
status: Open
severity: Important
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
title: fossil sqlite3 OPTIONS not properly evaluated
comment:
  It seem that OPTIONS in "fossil sqlite3 ?DATABASE? ?OPTIONS?" commands are not properly evaluated. Below is evidence of attempts to set separator to 'X' value. 

  I am in open checkout, so I can select stuff from fossil repo by built-in sqlite3 command(with or without explicitly naming fossil repo file):
  <verbatim>
  c:\soft\msys\home\user\fossil>fossil  sqlite3
  SQLite version 3.7.4
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> select * from blob where rid = 1;
  1|1|127|a28c83647dfa805f05f3204a7e146eb1f0d90505|
  sqlite> .qui

  c:\soft\msys\home\user\fossil>
  </verbatim>

  If I try to use OPTIONS (both with explicit naming of repo file or without naming of repo file, while invoking build-in sqlite3 in open check out directory), I get either:

  error "Error: no such table: blob", so options are not honored, perhaps interpreted as a name of(non existent) repo file:

  <verbatim>
  c:\soft\msys\home\user\fossil>fossil  sqlite3  --separator 'X'
  SQLite version 3.7.4
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> select rid,content from blob where rid = 1;
  Error: no such table: blob
  sqlite> .qui

  c:\soft\msys\home\user\fossil>
  </verbatim>

  OR error about too many options "sqlite3: Error: too many options: "'X'"" with exit to cmd shell:
  <verbatim>
  c:\soft\msys\home\user\fossil>fossil  sqlite3 c:\soft\bin\myfossilclone.fossil --
  separator 'X'
  sqlite3: Error: too many options: "'X'"
  Use -help for a list of options.

  c:\soft\msys\home\user\fossil>
  </verbatim>


tkt_uuid: acf7b14d93ad999b6b356ce725cdb4e39891b212
type: Code_Defect
status: Open
severity: Important
foundin: 3873aa7ecb
private_contact: 69e6fa40fdd4770fd3a59354e647ca589c07115f
resolution: Open
title: Bad import of tags as branches (propagating tags ?)
comment:
  I recently converted the Tcl core CVS to GIT using cvs2git, and then used

      git fast-export --all | fossil import tcl.fossil

  to convert this further to a fossil repository. When inspecting the git and fossil repositories I noticed the following difference:

  The tag 'core-8-5-9' was listed as such in git. fossil however was listing this in the web interface not as 'tag', but under 'branches'. Looking at the timeline of this supposed branch it also seem (to me) that the tag was set as 'propagating to descendants'. Maybe that is why it got misclassified as branch ?

  The git repo is 168M uncompressed, and 129 MB as bzip2 tarball. I can put it up somewhere if you wish to have for experiments.

  <hr /><i>drh added on 2010-11-17 19:01:23:</i><br />
  As far as I have been able to figure out, this behavior is a limitation
  of the Git fast-export file format.  The "commit" record in the output
  of Git fast-export only tells me the tag of the commit, not its branch.
  I cannot see anyway in the fast-export file to determine the branch.
  Hence, all I can do is make the tag into a branch and go with that.

  If you have suggestions on how to fix this, I'd love to hear them.

  <hr /><i>aku added on 2010-11-17 19:42:03:</i><br />
  Checking the fast-export dump ... Meh. This has lots of commits with that annotation ...

  Still, there is
     refs/tags/core-8-5-9
  vs refs/heads/core-8-5-branch

  so there has to be some difference inside of git between the branch and tag symbols.

  Even so, you are right, with the annotation on the commit command you know the tag, but not the branch it is on. On the other hand, do have to know ? There is the regular parent link (from) to the previous commit. That should be good enough to link the history together, and then we should be able use the heads/tags difference to decide on the branch/tag difference in fossil, no ?

  The one problem I see is that apparently after a commit was tagged (like with refs/tags/core-8-5-9) its children are tagged the same until another tag overrides this, or the whole line gets merged into a different branch.

  In essence the import code would have to ignore a refs/tags/X annotation of a commit if the parent commit was also tagged with refs/tags/X, i.e. an anti-propagation of tags.

  I hope I am making sense. I have a feeling any work on that should experimented with in a branch first, i.e. not developed in trunk. Makes it easier to abandon if its not working out.


tkt_uuid: 2c7b1cd3a367fc2d885d997ec62b90e57d312eea
type: Feature_Request
status: Closed
severity: Important
foundin: 9c31866404
private_contact: 68272c6eae73c7078fef2abf11458ad864fc0aad
resolution: Duplicate
title: Cannot bind to specific IP address when in server mode
comment:
  Strangely enough, when fossil is executed in <em>ui</em> mode - "fossil ui" - it binds to 127.0.0.1:8080 . However, when launched in <em>server</em> mode - "fossil server" - it automatically binds to *:8080. It seems there is no possibility to specify IP address for it to bind to in server mode. This is not very secure on multihomed systems.

  <hr /><i>dmitry added on 2011-09-08 22:02:16 UTC:</i><br />
  Duplicate of [b0894abc94].


tkt_uuid: c9e84b567178d755d216f095ca98da3a92d6a4cd
type: Feature_Request
status: Closed
severity: Severe
foundin: 9c31866404
private_contact: 68272c6eae73c7078fef2abf11458ad864fc0aad
resolution: Not_A_Bug
title: fossil treats anybody connecting from 127.0.0.1 as user with UID 1
comment:
  Even in server mode, fossil considers any user connecting from 127.0.0.1 to be super user. It seems like no policy mechanism is in effect whatsoever. This is especially troubling in case you are proxy-ing traffic from a web server (say lighttpd) to a fossil instance in server mode, where both programs run on the same machine.

  Also, when connecting to a fossil server over SSH and both SSHd and fossil run on the same machine, your connection is considered to originate from 127.0.0.1. No policy can be applied on such users and anybody connecting in this way is treated as super user.
  This not only affects fossil in server mode but also fossil running as CGI executed by web server, if the web server and SSHd are on the same machine.

  <hr /><i>anonymous added on 2010-11-18 01:46:21:</i><br />
  So under Admin -> Access check the "Require password for local access" setting.

  <hr /><i>drh added on 2010-11-18 02:38:50:</i><br />
  Anonymous above is correct.  The "treat-localhost-as-root" mode can be turned
  off easily enough if you are setting up a server that is accepting
  connections that proxied through localhost.

  <hr /><i>anonymous added on 2010-11-18 08:18:25:</i><br />
  Thank you. Shouldn't it be always ON in server mode?


tkt_uuid: e29ea5912afe1e97149ad181dc898bc7bbaa6237
type: Code_Defect
status: Fixed
severity: Severe
foundin: 115f3ea60e
private_contact: 63f4cb9d6971f7dbdee05412b8546975182b32e4
resolution: Fixed
title: Privacy attribution loss due to de/reconstruct ...
comment:
  As I also use Git in our company to communicate with Subversion used at work, I liked the fact, that I can work locally, change the commit and comments and if all is finish, I can checkin to the central repository.

  Now I intent to use Fossil's privat branches the same way. I intend to make my own checkins locally and if I am finished I send all with a big checkin to my central repository by merging the private branch into a non-private one to get it pushed later on.

  So far so good. As I investigated the possibility to implement a feature in Fossil to get private branches pushed as well (but not synced or pulled) for backup purposes, I stumbled over the fact, that private branches lose its privacy attribution, if I deconstruct (with following reconstruction) a repository.

  What makes it worse is, that if I look at the reconstructed repository the private branch looks exactly like at the original repository. I cannot determine, it is not private any longer. Therefore it will be cloned and synced as well ...

  I will attach a small shell script to show the bug ...

  Best regards,
  chi.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-18 22:47:06:</i><br />
  This is partially by design. Private / public is not a property in the manifest and can't survive a deconstruct as such.

  It would be useful for this kind of situation to be able to edit the property afterward, but it seems like the normal edit can't do that ATM?

  <hr /><i>chi added on 2010-11-19 12:00:41:</i><br />
  You mean "by design"? I thought, it was by accident ...

  I feel the behavior not correct. I mean reconstructing a repository should result in the same repository afterwards. Otherwise it would be a destroying operation. Of course, your idea to edit a branch to make it private after the fact (or remove privacy afterwards) would be a nice add-on too. But for reconstruction, I feel the privacy should survive. If we could have some card within a manifest to mark privacy, this could also be used to allow to push private branches to other repositories as well.

  Then we could use the push mechanism to allow incremental backup of Fossil repositories to another server without copying the whole repository all the time again and again ...

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-19 12:10:46:</i><br />
  deconstruct / reconstruct only preserve persistent data, e.g. the manifests and linked entries. The "private" flag is (intentionally) not persistent as it would prevent publishing the changes later.


tkt_uuid: 2c6a589bc5c4d790779ff37a16dff60d50aeea51
type: Code_Defect
status: Open
severity: Cosmetic
foundin: cf178577ec
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
title: Improve ancestor output for initial checkin
comment:
  A commit without parent should have a valid ancestor link and if someone creates the URL explicitly, it should look better, e.g. be explicit about it.
  Consider [http://www.fossil-scm.org/fossil/info/a28c83647d] as example.


tkt_uuid: f21f98c2671cd94a6c2db0941fa0f69a3cd761fb
type: Feature_Request
status: Open
severity: Important
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
title: Consistently support -R for almost all commands
comment:
  Many commands already support -R, but it is missing for other useful cases like "finfo" or indirectly support by giving the path directly for others like "info". It can and should work for almost any commands, the only exceptions being those that directly require a working copy or change the state of it (e.g. add, ci, mv).


tkt_uuid: a2dc3b67a2605ca47fe5b44ac5b09e8c4a8a7aa4
type: Code_Defect
status: Closed
severity: Minor
foundin: cf178577ec
private_contact: d65f5846b6a5b50edcd1a93c5d63af85a3b4050c
resolution: Duplicate
title: Versioned files in Windows still appear as extras if not commited with proper case
comment:
  It appears that on Windows, Fossil will "case-insensitively" 'fossil add' a file provided on the command line; however, 'fossil extras' will still list already-versioned file as extras if the file was not originally added with its exact, case-sensitive name.

  Steps to reproduce:

  1. Take a checked out Fossil directory on Windows.

  2. Create two subdirectories inside: "Work" and "Play".

  3. Create a new file in directory "Work" named "test.txt".

  4. Run 'fossil extras'; it reports "Work/test.txt".

  5. Run 'fossil add "work\test.txt" (noticed the lowercase "w"); it reports "ADDED  work/test.txt".

  6. Run 'fossil commit -m "blah"'; it does it successfully.

  7. Run 'fossil extras'; it reports "Work/test.txt".

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2010-11-19 12:13:37:</i><br />
  Windows is case-preserving, but case-insensitive. That means it doesn't care if you use WORK or work. Unless you explicitly iterate over the directory and use strcasecmp or so, you can't tell the difference. This easily explains the difference in behavior of "fossil extra".


tkt_uuid: b09dddc904f08415ced60db96c166d1054ba5dc2
type: Code_Defect
status: Open
severity: Severe
foundin: cf178577ec
private_contact: 78639907ceb3e7bf3684ddaac86c704582b6e76d
title: segfault on ticket edit
comment:
  A segfault occurs when attempting to edit any ticket in the system.  Tracing the problem with DDD, the issue seems to flow from tktedit_page, Th_Render, Th_Eval, thEvalLocal, thSplitList, thSubstWord, and finally to Th_HashFind where it segfaults on the following line:

  if( pRet->nKey==nKey && 0==memcmp(pRet->zKey, zKey, nKey) ) break


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: 99caf06e17bed849146e834a8341d40590c29bc5
type: Code_Defect
status: Fixed
severity: Important
foundin: [cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Error moving a file to a directory with ../..
comment:
  I had pwd in "tools/path", "../path2" existed, and I moved a file this way:
  <verbatim>
  fossil mv myfile ../path2
  </verbatim>

  Instead of renaming "tools/path/myfile" to "tools/path2/myfile", it renamed "tools/path/myfile" to "tools/path2", and the "fossil status" started showing "NOT A FILE".

  I had to "fossil checkout" to fix that working directory, and specify the full rename path the next time, including the file name.

  <hr /><i>viric added on 2010-11-27 23:41:03:</i><br />
  Sorry, I think I wrote quite an uncomplete report before. You will understand from this example, where file_isdir() fails, and will make mv_cmd() think it's a file rename instead of moving to a directory.

  The repository root is at 'repo':
  <verbatim>
  viric@bergamota:~/dir1/dir2/repo/tools/dir3$ LANG=C stat ../../include
    File: `../../include'
    Size: 200             Blocks: 0          IO Block: 4096   directory
  Device: fe00h/65024d    Inode: 32905       Links: 7
  Access: (0755/drwxr-xr-x)  Uid: ( 1000/   viric)   Gid: (  444/   viric)
  Access: 2010-11-28 00:34:28.000000000 +0100
  Modify: 2010-09-28 19:31:46.000000000 +0200
  Change: 2010-09-28 19:31:46.000000000 +0200
  viric@bergamota:~/dir1/dir2/repo/tools/dir3$ fossil test-canonical-name ../../include
  /home/viric/dir1/dir2/repo/include
    file_size   = 200
    file_mtime  = 1285695106
    file_isfile = 0
    file_isexe  = 0
    file_isdir  = 0
  </verbatim>

  <hr /><i>anonymous claiming to be viric added on 2010-11-27 23:42:35:</i><br />
  Sorry, I think I wrote quite an uncomplete report before. You will understand from this example, where file_isdir() fails, and will make mv_cmd() think it's a file rename instead of moving to a directory.

  The repository root is at 'repo':
  <verbatim>
  viric@bergamota:~/dir1/dir2/repo/tools/dir3$ LANG=C stat ../../include
    File: `../../include'
    Size: 200             Blocks: 0          IO Block: 4096   directory
  Device: fe00h/65024d    Inode: 32905       Links: 7
  Access: (0755/drwxr-xr-x)  Uid: ( 1000/   viric)   Gid: (  444/   viric)
  Access: 2010-11-28 00:34:28.000000000 +0100
  Modify: 2010-09-28 19:31:46.000000000 +0200
  Change: 2010-09-28 19:31:46.000000000 +0200
  viric@bergamota:~/dir1/dir2/repo/tools/dir3$ fossil test-canonical-name ../../include
  /home/viric/dir1/dir2/repo/include
    file_size   = 200
    file_mtime  = 1285695106
    file_isfile = 0
    file_isexe  = 0
    file_isdir  = 0
  </verbatim>

  <hr /><i>anonymous added on 2010-11-27 23:44:23:</i><br />
  Just to clarify, there are no symlinks around. Only simple directories, so the canonical name is correct.
  The same 'test-canonical-name' works perfect for "../dir4", where dir4 exists. But it fails for "../../include".

  <hr /><i>anonymous claiming to be page added on 2010-12-27 14:36:41:</i><br />
  Any updates on this front? I just stumbled upon the same problem, where fossil mv file ../../dirname moved file to dirname instead of dirname/file.

  <hr /><i>anonymous claiming to be viric added on 2011-01-06 21:34:19 UTC:</i><br />
  I investigated the problem further.

  file_isdir() was made to use file_simplify_name() because of some bug in mingw [a7822bcc001e9]. Nevertheless, file_isdir() is called sometimes with a canonical filename, sometimes with a filename directly from program arguments.

  The function file_simplify_name() works well only for canonical names, because it is meant to remove the ".." in absolute paths. So when file_isdir() is called without a canonical name with the sequence '../..' in it, it works bad.

  As I don't know the mingw bug, I imagine that the file_simplify_name() call has to be there. So, I propose what comes to mind:
    *  Make file_simplify_name() work well when it's given a non-canonical name
    *  Make file_isdir() not call file_simplify_name() if the name is not canonical.

  Any preference? As drh did the change [a7822bcc001e9], he may know the best option.

  <hr /><i>anonymous claiming to be viric added on 2011-01-11 13:10:58 UTC:</i><br />
  I attached a patch that always uses file_canonical_name() so file_isdir() works for cases of "../.." directories.

  As it works with canonical names, maybe it has troubles with the ".." directories inside a symlinked directory, but I imagine there may be troubles for this situation in other parts of the code too.


tkt_uuid: 806c4358cddf8dcfa879c9a26db2a23de69f536f
type: Documentation
status: Fixed
severity: Minor
resolution: Fixed
title: Wrong anchor on 'settings'' in reference (settings vs. setting)
comment:
  Wrong anchor on 'settings' in reference.wiki.

  http://www.fossil-scm.org/fossil/doc/tip/www/reference.wiki#setting
  vs.
  http://www.fossil-scm.org/fossil/doc/tip/www/reference.wiki#settings

  One can observe the behavior also on the command line.

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


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: 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: b6579b1ec167413cb59a0d8b7888f275478fb0c5
type: Code_Defect
status: Open
severity: Important
foundin: cf178577ec
private_contact: e16bca9376b716bf489a593de88e7b2760905520
resolution: Open
title: Update with a merge fails on unicode files
comment:
  Updating a file with a merge fails if the file is a UTF-16 file. <br>
  This is what I get when I try to update and merge an UTF-16 file changed in two different checkouts:

  MERGE RightToLeft/RightToLeft/Localization/HebrewConverter.cs<br>
  ***** Cannot merge binary file RightToLeft/RightToLeft/Localization/HebrewConverter.cs

  I guess it is the same for UTF-8, but I didn't test this.<br>
  For developers outside of the USA it is very important to have full Unicode support for all operations concerning the versioned content of the repository.

  <hr /><i>drh added on 2010-11-24 20:13:01:</i><br />
  UTF8 should work fine.  It is only UTF16 that is not supported.  Fossil is
  seeing the 0x00 bytes in some of the characters and thinks it is dealing with
  a binary file rather than a text file.

  I suppose the "diff" logic (which is essential to doing a merge) could
  be enhanced to deal with UTF16.  Would the poster care to suggest a patch?

  <hr /><i>anonymous added on 2010-12-13 21:35:16:</i><br />
  If it would be a straight small patch, I'd love to submit a patch, but I think this would be a major rewrite because all string operations which rely on on a single zero byte to terminate a string will fail with UTF-16 characters.
  I guess that's why break_into_lines returns 0 as soon as it encounters any 0 byte.

  Obviously diffing two files executes a lot of string operations and to find and change all of them without braking the standard behaviour seems to be a task for a lot of long, long winter evenings. ;-)

  I'll change my sources which require Unicode support to UTF-8 where possible and live with the risk of not beeing able to merge source where UTF-8 is not an option. 

  Nevertheless, thanks for this great piece of software.


tkt_uuid: f1c75f38446877b1d9c4607c8ffd0160728fb46f
type: Code_Defect
status: Closed
foundin: [12a79e5b93]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Unable_To_Reproduce
title: Events without tags don't get listed
comment:
  I added an event without tags, and I cannot see it listed in the timeline in any case. Here is the artifact I got from the log:
  <verbatim>
  C Nanonote\sboot
  D 2010-11-24T22:08:16
  E 2010-11-24T22:06:28 1c1d4c8b982706f8ebf40bfc28317052c43ad1e2
  U viric
  W 365
  I hoped I would get virtual consoles working, but using the latest version in
  the nanonote directly flashing the ubifs, I only got immediately a 'sh' (bash)
  and no login prompt at all as I got with qemu.

  Also the /etc/profile or /etc/bashrc scripts did not run.

  Worth investigating. There may be a trick to enable virtual consoles, and
  mingetty is not enough.
  Z eb5692f98105723c771dbec94d3cc82e
  </verbatim>

  <hr /><i>drh added on 2010-11-25 01:41:39:</i><br />
  I added the event below on a dummy repository and it showed up on the 
  timeline fine.  Notice that it has no tags:

  <pre>
  C Yet\sanother\sevent
  D 2010-11-25T01:39:49
  E 2010-11-25T01:39:33 9a517bd1943c8543eed53df323dc9cbf456c091d
  U drh
  W 42
  This event does not even have a color tag.
  Z 0c4ab5944b63c5f173144e759cf16c9d
  </pre>

  <hr /><i>anonymous added on 2010-11-27 23:19:52:</i><br />
  Now I think it could have been a problem related to the time. I'll check.

  <hr /><i>anonymous claiming to be viric added on 2010-11-29 23:14:18:</i><br />
  Sorry, I don't think it's a time problem. I added there a new event without tags and it works. But I still cannot see the event I mentioned when opening the ticket

  You can clone the repository and see:
  http://vicerveza.homeunix.net/~viric/cgi-bin/nanonixos

  Artifact: 4d12cabdeca86a71190c39b1e458faae4fad0faf

  <hr /><i>anonymous claiming to be viric added on 2010-11-29 23:16:48:</i><br />
  Ouch, sorry. My fault. it's time related. I was in fact seeing only the old event, and I'm again not seeing the event I added some minutes ago.

  Whenever I find the pattern, I'll report.


tkt_uuid: 1d77d8f5661375630c6a0fc24d151beab6d38df2
type: Code_Defect
status: Open
severity: Important
foundin: [cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: On firefox, forward and backward don't refill the forms
comment:
  I find it quite annoying, that if I miss some click and follow some link, then I can't go back to the previous page and get the dialogs with the last text I had written there.

  I think it's caused by the http caching rules set by fossil on http responses, but I don't know much detail on how all this works.


tkt_uuid: 37abeba2e56d03b689a0bee53488ec915f6d6371
type: Code_Defect
status: Open
severity: Important
foundin: d0753799e4
private_contact: 194c9ef8edbd9a57ef36f4f18fde1d57ce26e1e5
title: Authorization problem
comment:
  The repository in question is
  http://chiselapp.com/user/andreas_kupries/repository/crimp/home

  The user 'anonymous' has 'clone' capability.
  Running
  <pre>
  (1) fossil clone http://chiselapp.com/user/andreas_kupries/repository/crimp/home x.fossil
  </pre>
  or even
  <pre>
  (2) fossil clone http://anonymous@chiselapp.com/user/andreas_kupries/repository/crimp/home x.fossil
  </pre>

  Returns the error message "Not authorized to clone".

  Then I gave the user 'nobody' the capability to 'clone'.
  Running (1) now hangs the client, the only output seen is

  <pre>
                  Bytes      Cards  Artifacts     Deltas
  Sent:              53          1          0          0
  waiting for server...
  </pre>
  until I kill the command via ^C

  This last is why I made the ticket.

  For the first problem I wonder what the user settings are for repositories where I can run the equivalent of (1) and have a successful clone ...


tkt_uuid: 1b1f4300786a3f1626819fc6876dff29e6d40206
type: Feature_Request
status: Open
foundin: [cf178577ec]
private_contact: 75ccf14dca62728f6b2e151da4674a92b78e0e94
title: sync via network share
comment:
  We are testing fossil in a very simple setup: the master repository is on a project share that our stuff has access to, only the fossil database, not running as fossil server.

  Cloning that file locally works, so we can work with that clone while offline.  However, when the network share is accessible again, we would like to sync these changes.  Fossil complains that only pull, but no push is possible.  Granting all possible rights didn't change anything.

  We are using the Windows version of fossil.


tkt_uuid: 3e58b8ceafb64aac96b0ebc4a8629f3f666d6a2b
type: Code_Defect
status: Open
severity: Important
foundin: f88368742d
private_contact: f1b8ea383d4afeb868c8f564f3fc833831f28a5a
title: fossil timeline -n limits by number of printed lines rather than number of entries
comment:
  The print_timeline function in src/timeline.c limits by number of printed lines, but according to the documentation in "fossil help timeline" the -n flag should limit by the number of check-ins.

  To reproduce:

  fossil new bugdemo.fossil ; mkdir bugdemo ; cd bugdemo ; fossil open ../bugdemo.fossil  ; touch one.txt ; fossil add one.txt ; fossil commit -m "Added first file." one.txt ; touch two.txt ; fossil add two.txt ; fossil commit -m "Added second file with a nice long commit message - well, at least long enough that displaying it via 'fossil timeline' will cause a line wrap." two.txt

  Now "fossil timeline -n 3" will only display one commit. "fossil timeline -n 4" will display two.


tkt_uuid: 33ffff3b4d961cf6e2a0ce265e2758992d04195e
type: Feature_Request
status: Fixed
severity: Important
foundin: cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Add a way to do an automatic binary search
comment:
  It would be nice if there could be an automatic way (writing a test program) to bisect for a commit that triggered a change in the test program result, for a given branch.

  Or you think that should be a task for a script that uses fossil?

  Thank you.

  <hr /><i>anonymous claiming to be gour added on 2010-11-27 07:40:49:</i><br />
  I'd say it's the task for the script.

  <hr /><i>anonymous claiming to be viric added on 2010-11-30 21:05:19:</i><br />
  So, let's say that we know, for a given branch, two checkins, extremes of where we want to do the binary search.

  What fossil command would return a list of all the checkins between them, they included?

  <hr /><i>drh added on 2010-12-07 15:36:53:</i><br />
  The "fossil bisect" command has been added.


tkt_uuid: c678f128a41210029b5bbcfd2f9ebbef06aa5fda
type: Code_Defect
status: Open
foundin: cf178577ec
private_contact: 75ccf14dca62728f6b2e151da4674a92b78e0e94
title: Cannot add attachments on Windows
comment:
  Running fossil on Windows.

  <verbatim>
  fossil new ttt.fossil
  fossil ui ttt.fossil
  </verbatim>

  In the opened GUI, click on 'Tickets', 'New Ticket', enter information, click 'Submit'.  Choose 'Attach' and choose a file (it's plaintext btw).  Click on 'Add Attachment' ==> Results in display of ticket without any attachment (nor Attachment heading) listed.

  <verbatim>
  fossil sqlite3 ttt.fossil
  select * from attachment; ==> nothing
  </verbatim>

  The files I tried to attach are however listed under 'Admin' -> 'Log' as artifacts.

  If I do the same with Linux version of fossil, everything works as expected:
    *  Viewing a ticket with attachments show Attachments heading and attachments
    *  select * from attachment; ==> list of attachments


tkt_uuid: 2600e5a50de33acfbeb4ca1085d500619deab73f
type: Feature_Request
status: Closed
foundin: [f105bc17a0]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Rejected
title: Add a simple read-only WebDAV access
comment:
  A little implementation of WebDAV would allow mounting directly repositories, like with [http://noedler.de/projekte/wdfs/|wdfs] (FUSE webdav client).

  I've always seen this feature in svn repositories served through http or https, and it allows easy browsing of a project by simply mounting its upstream repository as a network filesystem.

  wdfs even has a <tt>svn_mode</tt> that puts into the filesystem a subdirectory where all versions go, to be able to have in the filesystem tree multiple revision of the concerning svn subdirectory mounted.


tkt_uuid: 2ee159304e721349aae20e7a8155c7e6c2b041a9
type: Code_Defect
status: Open
foundin: [cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Error in timeline (armv5tel-linux) showing events
comment:
  This comes from further investigating of the problem quite bad reported at [f1c75f3844687].

  I got confused again when I said it was about time (I missed one unsynched local 'fossil ui' with the server).

  So, as said, you can clone that repository: http://vicerveza.homeunix.net/~viric/cgi-bin/nanonixos
  You will see in the timeline of the server that the event related to the artifact 4d12cabdeca86a71190c39b1e458faae4fad0faf does not appear in the timeline. But I imagine it will appear in your local fossil timeline.

  I've investigated a bit...

  That server (vicerveza.homeunix.net) running fossil as a cgi is an armv5tel-linux. I tried there fossil [cf178577ec] 2010-11-17 and fossil [12a79e5b93] 2010-10-05). Both show the same behaviour: the event of that artifact is not shown in the timeline. I've tried in all the cases a 'rebuild'.

  Nevertheless, if I clone that in an x86_64-linux, I don't have any problem in the local 'fossil ui', using the [cf178577ec] 2010-11-17 version.

  The server, to give more details, has gcc 4.5.1, glibc 2.12.1, and all fossil tests passed after building.

  <hr /><i>anonymous claiming to be viric added on 2010-11-30 19:40:51:</i><br />
  As long as investigate...
  I'm trying "fossil sqlite3". There should be three events, and for example I get:
  <verbatim>
  sqlite> SELECT * from event WHERE event.type='e';
  e|2455530.46353009|168|19||||viric||The malta keyboard does not work still|
  e|2455530.49096065|169|20||||viric||links2 not working in graphics mode|
  </verbatim>


  <hr /><i>anonymous claiming to be viric added on 2010-11-30 20:06:55:</i><br />
  I've just compared de "rebuild -quiet -sqltrace" both in x86_64 and armv5tel. The concerning block with the difference is:
  <verbatim>
  282,283c285,288
  < SELECT rid FROM tagxref WHERE tagid=11 AND mtime<2455525.422407407 ORDER BY mtime DESC;
  < SELECT rid FROM tagxref WHERE tagid=11 AND mtime>2455525.422407407 ORDER BY mtime;
  ---
  > SELECT rid FROM tagxref WHERE tagid=11 AND mtime<2455525.422407408 ORDER BY mtime DESC;
  > DELETE FROM event WHERE type='e'   AND tagid=11   AND objid IN (SELECT rid FROM tagxref WHERE tagid=11);
  > SELECT rid FROM tagxref WHERE tagid=11 AND mtime>2455525.422407408 ORDER BY mtime;
  > REPLACE INTO event(type,mtime,objid,tagid,user,comment,bgcolor)VALUES('e',2455525.421157408,74,11,'viric','Nanonote boot',  (SELECT value FROM tagxref WHERE tagid=1 AND rid=74));
  </verbatim>

  I think there may be a problem on floating point precision / algorithms. The armv5tel cpu does not have a FPU, and it uses gcc's -msoft-float.

  <hr /><i>anonymous claiming to be viric added on 2010-11-30 20:33:57:</i><br />
  So, manifest_parse includes:
  <verbatim>
          p->rDate = db_double(0.0, "SELECT julianday(%Q)", next_token(&x,0));
  </verbatim>

  While the tag_insert called in manifest_crosslink() does:
  <verbatim>
    db_prepare(&s,
      "REPLACE INTO tagxref(tagid,tagtype,srcId,origid,value,mtime,rid)"
      " VALUES(%d,%d,%d,%d,%Q,:mtime,%d)",
      tagid, tagtype, srcId, rid, zValue, rid
    );
    db_bind_double(&s, ":mtime", mtime);
  </verbatim>

  While the call at manifest_crosslink() does:
  <verbatim>
      prior = db_int(0,
        "SELECT rid FROM tagxref"
        " WHERE tagid=%d AND mtime<%.17g"
        " ORDER BY mtime DESC",
        tagid, p->rDate
      );
  </verbatim>

  I think that the <tt>%.17g</tt> printf kind of prompt should be moved into db_bind_double, as before. Otherwise there may be rounding problems, like those I am experiencing.

  Notice that the tag_insert resulted, in both computers, in:
  <verbatim>
  REPLACE INTO tagxref(tagid,tagtype,srcId,origid,value,mtime,rid) VALUES(11,1,74,74,'365',2455525.42240741,74);
  </verbatim>

  While the printf-style SQL queries with <tt>%.17g</tt> had different results in the two computers.

  <hr /><i>anonymous claiming to be viric added on 2011-01-10 08:20:18 UTC:</i><br />
  Is [722d7cac97] going to mean any improvement on this?

  Thank you.

  <hr /><i>viriketo added on 2011-05-13 16:08:19 UTC:</i><br />
  I think [9b26d1e9a2] may have fixed the problem. I'll try.


tkt_uuid: 80a524317d2fbbeeab3bb76ce702ebbf34511b5a
type: Feature_Request
status: Open
private_contact: bfe18fbf3677b2933b8003f336ea606efcd4a006
title: An alias for the command 'help' like in subversion.
comment:
  As a wish: one '?' as an alias for the command 'help' like in subversion would be nice. Thank you very much.


tkt_uuid: fd5f24a5ca7e85d7290de7b1a0942f9bf9ce707c
type: Code_Defect
status: Open
severity: Cosmetic
private_contact: bfe18fbf3677b2933b8003f336ea606efcd4a006
resolution: Open
title: fix for nestled html tags in diff view (and additional stuff)
comment:
    #  bug fix for nestled p's in diff view
    #  some additional classes to facilitate access via CSS
    #  JS-poisoning to colorize the diff view and annotation
    tested in some web browsers (Opera, FF, Chrome) and also in IE 8

  <hr /><i>zachtodd added on 2010-12-01 21:38:31:</i><br />
  This looks very promising.

  <hr /><i>anonymous added on 2010-12-03 11:04:31:</i><br />
  Thanks, but I thing it can be better done in native C and the main goal is the point 2. Unfortunately, I'm not a good programmer.

  The latest versions of fossil contains also some XHTML and CSS bugs an invalid definitions (5+) in the themes. Some browsers will be very angry and do something else.


tkt_uuid: 195e50e93489c4997d698a1ec2634a1398d29975
type: Code_Defect
status: Fixed
severity: Important
foundin: f105bc17a0
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title: out of memory error with fossil sqlite3 command
comment:
  <pre>
  With fresly rebuild repository this sequence crashes fossil:

  c:\soft\msys\home\user\fossil>fossil ver
  This is fossil version [f105bc17a0] 2010-11-26 18:43:22 UTC

  c:\soft\msys\home\user\fossil>fossil sqlite3
  SQLite version 3.7.4
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> select * from blob where uuid='2e68abae2f7da03c7418cfe4eedc11c484fbee82'
  ;
  9935|622|2886|2e68abae2f7da03c7418cfe4eedc11c484fbee82|
  sqlite> select content('2e68abae2f7da03c7418cfe4eedc11c484fbee82');
  c:\soft\msys\home\user\fossil\fossil.exe: out of memory
  SELECT 0 FROM blob WHERE uuid='2e68abae2f7da03c7418cfe4eedc11c484fbee82'

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

  </pre>


tkt_uuid: a66760daeecca231d849d4cab04f519efc6e797c
type: Documentation
status: Fixed
severity: Cosmetic
resolution: Fixed
title: Typo on Import And Export page
comment:
  Open http://www.fossil-scm.org/index.html/doc/trunk/www/inout.wiki

  Search for "commandn"

  I believe it should be "command"


tkt_uuid: 8d786b9ab1228fdf6214776dfe0490191b426fd9
type: Feature_Request
status: Closed
severity: Important
foundin: 3ad5891c72
private_contact: 09d09b41d94be1b9adea78189eb3c716b5267367
resolution: Duplicate
title: Should be ability to translate into Russian(other languages)
comment:
  How can i trunslate fossil into Russian ?

  <hr /><i>anonymous claiming to be здесь вам не тут added on 2010-12-04 09:23:44:</i><br />
  You can't. Every programmer must at least read English.

  <hr /><i>anonymous claiming to be gour added on 2010-12-04 09:54:00:</i><br />
  <blockquote>Every programmer must at least read English.</blockquote>

  What about people contributing to the project via web by e.g. submitting tickets?



  <hr /><i>anonymous added on 2010-12-07 15:07:09:</i><br />
  I favour the possibility to translate fossil.

  If any responsible of Fossil makes a claim such as "Every programmer has to know English, and that's why we don't plan to do anything to allow translations", please put that on the front page of fossil so people can choose another VCS and blame fossil publicly, instead of setting it in hiding.

  I really hope the main developers don't have this point of view on "English über alles".

  On the other hand, I understand it requires some effort to allow a program to interact in the user language of choice.

  <hr /><i>dmitry added on 2011-09-08 22:15:52 UTC:</i><br />
  Duplicate of [91683f49e8].


tkt_uuid: 891cd78969e03ec3009be583653dd6f524a160a3
type: Code_Defect
status: Fixed
severity: Important
foundin: bd75ea06b8
private_contact: 24b67375dd2ec6c7381a5ad34cfcf006f0b9c260
resolution: Fixed
title:
  Error: cannot close database "unable to close due to unfinalised statements" with fossil sqlite3 command

comment:
  Closing fossil sqlite session will show error if content(uuid) function was used.
    
  <pre>
  c:\soft\msys\home\user\fossil>fossil ver
  This is fossil version [bd75ea06b8] 2010-12-04 19:25:04 UTC
  c:\soft\msys\home\user\fossil>fossil sqlite3
  SQLite version 3.7.4
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> select * from blob where uuid='2e68abae2f7da03c7418cfe4eedc11c484fbee82';
  9935|622|2886|2e68abae2f7da03c7418cfe4eedc11c484fbee82|
  sqlite> select content('2e68abae2f7da03c7418cfe4eedc11c484fbee82');
  ...
  there is a content of artifact [2e68abae2f7da03c7418cfe4eedc11c484fbee82] listed
  ...
  sqlite> .quit
  Error: cannot close database "unable to close due to unfinalised statements"

  c:\soft\msys\home\user\fossil>
  </pre>


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: 923872a184b6ef77ef18c9c164a652a0ced34bc2
type: Feature_Request
status: Open
severity: Important
foundin: 0018d724b3
private_contact: 09d09b41d94be1b9adea78189eb3c716b5267367
resolution: Open
title: Ability to search tickets on website
comment:
  Searching by id(name=#),summary  and detailed description and comments

  <hr /><i>anonymous added on 2011-01-06 02:48:17 UTC:</i><br />
  Ability to sort by any field listed in the report would be necessary too. I'm considering using fossil purely as a ticket tracker, but search/sort functions are too lacking for an otherwise very attractive solution.


tkt_uuid: c1a315455041e652584fee0468bc8b542afee606
type: Code_Defect
status: Closed
severity: Important
foundin: 0018d724b3
private_contact: 09d09b41d94be1b9adea78189eb3c716b5267367
resolution: Not_A_Bug
title: Errors on web server (first start) SQLITE_CANTOPEN
comment:
  1) cgi-bin/mltweb.cgi/home - ок
  2) clicking setup/config it's redirect me to /cgi-bin/mltweb.cgi/login?g=/cgi-bin/mltweb.cgi/setup_config

  and show this:

  SQLITE_CANTOPEN: cannot open file at line 27596 of [fabcb6b95e]

  SQLITE_CANTOPEN: statement aborts at 31: [REPLACE INTO config(name,value) VALUES('captcha-secret', lower(hex(randomblob(20))));]
  Database Error

  unable to open database file
  REPLACE INTO config(name,value) VALUES('captcha-secret', lower(hex(randomblob(20))));

  <hr /><i>anonymous added on 2010-12-08 15:24:11:</i><br />
  Sory ... was problem with rights on directory project location


tkt_uuid: ad169d2c5078f26677ec9e0d76cb17b3a877ce00
type: Feature_Request
status: Closed
severity: Important
foundin: 0018d724b3
private_contact: 09d09b41d94be1b9adea78189eb3c716b5267367
resolution: Duplicate
title: assign-to ticket field
comment:
  'Assign to' field required :)

  <hr /><i>dmitry added on 2011-09-08 23:04:37 UTC:</i><br />
  Duplicate of [f6b83821d6]


tkt_uuid: b5efc3a47bd10f0510aee21240419e6845e7a1e5
type: Code_Defect
status: Fixed
severity: Important
foundin: [0018d724b3]
resolution: Fixed
title: Bracket wiki links to events don't work
comment:
  Like this: [be8f2f3447]
  This points to the home page.

  As a question apart, why checkins have the brackets as part of the clickable link in the timeline, and events not? And tickets even don't have brackets.

  <hr /><i>anonymous claiming to be viric added on 2011-01-13 09:38:01 UTC:</i><br />
  I came up with a way to link to events: [/event?name=be8f2f3447]


tkt_uuid: e6b127d7a7caaffccf3e58f08b4fa2f9754fb103
type: Feature_Request
status: Open
foundin: [0018d724b3]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Events cannot have attachments, and wiki pages can
comment:
  If it is the intended behaviour, how so?

  At our fossil repository it would be nice if we could attach some files related to events. We use events to note when we deliver something to customers, and attaching related files would be convenient.

  <hr /><i>anonymous added on 2010-12-14 10:35:24:</i><br />
  IMHO, this ticket is more a feature request
  -- JosVanKesteren at gmail.com


tkt_uuid: e8a6bfa54e0c389c903958c287a69f8604ecdfcc
type: Code_Defect
status: Fixed
severity: Cosmetic
foundin: [0018d724b3] 2010-12-07 13:31:37 UTC
private_contact: 8da35fd1d2c376262a3c33172be72b2f6d4328b0
resolution: Fixed
title: Minor spelling mistake in online help for fossil import
comment:
  fossil help import
  Usage: fossil import --git NEW-REPOSITORY

  Read text generated by the git-fast-export command and use it to
  construct a new Fossil repository named by the NEW-REPOSITORY
  argument.  The <b>get-fast-export</b> text is read from standard input.

  The git-fast-export file format is currently the only VCS interchange
  format that is understood, though other interchange formats may be added
  in the future.


tkt_uuid: 67176c3aa4c3ccfff98ad08c4845f7380a58fa98
type: Code_Defect
status: Closed
foundin: [cf178577ec]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Unable_To_Reproduce
title: Changes silently lost merging with renames
comment:
  A friend of mine told me a case that made him refuse use fossil at all. I could reproduce it, and it scared me also.

  <verbatim>
  echo Hello > a.txt
  fossil add a.txt
  fossil commit -m "new file"
  echo newline >> a.txt
  fossil commit --branch b -m "new branch with a new line"
  fossil update trunk
  fossil mv a.txt b.txt
  mv a.txt b.txt
  fossil commit "rename on trunk"
  fossil merge b
  # It does not warn about anything, considers the merge clean
  # and the file b.txt does not have the new line on a.txt
  </verbatim>

  <hr /><i>anonymous added on 2010-12-09 21:35:09:</i><br />
  Merging in the other direction, from "b" running "merge trunk", also ends with the file renamed but the new line lost.


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: 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: d22946aa0c8052c4dc6edd4b296cb2cb3bc80d7d
type: Code_Defect
status: Fixed
severity: Important
foundin: [3873aa7ecb]
private_contact: 5081120eaf9d2becc688bc77c336c97ae00b766d
resolution: Fixed
title: Adding files with non-English file names is not cross-platform
comment:
  Reproducing the problem, step by step:
    #  Create an empty repository on Linux.
    #  Add a file with non-English file name, say "Текст-01.txt" (the word "text" in Russian with numeric suffix), commit the changes.
    #  Clone repository to Windows machine. In the process of opening the cloned repository Fossil will create file with name "РўРµРєСЃС‚-01.txt", which is definitely is not the file name user expects.
    #  Again, add a file with non-English file name (for the above example it would be "Текст-02.txt", commit the changes and sync with the parent repository.
    #  Update the working copy on Linux. In the result there will be a new file with file name "�����-02.txt", not the original Windows file name. Besides that, the manifest file contains file names in mixed encoding and it is a considerable problem when you try to parse it with console-based tools.

  From examining the sources I see that Fossil doesn't differentiate file name encoding on different platforms and assumes it to be always UTF-8. In the contrast, on Windows console applications always use national code pages for file names. In the case of Russian localization of Windows the encoding of file names will be Windows-1251.

  In src/db.c there are cases of using sqlite3_win32_mbcs_to_utf8() function when reading the repository database, so it opens even if the file name or path contain non-English characters, but no additional conversions (MBCS to UTF-8, UTF8 to MBCS) are made in the process of working with repository files.


tkt_uuid: 33d2bf39889352f2f11895277f52d4f62e90fd8f
type: Feature_Request
status: Fixed
severity: Minor
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Fixed
title: "fossil update" should get current branch if multiple descendants
comment:
  This is something which has bothered me for a while:

  "A", "B" and "C" check out a repo.  "B" and "C" make changes.  "B" checks in on a new branch, "C" checks in on the original branch.  Now, when "A" does <tt>fossil update</tt>, he gets a nice informational message about the two descendant branches, but fossil does not get anything unless told which branch to get.

  My suggestion is that <tt>fossil update</tt> should <i>always</i> get the branch it was on originally unless told otherwise.  It should also inform the user if there are new branches in the meantime, but the existence of new branches should be informative and not an obstacle.


tkt_uuid: a470443b64412d2856a12b5a889ea08ff5837651
type: Feature_Request
status: Fixed
severity: Minor
private_contact: e16bca9376b716bf489a593de88e7b2760905520
resolution: Fixed
title: Option to suppress hex dump on artifact page
comment:
  The artifact page displays a hex dump instead of a diff if the file is binary and not an image. Especially for large binary files this is IMHO not only useless but also resource and time consuming. 

  I'd really appreciate a possibility to switch off this behaviour and to display a short message that it is a binary file.

  Because presenting a solution is better than moaning, I have attached patch.


tkt_uuid: 10eca887930f418717b889bb7867ce212a82665e
type: Build_Problem
status: Closed
severity: Minor
private_contact: 983ee4fb980d07b16f3b6e0d4afa8f975a05479f
resolution: Not_A_Bug
title: Wanting to create Package for Arch Linux
comment:
  I create packages in AUR for Arch Linux packages. I have some people who wants the "live" version of the package so it will always be up to date. Is there a way I can use GIT or similar application to download the latest commits to the development tree?

  <hr /><i>anonymous added on 2010-12-14 14:54:06:</i><br />
  1) download source code
  2) compile fossil
  3) clone fossil-repo
  daily fossil pull, fossil upd, makepkg.  fossil rebuild


tkt_uuid: b14f8788191f6e05253c4c9353231b6a63f18994
type: Code_Defect
status: Open
foundin: This is fossil version [e3313965d3] 2010-12-15 02:42:29 UTC
private_contact: 1fb8c275493b1f1dcf8db46d6d541794a011947f
resolution: Open
title: Line ending changes cause fossil to not detect differences for commit
comment:
  In a large project, I get errors like this on a commit:

  <verbatim>
  ERROR: [root/user/test/zero/Makefile] is 61 bytes on disk but 64 in the repository
  </verbatim>

  The only difference between the previous version and this is that the 
  line endings changed from dos style to unix style.

  I tried to reproduce it with a small file, but I get bizarre behaviour
  with fossil sometimes detecting the change, but sometimes not.

  Looks like things work in this small example if I put a "sleep 1" 
  before the commit, but they don't otherwise.  On the bigger example,
  I just can't get the file to commit. It either gives the ERROR 
  when I don't specify any filename, or says "nothing has changed" if 
  I give it the explicit filename

  <verbatim>
  $ fossil open f
  $ echo a > a
  $ fossil add a
  ADDED  a
  $ fossil commit -m 1 a
  New_Version: 54592e024b956e96eecba85541914675c6454aa7
  $ unix2dos a;  fossil commit -m 1 a; dos2unix a;  fossil commit -m 1 a
  unix2dos: converting file a to DOS format ...
  New_Version: aa6d03e4ea89aa9885463c44f6747d583b60eb59
  dos2unix: converting file a to UNIX format ...
  fossil: ancestor check-in [aa6d03e4ea] (2010-12-15 07:11:53) is not older (clock skew?) Use -f to override.
  $ unix2dos a;  fossil commit -m 1 a; dos2unix a;  fossil commit -m 1 a
  unix2dos: converting file a to DOS format ...
  New_Version: 351b9813df675e832d63b7bcfe098b5c4373e80e
  dos2unix: converting file a to UNIX format ...
  fossil: nothing has changed
  $ unix2dos a;  fossil commit -m 1 a; dos2unix a;  fossil commit -m 1 a
  unix2dos: converting file a to DOS format ...
  fossil: nothing has changed
  dos2unix: converting file a to UNIX format ...
  fossil: nothing has changed
  $
  </verbatim>

  <hr /><i>anonymous added on 2010-12-15 08:06:12:</i><br />
  I think that Windows filesystems (at least fat32) has timestamps only every two seconds. And at best, every second like unix.

  Some files may be changed and remain with the same timestamp, and it may be a cause why fossil does not find anything new, but it finds so after a 'sleep'.

  <hr /><i>venks added on 2010-12-15 15:48:33:</i><br />
  On the big project waiting any amount of time doesn't help, I
  still get the errors - it's like fossil remembered the state 
  with the wrong line endings.

  Time has something to do with it - I'm fossilizing an old
  project from out of tar.gz files, so there are lots of quick
  commits with a large number of files, and the files have
  old timestamps.  I'm guessing the previous commit already 
  messed it up somehow.

  The files have windows line endings, but I'm on linux, although an old
  one:

  <verbatim>
  Linux yukon.comit.com 2.6.11-1.1369_FC4smp #1 SMP Thu Jun 2 23:16:33 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
  </verbatim>



  <hr /><i>venks added on 2010-12-15 18:16:11:</i><br />
  Thanks to drh.  This is fixed by using fossil status -sha1sum to detect
  changes.  Feel free to close this.


  <hr /><i>anonymous claiming to be viric added on 2010-12-17 21:10:26:</i><br />
  Related, there is the "repo-cksum" setting.


tkt_uuid: 1e8b4d2ef3723e3c42fad2fb30329caf94e51f3f
type: Build_Problem
status: Closed
severity: Critical
foundin: N/A
private_contact: bd67c5ec03f37ab8329651ac2c8c72faad131e93
resolution: Unable_To_Reproduce
title: No manifest.uuid in downloaded zip file
comment:
  Downloaded zip file for 3543ed from http://www.fossil-scm.org/, but it contains no manifest.uuid, so cannot be built.

  <hr /><i>drh added on 2010-12-16 02:22:07:</i><br />
  The copy of the ZIP archive I downloaded seems to have all the files, 
  including manifest and manifest.uuid.  Can you provide more information
  on how you encountered this problem?

  <hr /><i>eric added on 2010-12-16 11:25:54:</i><br />
  It worked today! I will try to figure out what was different, may have been my fault somehow.


tkt_uuid: b621a3f6c129026d7462267443a0012912ce3d29
type: Code_Defect
status: Open
severity: Minor
foundin: [3543ed62bb], 1.22 [ab461f39af]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: Adding an attachment with description ends up not showing the description
comment:
  The description does not appear in the final ticket page, or in the ticket history page, as happened in [fcadf658ed].


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: b145e5eecdc2ea285b640d0822db8a679912c3b0
type: Feature_Request
status: Open
private_contact: e7d733707d8c126de4f080f5f958e762bfaa8983
resolution: Open
title: Template repositories
comment:
  I have many situations where I create projects of the same type--web apps based on Lift or Node.js, Android apps, generic projects with a stock build system configured to my specs, etc. Often these projects are distributed by me or others as Git repositories which I can just clone and start developing on. When I'm ready to push my changes remotely, I just replace the origin remote and start committing.

  It would be nice if Fossil could support this use case without requiring that the files for each new revision be re-added. Often I make changes that such a process wouldn't catch, like setting an ignore glob for build artifacts for instance. Here's what I'd recommend:

  Make "fossil new" accept a second argument like so:

  fossil new my_new_app.fossil http://dev.thewordnerd.info/android

  This would first clone http://dev.thewordnerd.info/android into my_new_app.fossil. It would then detach my_new_app.fossil from this remote URL and change its project code such that I can't accidentally overwrite my template project with any changes I make in the new app.

  I know that this is possible via a test command, but I think it's a common enough use case that it should be supported directly in new repository creation. Since I'm pretty much fully off of Git at this point, I'd like to start converting my various template starter projects to Fossil so I don't have to perform the same basic configuration steps each time I start a new project.

  <hr /><i>anonymous added on 2011-02-17 05:41:01 UTC:</i><br />
  Would "fossil config export" and "fossil config import" satisfy your objectives?


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: bb4e02048ddff8d549a2099442b81c21e49bf8cb
type: Feature_Request
status: Open
severity: Important
foundin: 0018d724b3
private_contact: 142de1aaa3c6b6828c4cb71e1c6c3e3202b0352f
resolution: Open
title: Tickets: make the (html & th1) template for ticket reports editable
comment:
  The ticket system is amazingly customizable, except the report page. I'd like to style it further, like changing the font color or making a title or an entire row a hyperlink. CSS can do any of this, but it cannot bind to element contents(<td>critical</td>), it needs some anchors (like <td class="severity">critical</td>). If the html template of the report were tweakable, one would be able to add whatever classes one wanted. Is this possible?
  Alex.

  <hr /><i>anonymous added on 2010-12-20 14:39:25:</i><br />
  Oops, html is mangled. I meant "&lt;td&gt;critical&lt;/td&gt;" and "&lt;td class="severity"&gt;critical&lt;/td&gt;"

  <hr /><i>anonymous claiming to be Alex added on 2010-12-28 07:18:08:</i><br />
  Found a partial workaround, based on the absence of checks on the background color specified in a report template. Since background color is now done with CSS, we can specify something like<br>
  WHEN status='CLOSED' THEN '#909090; text-decoration: line-through'<br>
  in the template, which gives us this HTML code<br>
  &lt;tr style="background-color:#909090; text-decoration: line-through"&gt;<br>
  and a correct style. Of course this gives us limited design opportunities, but it is still better than nothing.


  <hr /><i>anonymous claiming to be Alex added on 2010-12-28 10:20:56:</i><br />
  OK, found a more complete workaround for decent browsers (latest Opera/Firefox/Chrome/maybe IE9) that allows per-column styling. It is based on passing values in rarely-used CSS properties and CSS3 nth-child property.<br>
  First, we need to agree that our ticket report might sound bad if pronounced by text-to-speech software. Then we can use the 'elevation' property for our own purposes. 'elevation: 1deg;' will be a substitute for 'class=myclass1', 'elevation: 2deg;' for 'class=myclass2', etc.<br>
  <br>
  WHEN status='CLOSED' AND severity='HIGH' THEN '#909090; elevation: 1deg;'<br>
  WHEN status='CLOSED' THEN '#909090; elevation: 2deg;'<br>
  <br>
  Note the spaces after the first semicolon and after the 'elevation:' property, and the trailing semicolon.<br>
  Then, in CSS<br>
  <br>
  table.report tr[style~="1deg;"] td:nth-child(1) {<br>
    text-decoration: line-through;<br>
  }<br>
  <br>
  Again, note the trailing semicolon and lack of the property name in the selector. We need to follow this syntax because a) attribute text is space-separated in ~= matches, and b) some browsers internally rewrite CSS into this 'canonical' form.<br>
  These settings strike out the numbers of the closed highly-severe tickets, but leave other columns intact. Background color of all closed tickets is the same.<br>
  Unfortunately, IE7-8 does not support this.

  <hr /><i>anonymous added on 2010-12-28 10:25:18:</i><br />
  Damn, it was supposed to read<br>
  table.report tr&#91;style~="1deg;"&#93; td:nth-child(1) {


tkt_uuid: 4a4c10dcd8ddcbaed00d62a403761046870cb5e2
type: Feature_Request
status: Open
severity: Important
foundin: 0018d724b3
private_contact: 142de1aaa3c6b6828c4cb71e1c6c3e3202b0352f
resolution: Open
title: Tickets: add pagination to the reports
comment:
  Reports like 'all tickets' would greatly benefit from being split into pages of configurable size. The number of tickets to show on a page could be stored in a report template.<br>
  Alex.


tkt_uuid: 950d0186f84f38d27558f2453ff6eff2651e6730
type: Build_Problem
status: Fixed
severity: Minor
foundin: d16ccde510
private_contact: d66ecbed41cfc11708f85c2d7a607eb4c13c38e6
resolution: Fixed
title: Leftover dSYM directories
comment:
  On Mac OS X directories with .dSYM extension are created during build. The latest fossil builds everything in the $OBJDIR now and make clean therefor fails on rm -f $OBJDIR/* since it contains the dSYM directories. Adding -r to the rm should fix this.


tkt_uuid: 86985f82583ce56540ca913f38c3d1dd87e925d3
type: Feature_Request
status: Open
severity: Minor
private_contact: ddae85699df0ae84ab8e0a6a6dacf72bab6d4a7a
resolution: Open
title: Add a 'forum' or 'discussion list' capability to fossil
comment:
  There are many times when a fossil-based project has need for an associated 'forum' ([http:///dev.ronware.org/p/reva|Reva Forth] being one example :) ).  Integrating external forum software with fossil is difficult; in addition, the knowledgebase provided by the discussions is then external to the repo.

  I would like to have some manner of 'forum' capability inside fossil.  It need not be very complex, but having the ability to have groups of discussions, and show the contents grouped by discussion threads would be extremely useful to me.

  I'm willing to work on adding such a feature if nobody else has; but I'm not sure what the proper underpinnings should be (and how to make sure the forum information gets properly cloned etc).

  <hr /><i>anonymous added on 2011-02-17 05:29:00 UTC:</i><br />
  Since Fossil wiki page support comments, a forum interface could be written in Javascript. Each forum would be a wiki page. Adding a new topic would add a comment to the forum page, referencing the new topic, then add a topic page. Replies would then be added as comments to the topic pages.

  Of course, given that Fossil is a developers' tool, I would expect most discussion to be attached to tickets, so really only need a simplified way to append new comments to tickets.


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: 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: bf4f5725f6c90fc2a113e35acde27e25e6b290b2
type: Code_Defect
status: Fixed
severity: Important
foundin: 0018d724b3
private_contact: 142de1aaa3c6b6828c4cb71e1c6c3e3202b0352f
resolution: Fixed
title: Tickets: cannot display in local time
comment:
  All the times in the ticket reports and comments are in UTC. Admin/Timeline/Use UTC settings has no effect. I try to convert the time to local in SQL with something like this (syntax suggested by sqlite docs)<br>
  SELECT datetime(tkt_mtime, 'localtime') AS 'mtime' FROM ticket<br>
  and get the following error<br>
  error code 23: access to config.value is prohibited<br>
  Database Error<br>
  access to config.value is prohibited<br>
  SELECT value FROM config WHERE name='timeline-utc'<br>
  If you have recently updated your fossil executable, you might need to run "fossil all rebuild" to bring the repository schemas up to date<br>
  Running 'fossil all rebuild' does not help. Is this a bug or am I missing the proper way to convert timestamps to local time?

  <hr /><i>anonymous added on 2010-12-27 13:15:05:</i><br />
  Duplicate of [5c1490e26b]. The time is written as a string part of the comment.

  <hr /><i>anonymous added on 2010-12-28 10:28:50:</i><br />
  That ticket does not mention that tkt_mtime (last modified timestamp) is in UTC too. And it would be nice to have a way to see local time everywhere.

  <hr /><i>anonymous claiming to be Arnel added on 2010-12-28 18:20:16:</i><br />
  How about going to <em>Admin</em> &gt; <em>Timeline</em> then unchecking the "Use Universal Coordinated Time (UTC)" option for both the server and the local repo?

  <hr /><i>anonymous claiming to be Alex added on 2010-12-29 06:20:03:</i><br />
  Tried that. Does not make any difference. Neither for mtime field in the ticket table, nor for "username added on date" on the edit ticket page.

  <hr /><i>anonymous claiming to be viric added on 2010-12-29 08:26:12:</i><br />
  The "comment added by XXX on YYY" has nothing to do with any timestamp stored in a database. It's a text message added automatically over whatever comment the user did on a ticket or wiki page. So its contents are stored 'statically', and no option will change them later.

  If you agree that this is the same issue as in [5c1490e26b], we can close this and keep the discussion there.

  <hr /><i>anonymous claiming to be Alex added on 2010-12-29 10:44:03:</i><br />
  I understand that the time a comment was added is part of its text and cannot be easily converted into a different timezone or format. Correct formatting has to be done before a comment is added to the repo, be it automatically or by calling some functions in the script (we just need to know which ones).<br>
  Speaking of duplicates, 5c1490e26b only describes one thing, the comment timestamps. This ticket suggests that the entire UTC/local conversion is somehow broken. A developer has to take a look to say whether a single common defect or two unrelated ones are causing the effects.<br>
  If you are concerned about the number of open tickets, you can close any of the two and I will copy the info into the other ticket (not that it would make any sense with so many tickets left open already).

  <hr /><i>anonymous claiming to be Alex added on 2010-12-30 10:00:44:</i><br />
  Fix in commit 8c3bba8e97 confirmed. Thanks, DRH!


tkt_uuid: fa403b6a123659d885e3b77fe9a5eccfb27d2340
type: Build_Problem
status: Fixed
severity: Important
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Makefile for native MinGW
comment:
  Building Fossil on Windows with MinGW currently requires also MSYS, a small UNIX abstraction layer.

  The attached patch for makemake.tcl extends the range of generated Makefiles with one for native MinGW, no MSYS or awk required.

  Execute makemake.tcl from the Fossil toplevel directory as follows:

  $ tclsh src/makemake.tcl MinGW > win/Makefile.MinGW

  Specify the generated Makefile on the make command line:

  $ make -f <path to Fossil>/win/Makefile.MinGW

  I am using this Makefile with the MinGW Distribution from www.equation.com without problems.

  -- tsbg

  <hr /><i>anonymous claiming to be tsbg added on 2010-12-23 13:00:55:</i><br />
  When specifying the path to the MinGW Makefile on the make command line, use
  a relative path specification. For example:

  <verbatim>
  $ make -f ..\..\fossil\win\Makefile.MinGW
  </verbatim>

  This is because the Makeheaders program has a problem with full paths on Windows:

  <verbatim>
  $ makeheaders d:\dev\fossil\src\sqlite3.h
  Can't read input file "d"
  </verbatim>

  I think this is because the colon is used on Windows as a device name separator.

  -- tsbg


tkt_uuid: a284192609fe7900a617ac2217b6327e467ffa4f
type: Feature_Request
status: Open
severity: Minor
private_contact: e4a28136108003f231a6fed17150c04e1a977922
resolution: Open
title: I wish there is a 'Vote feature' for tickets
comment:
  I find <b>voting for a ticket</b> an extremely useful feature which helps to decide what is <b>the most annoying bug</b> to fix or <b>the most desired feature request</b> to implement. Or to see <b>if anyone else is interested</b> in sth.

  <hr /><i>anonymous added on 2011-02-17 05:18:43 UTC:</i><br />
  This could be done in Javascript, using comments as the voting log. Probably would very difficult to remove or even change a vote once cast.


tkt_uuid: 0dddfe5d22b831d4ea685402d5be2876c37a87c6
type: Feature_Request
status: Closed
severity: Minor
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Duplicate
title: incremental update of git export
comment:
  It would be quite useful to be able to incrementally update a git repository whose contents was exported from fossil.

  <hr /><i>dmitry added on 2011-09-11 17:11:07 UTC:</i><br />
  Duplicate of [4b881458c3].


tkt_uuid: 9f0120fb739aa19c3d4d84bf0fa5f289fd50d9c6
type: Code_Defect
status: Open
severity: Important
foundin: [0018d724b3]
private_contact: 418c4f45a536c92d788654590d618c26cc3b5913
resolution: Open
title: Unexpected result moving directories with "fossil mv"
comment:
  When moving a directory with some contents, on the target the directory is lost. Let me illustrate with an example:

  We have:
  <pre>
  /a/f
  /a/b/ff
  </pre>

  If I do:
  <pre>
  $ mkdir c
  $ cd a
  $ fossil mv * ../c
  RENAME a/b/ff c/ff
  RENAME a/f c/f
  </pre>

  So the tree structure is lost. Of course things get worse when ff and f have the same name, as then it results in an error because of the duplication.


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: e436a483c5b08a1aec69d1848ab1db984154301c
type: Code_Defect
status: Fixed
severity: Important
foundin: a300bee164
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: "200 Entries" in branch timeline page forgets branch
comment:
  Go to Branches, pick any branch with enough changes and hit "200 Entries". The r=<branch-name> query parameter gets replaced by an empty t.


tkt_uuid: 2857ab0995828207effd6ebc4526ca88a53755f7
type: Feature_Request
status: Open
severity: Important
foundin: all
private_contact: e16bca9376b716bf489a593de88e7b2760905520
resolution: Open
title: Introduce commandline switches to avoid user input
comment:
  I'm trying to build a C# wrapper around fossil to provide a .NET dll to be used in Windows source control applications like the source control interface of Visual Studio.

  While implementing the commands which are available on the fossil command line I've encountered some commands which might require user input.

  For example fossil open requires an a, y or n if files of the checkout are already present. 

  Handling those commands from my code is kind of cumbersome because I have to run the commands asynchronously, parse their output and inject the correct answers at the right places with event handlers for all the commands which need user interaction. It would be much easier if I could define anything on the commandline. 

  Although it is obviously not possible to have commandline switches for the y or n on individual files, it should be possible to give the a(ll) answer by something like --force on the commandline. It is already done for a number of commands. Generally spoken, it should be possible to set a default answer for all files involved on the commandline whenever user interaction is required.

  If this feature request is a candidate for future implementation, I'd compile a list of commands which require user interaction and provide suggestions for a commandline switch.

  Btw.: Did you ever think about making fossil available as a library like you did with SQLite?

  <hr /><i>anonymous claiming to be ikoch added on 2011-01-05 21:55:59 UTC:</i><br />
  I'm still puzzling together the pieces to trace fossils output and inject the appropriate answers. Now an other problem raised its ugly head.

  When fossil prompts the user for input, it waits for the answer on the same line as the prompt. It doesn't add a line end terminator after the prompt. 
  The problem is that I need to read the fossil output before I can decide what to do. I do this by registering to events which occur whenever a line has been written to stdout or stderr. Unfortunately the line isn't written completely for prompts, the line end terminator is missing. Because of this, the line is never read, the event is never fired and the answer is never sent to stdin to make fossil happy. Fossil waits forever.

  A minor change in user.c would make it possible to read the line. Just add a newline to the format string in the printf statement and anything should work. 
  <pre>
  void prompt_user(const char *zPrompt, Blob *pIn){
    char *z;
    char zLine[1000];
    blob_zero(pIn);
    printf("%s\n", zPrompt); /* added a newline to terminate the line */
    fflush(stdout);
    z = fgets(zLine, sizeof(zLine), stdin);
    if( z ){
      strip_string(pIn, z);
    }
  }
  </pre>
  I think except for the input in the user_cmd function it doesn't really matter wether the response is entered on a new line or not and even there it is not really a problem.

  <hr /><i>anonymous claiming to be viric added on 2011-01-06 22:01:04 UTC:</i><br />
  This can be solved in-fossil with
  <verbatim>
  setvbuf(stdout, (char *) NULL, _IONBF, 0);
  </verbatim>

  Out of fossil, GNU coreutils comes with <kbd>stdbuf</kbd>, a script with a LD_PRELOAD that will have that effect.


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: 986b31211c5bf8a569eb9c74c05933bd94d130f0
type: Incident
status: Closed
severity: Important
foundin: c67c61b694
private_contact: 2359089ef753bc96e12743e299243d5232c749fa
resolution: Open
title: fossil reports changes when there are none
comment:
  i built the latest snapshot on windows and i get strange results from fossil changes.  in this example, i just did fossil update trunk and a clean build using makefile.mingw.  using the newly built fossil.exe, i get the following results:

  <pre>
  PS C:\rev\src\fossil> .\fossil ver
  This is fossil version [c67c61b694] 2011-01-02 07:37:21 UTC
  PS C:\rev\src\fossil> .\fossil changes
  EDITED     src/diffcmd.c
  EDITED     src/merge.c
  EDITED     src/undo.c
  EDITED     www/fossil-v-git.wiki
  PS C:\rev\src\fossil> .\fossil diff src\diffcmd.c
  --- src\diffcmd.c
  +++ src\diffcmd.c

  PS C:\rev\src\fossil> .\fossil diff src\merge.c
  --- src\merge.c
  +++ src\merge.c

  PS C:\rev\src\fossil> .\fossil diff src\undo.c
  --- src\undo.c
  +++ src\undo.c

  PS C:\rev\src\fossil> .\fossil diff .\www\fossil-v-git.wiki
  --- .\www\fossil-v-git.wiki
  +++ .\www\fossil-v-git.wiki
  </pre>

  against the same repository, i try the same thing using fossil.exe that is in my path (an earlier version):

  <pre>
  PS C:\rev\src\fossil> fossil ver
  This is fossil version [70744b76e6] 2010-12-11 20:08:19 UTC
  PS C:\rev\src\fossil> fossil changes
  </pre>

  BTW the wiki still says i can build on windows using makefile.win32, but that file no longer exists.

  <hr /><i>rwilson added on 2011-01-04 20:29:27 UTC:</i><br />
  this problem still exists in [9e6f20bdf9].

  <pre>
  PS C:\rev\src\fossil> fossil ver
  This is fossil version [0b6c414c6f] 2010-12-09 13:56:19 UTC
  PS C:\rev\src\fossil> fossil changes
  PS C:\rev\src\fossil> .\fossil ver
  This is fossil version [9e6f20bdf9] 2011-01-04 17:50:46 UTC
  PS C:\rev\src\fossil> .\fossil changes
  EDITED     src/merge.c
  EDITED     src/undo.c
  EDITED     src/wikiformat.c
  EDITED     src/xfer.c
  PS C:\rev\src\fossil>
  </pre>

  <hr /><i>rwilson added on 2011-01-04 20:32:38 UTC:</i><br />
  hmm.  this was resolved after a fossil rebuild using [0b6c414c6f].

  <pre>
  PS C:\rev\src\fossil> fossil ver
  This is fossil version [0b6c414c6f] 2010-12-09 13:56:19 UTC
  PS C:\rev\src\fossil> fossil changes
  PS C:\rev\src\fossil> .\fossil ver
  This is fossil version [9e6f20bdf9] 2011-01-04 17:50:46 UTC
  PS C:\rev\src\fossil> .\fossil changes
  EDITED     src/merge.c
  EDITED     src/undo.c
  EDITED     src/wikiformat.c
  EDITED     src/xfer.c
  PS C:\rev\src\fossil> fossil rebuild
    100.0% complete...
  PS C:\rev\src\fossil> fossil changes
  PS C:\rev\src\fossil> .\fossil changes
  PS C:\rev\src\fossil>
  </pre>


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: c9d454153eea9690a93fcdddb18730b381403a25
type: Code_Defect
status: Fixed
foundin: [79b7902cdd]
resolution: Fixed
title: Bad find_filename_changes
comment:
  While investigating [74413366fe], we came up with an example where we found a bad behaviour of find_filename_changes. Notice:

  <verbatim>
  [llbatlle@comanegra:~/tmp/merge2]$ fossil test-shortest-path 3f670219 2d34c3f538 
     1: 3f6702192edd 2011-01-04 09:43:22 is a parent of
     2: 2d34c3f5389e 2011-01-04 09:43:39

  [llbatlle@comanegra:~/tmp/merge2]$ fossil test-shortest-path 2d34c3f538 3f670219
     1: 2d34c3f5389e 2011-01-04 09:43:39 is a child of
     2: 3f6702192edd 2011-01-04 09:43:22

  [llbatlle@comanegra:~/tmp/merge2]$ fossil test-name-changes 3f670219 2d34c3f538
  [a] -> [c]

  [llbatlle@comanegra:~/tmp/merge2]$ fossil test-name-changes 2d34c3f538 3f670219

  </verbatim>

  Notice how the name change is taken in one direction, and not in the other. Those are direct commits, no merges involved.

  The problem is in the line of find_filename_changes()
  <verbatim>
  for(p=bisect.pStart->u.pTo; p; p=p->u.pTo)
  </verbatim>

  This always skips the first checkin of the chain, while it should be skipped only if it is a parent of the next commit. Similarly, some commits (parent of both From and To) should be skipped as well.

  The trick is that the checkin id always refers to "AFTER applying the checkin".


tkt_uuid: e6dbb46ce0ad6154a3bfe74fe56e808a7a949989
type: Code_Defect
status: Open
foundin: [79b7902cdd]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: md5sum of ZIP archives from fixed checkins changes along time
comment:
  The md5sum of ZIP archives from a fixed check-in changes, when the repository gets some new artifacts.

  Maybe the ZIP archives are created with timestamps of the latest repository artifact?


tkt_uuid: a4295406dde4682facd619ec50d08debdc71d992
type: Code_Defect
status: Fixed
foundin: [ff2a87103bf1]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Fixed
title: Problem in checkin (evident on cygwin)
comment:
  After hitting a situation when, after setting the text message of the commit 'fossil' looked hanged at 100% of cpu, procmon showed that it was trying to open files with a name that looked like all files in the manifest in a row. gdb luckily helped us distinguish the point of trouble.

  I'll attach a patch that solves the situation but I don't know if the patch has undesired side effects, because I have not tried to understand deeply the code around.

  It is about a blob that should be always 'trimmed' before appending. And the 'trimming' is inside an if() branch that our commit looks like not traversing. But I don't know why not, if it should, or whatever. The case is that it does not go through the branch. So, I put the append out.

  <hr /><i>anonymous added on 2011-01-04 15:51:52 UTC:</i><br />
  I meant "I put the resize (trim) out of the if clause" in the last part of the ticket text.

  <hr /><i>anonymous claiming to be viric added on 2011-01-04 16:12:52 UTC:</i><br />
  Just to mention... I think this only happens with delta commits; we just switched them today, and this is why we did not see this before.

  So, delta commits + exe permissions should be broken unless this patch is applied, in any unix-like system.


tkt_uuid: f270321c0f74b354f05ea8632aaac05eb5d68f13
type: Code_Defect
status: Fixed
private_contact: e7d733707d8c126de4f080f5f958e762bfaa8983
resolution: Fixed
title: Recursively adding directories should respect ignore-glob
comment:
  If I set a pattern in my ignore-glob, and said files don't appear under "fossil extra", I would expect "fossil add <subdirectory>" to not add those files. Yet it seems to do just that.

  I'm trying to import a somewhat complex project into Fossil, and it places build artifacts in easily-determined locations (compiled .class files in subdirectories called "target", dependencies fetched by the build tool in directories appended with "_managed", etc.) I've successfully got "fossil extra" not listing these, but whenever I try recursively adding a subdirectory, these files are still listed as being added. I've had to wipe out my _FOSSIL file multiple times and re-add all the various files I've tried adding previously several times in order to not get build artifacts in the repository.

  Seems that if I tell Fossil to ignore something, that it should automatically do so unless explicitly told to do otherwise. Thanks.


tkt_uuid: 3f4964984053d07d852b02e940fd48afcca869a1
type: Code_Defect
status: Fixed
severity: Minor
foundin: 2011.01.01.030647
private_contact: 6ba147a4218010d3c6ffddc5ed73dc017a44bf3c
resolution: Fixed
title: apparent make race condition, with tentative patch
comment:
  The Debian autobuilders encountered a heisenbug building my last upload of fossil to Debian, 2011.01.01.030647-1.  Although I'm not sure, because I could not reliably replicate the problem even on an 8-way machine with -j8, I suspect it is because the include file targets in src/main.mk are, e.g., "add.h" rather than "$(OBJDIR)/add.h".  Which I changed with the obvious patch,

  http://cvs.bcl.hamilton.ie:8080/fdiff?v1=70bd79cc58bea439&v2=da3ca9597028f76a

  and uploaded in 2011.01.01.030647-2.  Will soon see if this fixes the build issue: https://buildd.debian.org/pkg.cgi?pkg=fossil

  <hr /><i>anonymous added on 2011-01-10 13:15:19 UTC:</i><br />
  (Oops, this is already fixed in the trunk.  I only package official releases of course: sorry.)


tkt_uuid: e0ef6390ff5992f109a0cc4e568c1363bffb3835
type: Code_Defect
status: Open
severity: Minor
title: Bug in blob_seek
comment:
  The blob_seek function has the following

  <pre>
  if( p->iCursor<0 ){
      p->iCursor = 0;
    }
  </pre>

  But iCursor is an unsigned integer and will never go bellow 0, therefore this code does nothing. If iCursor is decremented past 0 it will go to a very high number.

  I guess I'm being pedantic, but if you took the trouble to write the code I suppose you must have thought it important to guard against this.


tkt_uuid: bde9513faea0fb814f9d51de0baa57a43206486c
type: Code_Defect
status: Closed
foundin: [f7cff4ad13]
resolution: Not_A_Bug
title: The delta manifest has more files than modified in the checkin
comment:
  I modified two files for a checkin, and the delta manifest shows more than 20 files (running fossil built for cygwin).

  The whole project has hundreds of files, so the delta partly works. But I think the manifest only should include the modified files.

  On subsequent checkins, all those 20 files get into the delta manifest. There may be something special in them that makes them get into the delta manifest, but I don't know what.

  <hr /><i>drh added on 2011-01-12 16:09:59 UTC:</i><br />
  A delta manifest show all changes going back to the baseline manifest and
  the baseline manifest might be two or three or a hundred checkins in the
  past.


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: 9bd235c69af99b3a6a6f7dd2485bd1e528e2eb77
type: Code_Defect
status: Fixed
foundin: [4b2ab22c2a]
private_contact: 2f98bd34c080ac26bbeb8ea754dfd01c5d3a2018
resolution: Fixed
title: ignore-glob does not work for addremove
comment:
  Hello!

  I've the following in my ignore-glob:

  <verbatim>gaur/*, *.pkg.tar.xz</verbatim>

  in order not to version-control binary packages available in 'gaur' folder, nor any such (pkg.tar.xz) package in other folders.

  Issuing 'fossil extra' shows nothing while there is e.g. such file in:

  <verbatim>
  [gour@atmarama local] ls -l office/stellarium   
  total 32
  -rw-r--r-- 1 gour gour   897 Jan  5 06:07 libpng14.patch
  -rw-r--r-- 1 gour gour  1188 Jan  5 19:59 PKGBUILD
  lrwxrwxrwx 1 gour gour    57 Jan  5 10:08 stellarium-0.10.6-1-x86_64.pkg.tar.xz -> /var/abs/local/gaur/stellarium-0.10.6-1-x86_64.pkg.tar.xz
  -rw-r--r-- 1 gour gour   222 Jan  5 06:07 stellarium.desktop
  -rw-r--r-- 1 gour gour 18780 Jan  5 06:07 stellarium.png
  </verbatim>

  However, if I try:
  <verbatim>
  [gour@atmarama local] fossil addremove --test     
  ADDED  gaur/acroread-9.4-1-x86_64.pkg.tar.xz
  ADDED  gaur/acroread-9.4.1-1-x86_64.pkg.tar.xz
  ADDED  gaur/alarm-clock-applet-0.3.1-1-x86_64.pkg.tar.xz
  [...]
  ADDED  office/stellarium/stellarium-0.10.6-1-x86_64.pkg.tar.xz
  added 359 files, deleted 0 files
  </verbatim>

  Fossil shows all such (pkg.tar.xz) from the 'gaur' folder.

  What is wrong?


  Sincerely,
  Gour


tkt_uuid: d3e3b02515cfef5995f079e208b1b2a379672fb9
type: Feature_Request
status: Open
severity: Minor
private_contact: 0104dabff6057f27042b765f556ea05cb3727a5c
resolution: Open
title: verbatim message in timeline
comment:
  It would be nice to have the ability to show commit message with original formatting in the timeline. Exemple, to keep newline, tabulation and space. (like displaying it on in verbatim). 

  Right now, all commit messages are shown in a single line and it make it hard to read when there's a lot of long commit message.

  Thanks

  <hr /><i>BM claiming to be Benoit added on 2011-01-14 13:32:34 UTC:</i><br />
  In “Admin/Timeline” you can configure to allow block-markup.

  In this way you can use the wiki markup (with some html tags including <tt>&lt;tt&gt;</tt>) and lists.

    *  item 1
    *  item 2

  <hr /><i>anonymous added on 2011-01-14 18:08:13 UTC:</i><br />
  What's about if I've just convert a huge git repository into fossil, and all the commit log was done in text with tabulation, spaces and new line that make it look reasonable in verbatim mode. A wiki or html tag would not help in that case.

  Also, an option to display comment in a verbatim way would make it look ok when using the "fossil timeline" CLI command.


tkt_uuid: a312a28952056ed5ee8fcbd04dcbffe45cab63ad
type: Code_Defect
status: Fixed
severity: Important
foundin: [4ab7251fcd]
private_contact: 76518fb407f147a1d053c00b5b993281a339c0e3
resolution: Fixed
title: Adapt win/version.c to the longer timestamps
comment:
  The attached patch adapts win/version.c to the longer timestamps in the manifest file.

  It also fixes a gcc compiler warning about implicit declaration of the function strncmp.

  -- tsbg

  <hr /><i>drh added on 2011-01-14 16:58:23 UTC:</i><br />
  I think a better fix is to omit the fractional seconds from unix builds.


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: d6132e4d66a7c994f950e020a4945c7fb85b5a7b
type: Code_Defect
status: Fixed
severity: Minor
foundin: afc4bf41fa
private_contact: 05f652db744266759b20d248ec2f451629420388
resolution: Fixed
title: Possibly incorrect column index for isexe in stash_add_file_or_dir
comment:
  If I read the code correctly, in stash.c we have the following SQL statement on line 65:

  <pre>
    blob_appendf(&sql,
      "SELECT deleted, isexe, mrid, pathname, coalesce(origname,pathname)"
      "  FROM vfile"
      " WHERE vid=%d AND (chnged OR deleted OR origname NOT NULL OR mrid==0)",
      vid
    );
  </pre>

  "isexe" is at column 1. But then on lines 97-99:

  <pre>
  #ifdef _WIN32
      db_bind_int(&ins, ":isexe", db_column_int(&q, 2));
  #endif
  </pre>

  So it will not preserve isexe bit on Windows, but instead use mrid for it.

  Shouldn't it be like this instead: <code>db_column_int(&q, 1)</code>?


tkt_uuid: bfef8e4f89cd4b161a58485656587f6b9ecc39d9
type: Code_Defect
status: Fixed
severity: Critical
foundin: afc4bf41fa
private_contact: 05f652db744266759b20d248ec2f451629420388
resolution: Fixed
title: Stash doesn't save files without using "fossil changes" before
comment:
  After making changes, doing "fossil stash", and looking into _FOSSIL_ with SQLite, I can't find entries for changed files in stashfile table.

  I think <code>vfile_check_signature(vid, 0, 0);</code> should be put somewhere in <code>stash_create</code>.

  <hr /><i>dmitry added on 2011-01-18 01:08:35 UTC:</i><br />
  Hm... shouldn't revert_cmd also update vfile? Seems like it's not. I'll get back with details.

  <hr /><i>dmitry added on 2011-01-18 01:21:52 UTC:</i><br />
  Test case:
  <pre>
  $ mkdir test
  $ fossil new test.fossil
  project-id: 755eae875fa636930aa6632774b6efd6a3dfaac2
  server-id:  9f8a7e68aad9f9a841f2bc50f8cbba69686473a7
  admin-user: dmitry (initial password is "0378ff")
  $ cd test
  $ fossil open ../test.fossil 
  $ echo "Hello" > file.txt
  $ fossil add file.txt 
  ADDED  file.txt
  $ fossil commit -m "Initial commit"
  New_Version: 05ac6ff529aaea66a245e4caef85f74d11cf06e2
  $ echo "edited" >> file.txt
  $ fossil stash
  REVERTED: file.txt
  $ fossil stash diff
  (nothing)
  $ sqlite3 _FOSSIL_ "SELECT * FROM stashfile"
  (nothing)
  $ sqlite3 _FOSSIL_ "SELECT * FROM stash"
  1|3||2455579.55262627
  </pre>

  Now, using <code>fossil changes</code> before stashing, which works:

  <pre>
  $ cd ..
  $ rm -r test.fossil test
  $ mkdir test
  $ fossil new test.fossil
  project-id: eb268780a7e272e2d24a9a5aef50daf95f1ea057
  server-id:  58b2e74f0c914e8bd01d7f336e59c619b8eb17c6
  admin-user: dmitry (initial password is "49059c")
  $ cd test
  $ fossil open ../test.fossil 
  $ echo "Hello" > file.txt
  $ fossil add file.txt 
  ADDED  file.txt
  $ fossil commit -m "Initial commit"
  New_Version: 71d5025350f6c4501816229f04ed85d6c9be61e7
  $ echo "edited" >> file.txt
  $ fossil changes
  EDITED     file.txt
  $ fossil stash
  REVERTED: file.txt
  $ fossil stash diff
  CHANGED file.txt
  --- file.txt
  +++ file.txt
  @@ -1,1 +1,2 @@
   Hello
  +edited

  $ sqlite3 _FOSSIL_ "SELECT * FROM stashfile"
  1|2|0|0||file.txt|file.txt|D
  D:Hello
  edited
  fu3Sp;
  </pre>

  <hr /><i>dmitry added on 2011-01-18 01:44:02 UTC:</i><br />
  Got it. This is because <code>revert_cmd</code> clears <code>chnged</code> and <code>deleted</code> bits after reverting, so my original proposal to include <code>vfile_check_signature(vid, 0, 0)</code> in <code>stash_create</code> stands. Sorry for the monologue.

  <hr /><i>dmitry added on 2011-01-18 02:03:39 UTC:</i><br />
  Disregard my last comment this being because of revert, it's called after stashing :-)


tkt_uuid: 0ffa37e70e885cfc5c86d2546e51480c83b819b0
type: Feature_Request
status: Fixed
severity: Severe
foundin: d0753799e4
private_contact: 972e8a5291f0b92e11083b9bfe832820d06d9b90
resolution: Fixed
title: There is currently no way to enforce 100% use of SSL
comment:
  I'm noticing that there doesn't seem to be a configuration parameter or any reasonable way to enforce all communications to use SSL-secured HTTP in the Web interface.

  My current hosting setup is as follows:

  <verbatim>
  # /etc/xinetd.d/fossil-some-site 
  service fossil-some-site
  {
      socket_type = stream
      type = UNLISTED
      wait = no
      disable = no
      user = root
      server = /opt/fossil/bin/fossil
      server_args = http /opt/fossil/repositories/some.site/fossil --notfound http://fossil.some.site/cgi-bin/fossil-list-repositories.cgi
      bind = fossil-some-site.fossil01.internal
      port = 8060
  }
  </verbatim>

  <verbatim>
  # /etc/httpd/vhosts.d/includes/fossil.some.site.conf 
  # Mostly standard Red Hat virtual host boilerplate elided.

  ProxyPass /cgi-bin !
  ProxyPass / http://fossil.some.site/
  ProxyPassReverse /cgi-bin !
  ProxyPassReverse / http://fossil.some.site/
  </verbatim>

  <verbatim>
  # /etc/hosts
  127.0.0.1 localhost.localdomain localhost fossil01.internal fossil01
  127.0.0.101 fossil-some-site.fossil01.internal fossil.some.site
  ...
  </verbatim>

  I haven't explored using the CGI method of deployment yet, nor have I explored the possibility of contributing patches to make this functionality a reality.  I also haven't explored whether or not this functionality already exists in a newer release, seeing as I am running a relatively ancient version of Fossil:

  <verbatim>
  fossil01% /opt/fossil/bin/fossil version
  This is fossil version [d0753799e4] 2010-11-01 14:23:35 UTC
  </verbatim>

  My current workaround is just to interact with the software through the shell on the remote end (to set configuration parameters, manage users, etc.) and through the usual <tt>fossil update</tt>, <tt>fossil sync</tt>, et al. commands from my working copy, wherever it might be at the time.

  I would like to be able to use the Web interface running remotely however. :)

  <hr /><i>drh added on 2011-01-18 15:16:11 UTC:</i><br />
  See [http://www.stunnel.org/] for a better solution.

  <pre>
  service https
  {
    port = 443
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/stunnel
    server_args = -l /opt/fossil -- fossil http /var/repo/some-site.fossil
  }
  </pre>

  <hr /><i>dmitry added on 2011-01-18 16:00:06 UTC:</i><br />
  Will this work (untested)?

  <pre><code>
  # /etc/httpd/vhosts.d/includes/fossil.some.site.conf 
  # Mostly standard Red Hat virtual host boilerplate elided.

  <VirtualHost *:80>
    ServerName  fossil.some.site
    Redirect / https://fossil.some.site
  </VirtualHost>

  <VirtualHost _default_:443>
    ServerName  fossil.some.site
    # ... your proxy settings ...
  </VirtualHost>
  </code></pre>

  <hr /><i>anonymous added on 2011-01-18 18:17:33 UTC:</i><br />
  I'm thinking that I need to provide a bit more informative context.  I'm inferring from your response that your assumption is that I don't have the SSL-enabled vhost set up.  Alas, I do:

  <verbatim>
  # /etc/httpd/vhosts.d/fossil.some.site-ssl.conf 
  <VirtualHost 10.10.161.25:443>
  	Include vhosts.d/includes/fossil.some.site.conf

  	SSLEngine on
  	SSLCertificateFile /var/www/domains/some.site/fossil/ssl/fossil.some.site.crt
  	SSLCertificateKeyFile /var/www/domains/some.site/fossil/ssl/fossil.some.site.2048.key
  	SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  </VirtualHost>
  </verbatim>

  <verbatim>
  # /etc/httpd/vhosts.d/fossil.some.site.conf 
  <VirtualHost 10.10.161.25:80>
  	Include vhosts.d/includes/fossil.some.site.conf

          RewriteEngine On
          RewriteCond %{HTTPS} off [NC]
          RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R=permanent,L]
  </VirtualHost>
  </verbatim>

  The relevant resulting HTML of, e.g., <tt>https://fossil.some.site/Fossil-Repository/wikinew</tt> is as follows:

  <verbatim>
  <form method="post" action="http://fossil.some.site/Fossil-Repository/wikinew">
  <p>Name of new wiki page:
  <input style="width: 35;" type="text" name="name" value="" />
  <input type="submit" value="Create" />
  </p></form>
  </verbatim>

  The issue is that, while Fossil traffic using the <tt>fossil</tt> tool is carried over SSL-secured HTTP just fine, the Web interface will revert back to insecure HTTP for communications in situations like these.

  <hr /><i>dmitry added on 2011-01-18 18:29:28 UTC:</i><br />
  I see, thanks for explanation (I forgot about the actual data sent to webserver, and thought redirects would handle this).

  I think the fix for this would be to change "http://" everywhere in fossil's code which generates webpages to just "//", so that it prints them like this:

  <pre>
  <form method="post" action="http://fossil.some.site/Fossil-Repository/wikinew">
  </pre>

  <pre>
  <form method="post" action="//fossil.some.site/Fossil-Repository/wikinew">
  </pre>

  This will use whatever protocol (http or https) this page were originally, and yes, this is in RFC, and supported by all browsers.

  Even better, though harder, would be making all links relative.

  <hr /><i>anonymous added on 2011-01-18 18:36:56 UTC:</i><br />
  That's a pretty novel approach!  Would you like me to implement these changes and test them, or would you like this honor?  Either way works for me.

  <hr /><i>dmitry added on 2011-01-18 18:58:47 UTC:</i><br />
  I'm busy implementing symlink support, so do it :-)

  <hr /><i>drh added on 2011-01-18 19:02:17 UTC:</i><br />
  Please use the new --https and --host parameters to the "http" command to
  force the generated URLs to be whatever you want them to be.


tkt_uuid: f0b04e1c551484b5f3c549fcfbcbfb93c430e0f0
type: Code_Defect
status: Open
severity: Minor
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
title: "fossil sqlite3" behaves inconsistent
comment:
  <verbatim>
  $ mkdir test
  $ cd test
  $ fossil init test
  project-id: 5545d1358dffb32424958343acc90220c6a03ec7
  server-id:  6ba5d397e66d52d97fd97befc18ccbff8e19b37a
  admin-user: joerg (initial password is "484064")
  $ fossil sqlite3 test
  fossil: use --repository or -R to specify the repository database
  $ fossil sqlite3 -R test test2
  SQLite version 3.7.4
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite> vacuum;
  sqlite> .quit
  $ ls
  test  test2
  </verbatim>

  The -R should not be required and either not be accepted or complain if given both a repository as positional argument and via -R.

  It would be nice if it accepted SQL commands as command line parameter like the standalone sqlite3 command. Handling EOF as implicit ; would be another minor improvement.


tkt_uuid: 35ed38df8a897d370d3794291a22d89d8c35a935
type: Feature_Request
status: Open
severity: Minor
foundin: 66d93f33d5
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Open
title: Ticket change history should interprete markup of comment
comment:
  Consider [http://fossil-scm.org/index.html/info/02063414316bde860f6d2553023149c2ac3bfd1d]: most fields are plain text, but the "comment" field should have the markup interpreted just like when viewing the ticket directly

  <hr /><i>anonymous claiming to be RonW added on 2011-04-14 03:21:14 UTC:</i><br />
  Maybe the View Ticket page could be modified as I suggested for making the Version Found In field display as a link, using the TH1 wiki command.
  See ticket [04ba0f70b8].

  Um, apparently, this has been done on the Fossil web site.


  <hr /><i>anonymous added on 2011-04-14 15:02:08 UTC:</i><br />
  Oops - I meant the timeline view template.


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: 809a9612055340d06e46619be18133d7d4a85549
type: Code_Defect
status: Fixed
severity: Severe
foundin: 66d93f33d5
private_contact: 63070188043a9522ca95dca0d28c3b9eff7a697b
resolution: Fixed
title: "fossil update" resets mtime in _FOSSIL_'s vfile
comment:
  The vfile table in _FOSSIL_ of a working copy contains the expected time stamp of each file. This time stamp is lost for unmodified files during an update. The next "fossil status" has to read all unmodified files and compute the SHA1 hash to repopulate the table. This has a dramatic impact on larger trees.


tkt_uuid: ad98e8f665e69f45cc86c06f17473776491909a2
type: Feature_Request
status: Open
private_contact: 36f0fb79a71d7f6f746a9380e7eab81fa1eb1b8a
resolution: Open
title: Add code editing to web interface
comment:
  Please Add source code editing to fossil ui, as seen in 
  [http://googlecode.blogspot.com/2011/01/make-quick-fixes-quicker-on-google.html?spref=tw]

  <hr /><i>dmitry added on 2011-01-20 14:01:59 UTC:</i><br />
  Here are some thoughts on implementation.

    *  Have "can edit on web" permission flag.
    *  Have special per-user staging area for edits from web, which records modifications to files.
    *  Once file(s) are edited, they're put into the user's staging area.
    *  User can commit his staging area if he has commit permission.
    *  Users without commit permissions, but with "can edit on web" permissions, can create tickets with modifications from their staging area or download their modifications as a patch.

  This won't work for anonymous or other "group" users. For those Fossil can have per-file editing without staging area. Also, not sure how to handle merges.


tkt_uuid: f509d626d67f4e1b2ed7ba3c3d6c3b5842137d02
type: Code_Defect
status: Open
severity: Minor
foundin: f274222ea7
private_contact: 0104dabff6057f27042b765f556ea05cb3727a5c
title: display bug on branching graph on Timeline (web)
comment:
  <p>When the branch graph show 2 branches lines in parallel in the timeline web page down to the bottom completely, we would expect to start with 2 parallel on top on the next page (e.g. when clicking older)
  </p>
  <p>
  Now, on second page, it start with only one line on top. It's the case right now on the fossil repository if you select to show 200 Entries. 
  </p>
  <p>
  To be able to reproduce it forever, here's 2 link showing 50 ancestors of specifics version, where the second link is the 50 ancestors of the last entires of the first page. 
  </p>

  <b>1st page:</b>
  <p>
    [http://www.fossil-scm.org/index.html/timeline?p=f274222ea7adff99&n=50]
  </p>
  <b>2nd page:</b>
  <p>
    [http://www.fossil-scm.org/index.html/timeline?p=a35e8c0db14c09a7&n=50]
  </p>
  <p>
  You can see that at the bottom of the first page, there's like 2 branches going in parallel, but on the second, it start only with one. 
  </p>


tkt_uuid: 9cb4a4d74b2eca66b5f4dc51f4e1b86cc6ae04a3
type: Feature_Request
status: Fixed
severity: Cosmetic
resolution: Fixed
title: Change doctype to HTML5
comment:
  Current DOCTYPE is XHTML strict:

  <verbatim>
       "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
       " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
  </verbatim>

  AFAIK, canvas tag used in timeline is HTML5-only. Plus, with HTML5 validator we get fewer errors on Fossil pages, and markup no longer needs to be so annoyingly strict :-)

  Thus, I propose changing doctype to HTML5's:

  <verbatim>
     "<!doctype html>"
  </verbatim>


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: 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: 8e13d170f2d6d6e3c5386b7a4177bc21fa9ba28b
type: Code_Defect
status: Fixed
severity: Minor
foundin: f7cff4ad13
resolution: Fixed
title: File list UI does not show files with similar extensions
comment:
  Steps to reproduce:
    *  Add files test.c and test.cpp to the repository.
    *  Start UI and view Files.

  Expected results:
    *  Files test.c and test.cpp are both listed.

  Actual results:
    *  Only file test.c is listed.

  It seems like only the first file (in collating order) is listed for multiple files with the same name and different extensions with a common initial substring. Clicking on "All" to show the union of all files from all check-ins displays both files.

  <hr /><i>anonymous added on 2011-01-24 18:24:36 UTC:</i><br />
  on the Files view, if you click "All", you will see it.. 

  it seems that when you see only one of them because by default, you see only file for one checkin...

  I made the same test as you and I'm was confused too...

  <hr /><i>anonymous added on 2011-01-24 18:56:02 UTC:</i><br />
  In my case, I tried to edit the file that was not shown on the default view, I commit it and after, I still don't see the file I just commit. And the checkin id is show on top was good. 

  Step by step from beginning:

  <pre>
  # fossil new test.fossil
  # mkdir repo
  # cd repo
  # fossil open ../test.fossil
  # echo "a source file" > test.c
  # cp test.c test.cpp
  # fossil add test.c test.cpp 
  # fossil commit
  </pre>

  I put some comment...

  <pre>
  fossil ui
  </pre>

  I see only test.c in "Files"

  Then I edit test.cpp, I commit again, I do fossil ui again, I still only see test.c even if on top the checkin number shown on top of the page correspond to the latest commit when I modified test.cpp.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2011-01-24 22:36:14 UTC:</i><br />
  I can reproduce the problem with the commands given.

  <hr /><i>anonymous claiming to be Joerg Sonnenberger added on 2011-01-24 22:42:56 UTC:</i><br />
  browse.c line 215 should be a strcmp. There might be a missing check for removed files in base revisions too?

  <hr /><i>anonymous claiming to be mgagnon added on 2011-01-25 21:22:31 UTC:</i><br />
  It seems that the problem happens when a file name is shorter than another, but all the characters are the same as the longer one (first characters).

  <b>example:</b>

    *  <b><em>test.c</em></b> and <b><em>test.cpp</em></b>   will cause the problem
    *  <b><em>test.h</em></b> and <b><em>test.c</em></b> will be ok
    *  <b><em>test</em></b> and <b><em>testt</em></b> will have the same problem

  So it's not really related with extension...


tkt_uuid: fbfe43e153ee0e1de9df4d0e51dc1d0e2fce85e0
type: Code_Defect
status: Fixed
severity: Severe
foundin: 356e877cea
private_contact: 277de4eda861e8a6d011b60d4006a963a4c7c474
resolution: Fixed
title: shash pop will drop the stash even if it could not apply it.
comment:
  Hello,

  Say that my <tt>_FOSSIL_</tt> file is in <tt>/home/project1</tt>

  I am in <tt>/home/project1/foo</tt>

  <tt>fossil changes</tt> tells me that <tt>foo/bar/baz.txt</tt> and <tt>bar/foo/baz.txt</tt> have both changed. What it lists are paths relative to the directory where <tt>_FOSSIL_</tt> is. Those paths are not relative to my CWD.

  <tt>fossil stash save -m hello foo/bar/baz.txt</tt> <b>should fail</b> because it expects a path relative to the CWD, but it will revert both files and make a stash from them.

  Then, <tt>fossil stash pop</tt>, which seems to expect me to be at the root of the working tree, will try to apply the stash, fail to do it, but still drop it, <b>potentially losing work</b>. It should have kept the stash because it could not apply it.

  I was lucky to have a recent diff generated by fossil with which I was able to recover my work (two days).


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: e189ed5da866f09186bf06f5963f4811b828e10e
type: Documentation
status: Closed
priority: Low
severity: Cosmetic
foundin: 94c60f3c7e
private_contact: f7a8d3a6a73c86bb80df4faa8f5414307e6a1b68
resolution: Fixed
title: Typo in www/webui
comment:
  Please replace 'distribute' with 'distributed' in www/webui.wiki :
   
  -Note also that because fossil is a distribute system, you can run

  +Note also that because fossil is a distributed system, you can run


tkt_uuid: 15dfbde7291153c43a91033a573af4632d099f13
type: Documentation
status: Fixed
severity: Critical
private_contact: f7a8d3a6a73c86bb80df4faa8f5414307e6a1b68
resolution: Fixed
title: Question for FAQ: how to contribute to Fossil?
comment:
  FAQ does not specify a method for contributing to Fossil. How does one go about fixing a typo? Is it enough to file a ticket? What about larger contributions? If the barrier for contributions is low, maybe more people will contribute.

  <hr /><i>anonymous added on 2011-01-26 12:09:09 UTC:</i><br />
  I think that for typos, opening tickets is overkill. Sending an e-mail (or, better, a patch file) to a developer is okay.

  For push privileges people at Hwaci like drh might grant them if you sign an [http://www.fossil-scm.org/fossil/artifact/7fa63d1ca4eb770f9b2b88ed29061905e0f60db5 | agreement].

  <hr /><i>anonymous added on 2011-01-26 13:27:51 UTC:</i><br />
  That's good information, I think it is important to have it in FAQ.

  <hr /><i>dmitry added on 2011-09-08 22:30:44 UTC:</i><br />
  There is now [http://www.fossil-scm.org/index.html/doc/trunk/www/contribute.wiki | Contributing] page as of [98f1131c0d].


tkt_uuid: e0f68fcf2195aa080eaee150d668b88b98ccded7
type: Feature_Request
status: Open
severity: Minor
private_contact: f7a8d3a6a73c86bb80df4faa8f5414307e6a1b68
resolution: Open
title: Merge directive (i.e. patch with history)
comment:
  Fossil makes it really easy to clone repos. It would be great if one could make "drive-by" contributions to an open source project by passing back fixes made in a cloned repos back to the developers without requesting write access for the repository. 

  Bazaar has a cool feature called "Merge directive" that packages all changes relative to the partent branch:
  http://doc.bazaar.canonical.com/bzr.2.2/en/user-guide/sending_changes.html

  It would be cool if Fossil supported this feature as well

  <hr /><i>dmitry added on 2011-01-26 11:35:36 UTC:</i><br />
  I think the DVCS way to do this is:

    #  Clone original repository.
    #  Make your changes.
    #  Send pull request, as in: "Hey, I've got this fixed, pull from https://url"

  <hr /><i>anonymous added on 2011-01-26 13:25:21 UTC:</i><br />
  Right, that's the standard heavyweight way. Merge directive is a lightweight way of doing this. I think of is as series of commits represented as individual patches. The benefit over a single patch is that history is preserved. Maybe this feature isn't as important for Fossil. (I changed Severity of 'Minor').


tkt_uuid: 1f82e0e1ec1c867d0de3ff813ae2363dfe070020
type: Documentation
status: Closed
severity: Cosmetic
private_contact: f7a8d3a6a73c86bb80df4faa8f5414307e6a1b68
resolution: Fixed
title: Typo in www/wikitheory.wiki
comment:
  There seems to be a missing article:

  - format is used, it is trivial to move file from wiki to embedded documentation

  should probably be replaced with:

  + format is used, it is trivial to move files from wiki to embedded documentation

  or with:

  + format is used, it is trivial to move a file from wiki to embedded documentation


tkt_uuid: fbea61caf0acfd0a031626c2622ade980a03d7f1
type: Code_Defect
status: Closed
severity: Important
foundin: [6f42e76d80]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
resolution: Open
title: fossil needs a rebuild after receiving a new baseline checkin
comment:
  After using a branch with delta manifests, at some point a new baseline manifest will be created. On sync, other fossil repository copies will fail to show the delta manifest checkins coming after that new baseline manifest.

  A 'rebuild' on those fossil repository copies fixes the situation.

  (This was discussed in the mailing list [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg03368.html|here])

  <hr /><i>anonymous claiming to be viric added on 2011-02-07 18:46:11 UTC:</i><br />
  We are still hitting this problem constantly, both in windows and linux.

  Any chance for someone to look at it?

  <hr /><i>drh added on 2011-02-07 21:43:20 UTC:</i><br />
  I'm still unable to recreate the problem.  Trying lots of different combinations
  of pushing and pulling with a mixture of delta and baseline manifests.  It 
  always works for me.  Any hints will be appreciated.

  <hr /><i>anonymous claiming to be viric added on 2011-02-10 20:54:49 UTC:</i><br />
  I found this:
  <verbatim>
  sqlite> .schema orphan
  CREATE TABLE orphan(
    rid INTEGER PRIMARY KEY,
      baseline INTEGER
      );
      CREATE INDEX orphan_baseline ON orphan(baseline);
  sqlite> select * from orphan;
  8024|8031
  sqlite> select * from blob where rid=8024 or rid=8031;
  8024|26|257565|5d6a9957808c417aae6f41c8c9cda1dc6e3bffbb|
  8031|26|347|66514ffdad03438ddda7145dbedbed7f2e72a294|
  </verbatim>

  The first, 8024, is the BASELINE manifest artifact, that shows fine in all
  fossil operations. 8031 is the next DELTA manifest artifact, that does not show.
  No artifact after that shows, either.

  And as I told before, in the many times I've hit this problem, "fossil rebuild"
  fixes the situation.

  I keep on investigating, although of course I don't know much about what fossil
  should be doing in terms of sql operations/function calls.

  I'm only trying to ring a bell to drh.


  <hr /><i>anonymous claiming to be viric added on 2011-02-10 20:58:36 UTC:</i><br />
  I have two suppositions, meanwhile:
    *  The artifacts are interchanged in no particular orther, and if a DELTA manifest is transferred  before the BASELINE manifest it refers to, it ends up in the 'orphan' table.
    *  The orphan database is written with the rid/baseline members swapped.
  <verbatim>
        rid = content_new(p->zBaseline);
        db_multi_exec(
           "INSERT OR IGNORE INTO orphan(rid, baseline) VALUES(%d,%d)",
           rid, p->rid
        );
  </verbatim>

  <hr /><i>anonymous claiming to be viric added on 2011-02-11 12:24:41 UTC:</i><br />
  I've seen the fix in trunk; I'll close the ticket when I'll find the opportunity to test it (on the next baseline commit).


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: b081e09e28176eefdfd3a8a99d0d086205e890f0
type: Code_Defect
status: Open
severity: Important
foundin: [6f42e76d80]
private_contact: ccd87c60364e1d3e945b6f4d4874f5174b17cc43
title: On conflict of binary files locally, fossil overwrites local changes
comment:
  In case of a modified binary file, and a later "fossil update" taking in changes in that file, fossil will overwrite the local file with that incoming.

  It will report CONFLICT on that file, leaving "fossil undo" as the only option to get the local changes back.

  A user may loose changes in that situation, if he fails to see the CONFLICT message. I think that fossil should, like subversion, copy the file with local changes into another filename in the same directory, like "myfile.odt~local".


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: e8a10100e212c740472994e0cdee55a1c2f7fcf1
type: Code_Defect
status: Fixed
severity: Important
foundin: 79b7902cdd
private_contact: 737d337eeb5d3cbb8b87d159be27604315ed1813
resolution: Fixed
title: fossil update -v is more than just verbose
comment:
  After deleting a file, update does nothing. However, update -v restores the file. 
  <pre>
  /cygdrive/d/temp/dashv>fossil new dashv.fossil
  project-id: eefba14973508acdebbe3ecea5e63ec1895e8425
  server-id:  41939960aa229ace59c4a833dcf567addbcfba1b
  admin-user: Owner (initial password is "9306f9")
  /cygdrive/d/temp/dashv>fossil open dashv.fossil
  /cygdrive/d/temp/dashv>touch a.txt
  /cygdrive/d/temp/dashv>touch b.txt
  /cygdrive/d/temp/dashv>fossil add *
  ADDED  a.txt
  ADDED  b.txt
  C:\bin\fossil.exe: cannot add _FOSSIL_
  C:\bin\fossil.exe: cannot add dashv.fossil
  /cygdrive/d/temp/dashv>fossil commit -m "initial"
  New_Version: be989ed7f1647274dda0cfdd16efb6850e87eea8
  /cygdrive/d/temp/dashv>rm b.txt
  /cygdrive/d/temp/dashv>fossil update
  /cygdrive/d/temp/dashv>ls
  _FOSSIL_ <b> a.txt</b>  dashv.fossil
  /cygdrive/d/temp/dashv>fossil update -v
  UNCHANGED a.txt
  UPDATE b.txt
  --------------
  updated-to:   be989ed7f1647274dda0cfdd16efb6850e87eea8 2011-01-27 20:43:03 UTC
  tags:         trunk
  comment:      initial (user: Owner)
  "fossil undo" is available to undo changes to the working checkout.
  /cygdrive/d/temp/dashv>ls
  _FOSSIL_ <b> a.txt  b.txt</b>  dashv.fossil
  </pre>

  <hr /><i>martin.weber added on 2011-08-22 15:29:33 UTC:</i><br />
  Yes, I can see this, too, with at least

  $ fossil version
  This is fossil version 1.18 [df9da91ba8] 2011-07-13 23:03:41 UTC

  Also the transcript is very interesting:
  <verbatim>
  $ ./tst.sh
  project-id: 6bc2abb2549099cdc849e19c269d8ead14bd6113
  server-id:  e4843abba50a452aefa3d5a102eb96481be4fba4
  admin-user: phaeton (initial password is "41ba40")
  ADDED  some-file
  New_Version: ffdb5f97e8190eaa0564af8845acf05f5f4cd6fc
  -rw-------  1 phaeton  users  0 Aug 22 11:27 some-file
  After rm: some-file is not there.
  repository:   /data/home/phaeton/tmp/ftst/banzai.fossil
  local-root:   /data/home/phaeton/tmp/ftst/open/
  server-code:  e4843abba50a452aefa3d5a102eb96481be4fba4
  checkout:     ffdb5f97e8190eaa0564af8845acf05f5f4cd6fc 2011-08-22 15:27:20 UTC
  parent:       9a89746aa0dec33acf90d3375e8f828b836dae36 2011-08-22 15:27:20 UTC
  tags:         trunk
  comment:      added some file (user: phaeton)
  MISSING    some-file
  After fossil update: some-file is not there.
  repository:   /data/home/phaeton/tmp/ftst/banzai.fossil
  local-root:   /data/home/phaeton/tmp/ftst/open/
  server-code:  e4843abba50a452aefa3d5a102eb96481be4fba4
  checkout:     ffdb5f97e8190eaa0564af8845acf05f5f4cd6fc 2011-08-22 15:27:20 UTC
  parent:       9a89746aa0dec33acf90d3375e8f828b836dae36 2011-08-22 15:27:20 UTC
  tags:         trunk
  comment:      added some file (user: phaeton)
  MISSING    some-file
  UPDATE some-file
  --------------
  updated-to:   ffdb5f97e8190eaa0564af8845acf05f5f4cd6fc 2011-08-22 15:27:20 UTC
  tags:         trunk
  comment:      added some file (user: phaeton)
  "fossil undo" is available to undo changes to the working checkout.
  repository:   /data/home/phaeton/tmp/ftst/banzai.fossil
  local-root:   /data/home/phaeton/tmp/ftst/open/
  server-code:  e4843abba50a452aefa3d5a102eb96481be4fba4
  checkout:     ffdb5f97e8190eaa0564af8845acf05f5f4cd6fc 2011-08-22 15:27:20 UTC
  parent:       9a89746aa0dec33acf90d3375e8f828b836dae36 2011-08-22 15:27:20 UTC
  tags:         trunk
  comment:      added some file (user: phaeton)
  EDITED     some-file
  fossil: there are unsaved changes in the current checkout
  </verbatim>
  Look at the last two lines. After doing nothing more than an update, fossil thinks some-file has been EDITED where it's not. It's an empty file, just like the one that has been added.


tkt_uuid: 09f0ec580595cfecefcc98d021e3c80ac4d798f1
type: Feature_Request
status: Open
private_contact: 66b196adccdec71e1a25f24f8f869d4a5899b083
title: Fossil output in XML
comment:
  It would be nice if fossil generates output in XML format. The output may be interpreted and displayed by other programs

  Thanks
  Stef


tkt_uuid: 884c40589fcee6fa54d18eb3e8db1d1ba337a294
type: Code_Defect
status: Open
severity: Important
foundin: 20b2767f46a79e845c319bd7aadec34d84ff9bca
private_contact: 9e3254e6e3c2643cc148bab2d55f46bb4c0446f4
resolution: Open
title: ssh clone fails from Ubuntu 10.10
comment:
  This issue seems different from [115e95ac11631d0f3f2cf2427f1a7212999b079e]

  If I use fossil clone it seems I get the MOTD. This could be related to the sshd config

  <pre>
  mjanssen@Juno:~/Projects$ fossil clone ssh://mjanssen@localhost/home/mjanssen/Repos/tcltk.fsl test.fsl
  Enter passphrase for key '/home/mjanssen/.ssh/id_rsa':
  fossil: ssh connection failed: [Linux Juno 2.6.35.8-bfs #1 SMP Wed Jan 19 17:16:18 CET 2011 i686 GNU/Linux
  Ubuntu 10.10

  Welcome to Ubuntu!
   * Documentation:  https://help.ubuntu.com/

  4 packages can be updated.
  0 updates are secur]
  </pre>

  <hr /><i>mjanssen added on 2011-02-01 08:14:39 UTC:</i><br />
  It seems the echo of test is not displayed on first read from the ssh pipe. Applying the following patch makes ssh clone work (buffer zIn is enlarged for big MOTDs):


  <pre>
  mjanssen@Juno:~/Projects/fossil$ fossil diff src/http_transport.c
  --- src/http_transport.c
  +++ src/http_transport.c
  @@ -109,11 +109,11 @@
       ** and run an SSH command to talk to the remote machine.
       */
       const char *zSsh;  /* The base SSH command */
       Blob zCmd;         /* The SSH command */
       char *zHost;       /* The host name to contact */
  -    char zIn[200];     /* An input line received back from remote */
  +    char zIn[32000];     /* An input line received back from remote */

       zSsh = db_get("ssh-command", zDefaultSshCmd);
       blob_init(&zCmd, zSsh, -1);
       if( g.urlPort!=g.urlDfltPort ){
   #ifdef __MINGW32__
  @@ -152,10 +152,12 @@
       popen2(blob_str(&zCmd), &sshIn, &sshOut, &sshPid);
       if( sshPid==0 ){
         fossil_fatal("cannot start ssh tunnel using [%b]", &zCmd);
       }
       blob_reset(&zCmd);
  +    /* eat preamble on login */
  +    sshin_read(zIn, sizeof(zIn));

       /* Send an "echo" command to the other side to make sure that the
       ** connection is up and working.
       */
       fprintf(sshOut, "echo test\n");


  </pre>

  <hr /><i>mjanssen added on 2011-02-01 08:36:39 UTC:</i><br />
  Fix also works from windows using plink.exe with an MinGW fossil build

  <hr /><i>mjanssen added on 2011-02-02 01:00:34 UTC:</i><br />
  After closer reading: [115e95ac11631d0f3f2cf2427f1a7212999b079e] does seem very similar.


tkt_uuid: 995a864c5adf79456808d8f2bcd44c4959f46136
type: Code_Defect
status: Closed
severity: Important
foundin: b6a4e8592d58ead7878f4a072fc6c4da71c7ea97
private_contact: 9e3254e6e3c2643cc148bab2d55f46bb4c0446f4
resolution: Open
title: Editor command fails with spaces
comment:
  The fix for bug [8d073be8808beaa7b614b6d489e729dfb51ac114] only seems to have fixed the issue for the gdiff command. If editor contains spaces, executing it still fails.

  <verbatim>
  C:\Docs\Projects\01. Lean SDMC>fossil commit
  c:/Program Files/Vim/vim73/gvim.exe "C:/<snipped>/ci-comment-5
  260D688DBC8.txt"
  'c:/Program' is not recognized as an internal or external command,
  operable program or batch file.
  c:\Docs\Bin\fossil.exe: editor aborted
  </verbatim>

  Diff below fixes this, but a better solution would probably be to extend the portable_system command to cover all uses of fossil_system

  <verbatim>
  --- src/checkin.c
  +++ src/checkin.c
  @@ -442,11 +442,11 @@
   #if defined(_WIN32)
     blob_add_cr(&text);
   #endif
     blob_write_to_file(&text, zFile);
     if( zEditor ){
  -    zCmd = mprintf("%s \"%s\"", zEditor, zFile);
  +    zCmd = mprintf("\"%s\" \"%s\"", zEditor, zFile);
       printf("%s\n", zCmd);
       if( fossil_system(zCmd) ){
         fossil_panic("editor aborted");
       }
       blob_reset(&text);
  </verbatim>

  <hr /><i>drh added on 2011-02-04 03:28:14 UTC:</i><br />
  The diff above does not work.  On the system on which I am typing this
  remark (a Mac) my editor is set to

      fossil setting editor 'open -e -n -W'

  In other words, the command is "open" and that command is getting three
  command-line arguments, -e, -n, and -W.  If these are quoted, then the
  shell will think that I am trying to run a command named "open -e -n -W"
  which is the wrong thing to do.

  If the editor setting contains a space, then the quotes should be 
  included in the editor setting itself:

      fossil setting editor '"c:/Program Files/Vim/vim73/gvim.exe"'



  <hr /><i>mjanssen added on 2011-02-04 11:32:41 UTC:</i><br />
  you are right. pebkac. as for completeness ' doesn't work you will need \"


