History Of Ticket 045f23be750d93c0bd91f179f39c5c829ed01bc6
Not logged in
Ticket change [1baf691f91] (rid 4853) by drh on 2009-08-01 13:00:42:
  1. Appended to comment:

    drh added on 2009-08-01 13:00:42:
    Fix by ticket 47d8fc4944c2f2bf535a89f069d6f9ce0df5b257.

  2. Change resolution to "Fixed"
  3. Change status to "Fixed"
Ticket change [d80e44dc33] (rid 4845) by anonymous on 2009-07-25 21:07:00:
  1. Appended to comment:

    anonymous added on 2009-07-25 21:07:00:
    I'm new to the code, but seems the problem is the value stored in the sqlite field last-sync-url. If you trust url_parse() to set the right g.urlCanonical value, then simply making both clone.c and sync.c store g.urlCanonical in last-sync-url would seem to fix this consistently:

    [jgm@centos src]$ fossil diff
    Index: src/clone.c
    ===================================================================
    fossil diff /home/jgm/storage/workspace/fossil/work/src/clone.c
    --- src/clone.c
    +++ src/clone.c
    @@ -56,12 +56,12 @@
         db_record_repository_filename(g.argv[3]);
         db_multi_exec(
           "REPLACE INTO config(name,value)"
           " VALUES('server-code', lower(hex(randomblob(20))));"
           "REPLACE INTO config(name,value)"
    -      " VALUES('last-sync-url', 'file://%q');",
    -      g.urlName
    +      " VALUES('last-sync-url', '%q');",
    +      g.urlCanonical
         );
         g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
         if( g.zLogin==0 ){
           db_create_default_users(1);
         }
    @@ -73,11 +73,11 @@
         db_record_repository_filename(g.argv[3]);
         db_initial_setup(0, 0);
         user_select();
         db_set("content-schema", CONTENT_SCHEMA, 0);
         db_set("aux-schema", AUX_SCHEMA, 0);
    -    db_set("last-sync-url", g.argv[2], 0);
    +    db_set("last-sync-url", g.urlCanonical, 0);
         db_multi_exec(
           "REPLACE INTO config(name,value)"
           " VALUES('server-code', lower(hex(randomblob(20))));"
         );
         url_enable_proxy(0);
    
    Index: src/sync.c
    ===================================================================
    fossil diff /home/jgm/storage/workspace/fossil/work/src/sync.c
    --- src/sync.c
    +++ src/sync.c
    @@ -83,11 +83,11 @@
       if( zUrl==0 ){
         if( urlOptional ) exit(0);
         usage("URL");
       }
       url_parse(zUrl);
    -  db_set("last-sync-url", zUrl, 0);
    +  db_set("last-sync-url", g.urlCanonical, 0);
       user_select();
       if( g.argc==2 ){
         if( g.urlPort!=g.urlDfltPort ){
           printf("Server:    %s://%s:%d%s\n",
                   g.urlProtocol, g.urlName, g.urlPort, g.urlPath);
    
    

    Another possible tact is to make minimal changes and instead only change 1 line in sync.c:

    [jgm@centos work2]$ fossil diff
    Index: src/sync.c
    ===================================================================
    fossil diff /home/jgm/storage/workspace/fossil/work2/src/sync.c
    --- src/sync.c
    +++ src/sync.c
    @@ -83,11 +83,11 @@
       if( zUrl==0 ){
         if( urlOptional ) exit(0);
         usage("URL");
       }
       url_parse(zUrl);
    -  db_set("last-sync-url", zUrl, 0);
    +  db_set("last-sync-url", g.urlIsFile ? g.urlCanonical : zUrl, 0);
       user_select();
       if( g.argc==2 ){
         if( g.urlPort!=g.urlDfltPort ){
           printf("Server:    %s://%s:%d%s\n",
                   g.urlProtocol, g.urlName, g.urlPort, g.urlPath);
    
    

    Did I overlook anything?

Ticket change [8387dc6d08] (rid 4844) by bharder on 2009-07-24 15:44:19:
  1. Appended to comment:

    bharder claiming to be bch added on 2009-07-24 15:44:19:
    Regardless of the problem mechanics of finding the repo, this error report needs to be improved as well; the sub-set of html markup returned is useless. Will open seperate ticket [bad-link: ] to track this issue. New ticket 8a7a49c47d7f2 filed.

Ticket change [dacbb8afe5] (rid 4842) by anonymous on 2009-07-24 08:25:14:
  1. Appended to comment:

    anonymous added on 2009-07-24 08:25:14:
    Hmmmm, the bug2.sh script works as expected if "fossil pull" has the full path to clone.fsl:

    jgm@centos fossil$ diff bug2.sh bug2fixed.sh
    28c28
    < fossil pull file://clone.fsl -R golden.fsl
    ---
    > fossil pull file://$PWD/clone.fsl -R golden.fsl
    

    And this little test script shows last-sync-url is set differently by "fossil pull" vs. "fossil clone":

    cat > pulltest.sh <<EOF
    #!/bin/bash
    echo 888888888888888888888888888 cleanup/create test dir
    rm -rf testsync
    mkdir -p testsync/co
    cd testsync
    echo 888888888888888888888888888 creating golden.fsl
    fossil new golden.fsl
    echo   888888888888888888888888888 cloning to clone.fsl
    fossil clone file://golden.fsl clone.fsl
    echo   888888888888888888888888888   results in clone.fsl last-sync-url =
    sqlite3 clone.fsl "SELECT value FROM config WHERE name = 'last-sync-url'"
    echo   888888888888888888888888888 pull clone.fsl from testsync dir
    fossil pull file://clone.fsl -R golden.fsl
    echo   888888888888888888888888888   results in golden.fsl last-sync-url =
    sqlite3 golden.fsl "SELECT value FROM config WHERE name = 'last-sync-url'"
    echo   888888888888888888888888888 pull clone.fsl from testsync/co dir
    cd co
    fossil pull file://../clone.fsl -R ../golden.fsl
    cd ..
    echo   888888888888888888888888888   results in last-sync-url =
    sqlite3 golden.fsl "SELECT value FROM config WHERE name = 'last-sync-url'"
    EOF
    

    Here's the output:

    jgm@centos fossil$ ./pulltest.sh
    888888888888888888888888888 cleanup/create test dir
    888888888888888888888888888 creating golden.fsl
    project-id: 9dbf292e1429855cd81bad75ee792e8457acc8a7
    server-id:  ea887f7d879acfe81ac307418c554250e377d4ae
    admin-user: jgm (initial password is "2b5812")
    888888888888888888888888888 cloning to clone.fsl
    Repository cloned into clone.fsl
    Rebuilding repository meta-data...
    1 (100%)...
    project-id: 9dbf292e1429855cd81bad75ee792e8457acc8a7
    server-id:  5bd16395fde4ff4b511db581ae541313f7cc93ef
    admin-user: jgm (password is "2b5812")
    888888888888888888888888888 results in clone.fsl last-sync-url =
    file:///home/jgm/storage/workspace/fossil/testsync/golden.fsl
    888888888888888888888888888 pull clone.fsl from testsync dir
                    Bytes      Cards  Artifacts     Deltas
    Send:             130          1          0          0
    Received:          46          2          0          0
    888888888888888888888888888 results in golden.fsl last-sync-url =
    file://clone.fsl
    888888888888888888888888888 pull clone.fsl from testsync/co dir
                    Bytes      Cards  Artifacts     Deltas
    Send:             130          1          0          0
    Received:          46          2          0          0
    888888888888888888888888888 results in golden.fsl last-sync-url =
    file://../clone.fsl
    

    Changing "fossil pull/sync/push" to set last-sync-url to the full file path just like "fossil clone" would seem to fix this problem.

Ticket change [f8da35b57a] (rid 4839) by bharder on 2009-07-24 03:50:43:
  1. Appended to comment:

    bharder added on 2009-07-24 03:50:43:
    debugging session:
    initial fail at

    autosync(AUTOSYNC_PULL) at line 437 of checkin_.c
    
    ... (/me continues debugging)

    ...and closer still:

    client_sync() at line 64, sync_.c
    

    ...and closer still:

    previous to line 1139, xfer_.c
    
    ...and closer:
    xfer_.c, line 979 call to http_exchange() has the recv buffer aData filled with:
    < p>< font color=\"red\">repository does not exists or is in an unreadable directory: /home/bch/fossiltestings/testsync/co/clone.fsl</ font></ p>
    

    ... suggests that the exchange is looking for the fossil repo in the working directory of the checkout, not the fossil-repo's actual home.

    End of investigation for now.

  2. Change resolution to "Open"
Ticket change [74d712a66c] (rid 4838) by anonymous on 2009-07-23 07:38:08:
  1. Change comment to "Following script re-creates problem with "fossil commit" giving an error message "2fossil: unknown command: &lt;p&gt;&lt;font". Problem seen on both linux (CentOS 5.3) and Windows XP SP3. I was trying to get 2 repo's to automatically sync with each other. <pre> cat > bug2.sh <<EOF #!/bin/bash # # Try and set up bi-directional sync: # create golden.fsl # clone golden.fsl -> clone.fsl # pull clone.fsl -> golden.fsl # then add file to golden.fsl and see if added to clone.fsl # echo 888888888888888888888888888 OS/fossil versions cat /etc/redhat-release uname -a fossil version # echo 888888888888888888888888888 cleanup/create test dir rm -rf testsync mkdir -p testsync/co cd testsync # echo 888888888888888888888888888 creating golden.fsl fossil new golden.fsl fossil setting autosync 1 -R golden.fsl fossil setting clearsign 0 -R golden.fsl # echo 888888888888888888888888888 cloning to clone.fsl fossil clone file://golden.fsl clone.fsl echo 888888888888888888888888888 pull clone.fsl back to golden.fsl # fossil sync file://clone.fsl -R golden.fsl fossil pull file://clone.fsl -R golden.fsl # echo 888888888888888888888888888 open golden.fsl cd co fossil open ../golden.fsl echo 888888888888888888888888888 adding file.txt to golden.fsl echo "test line 1" > file.txt fossil add file.txt echo 888888888888888888888888888 now commit golden.fsl fossil commit -m "added file.txt" echo 888888888888888888888888888 now close golden.fsl fossil close cd .. EOF </pre> Output of this script is as follows: <pre> [jgm@centos fossil]$ ./bug2.sh 888888888888888888888888888 OS/fossil versions CentOS release 5.3 (Final) Linux centos.bitbender.org 2.6.18-128.2.1.el5xen #1 SMP Tue Jul 14 07:07:49 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux This is fossil version [e124881a70] 2009-07-07 14:53:58 UTC 888888888888888888888888888 cleanup/create test dir 888888888888888888888888888 creating golden.fsl project-id: ee97b450c6e570ec745310a78445d534fe9aa095 server-id: 9f3d475997305073f33b7fc7826cbc7e241a21ad admin-user: jgm (initial password is "292735") 888888888888888888888888888 cloning to clone.fsl Repository cloned into clone.fsl Rebuilding repository meta-data... 1 (100%)... project-id: ee97b450c6e570ec745310a78445d534fe9aa095 server-id: b37c8c01daa996368e3ca708c62f5701a14da2f4 admin-user: jgm (password is "292735") 888888888888888888888888888 pull clone.fsl back to golden.fsl Bytes Cards Artifacts Deltas Send: 130 1 0 0 Received: 46 2 0 0 888888888888888888888888888 open golden.fsl 888888888888888888888888888 adding file.txt to golden.fsl ADDED file.txt 888888888888888888888888888 now commit golden.fsl Autosync: file:///home/jgm/storage/workspace/fossil/testsync/co/clone.fsl Bytes Cards Artifacts Deltas Send: 130 1 0 0 2fossil: unknown command: &lt;p&gt;&lt;font 888888888888888888888888888 now close golden.fsl fossil: there are unsaved changes in the current checkout </pre>"
  2. Change foundin to "e124881a70"
  3. Change private_contact to "a44827559cb5ba06a95af4c4d260c5b79df45d69"
  4. Change severity to "Important"
  5. Change status to "Open"
  6. Change title to "commit gives error "2fossil: unknown command: <p><font""
  7. Change type to "Code_Defect"