Changes to ticket 045f23be75
By anonymous on 2009-07-25 21:07:00. See also: artifact content, and ticket history
- 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?