D 2010-03-21T07:14:25 J comment I\shave\sseveral\srepositories\ssetup\son\sa\sserver\sat\shome\swhich\sI\swant\sto\ssync\speriodically\sto\san\sexternal\sserver\sLike\sthis\sone\r\n\r\nTo\sreproduce\s(seen\son\sOS\sX\sand\sLinux\s(Centos\s5.3)):\r\n\r\nfossil\sclone\shttps://code.linuxfood.net/pub/repo/git-import\sgi.fsl\s#\s(or\sprobably\sany\sother\sssl\srepo.\sSee\sbelow).\r\nfossil\ssync\s-R\sgi.fsl\r\n\r\nOutput:\r\n...\r\nSend:\s\s\s\s\s\s\s\s\s\s\s\s1091\s\s\s\s\s\s\s\s\s21\s\s\s\s\s\s\s\s\s\s0\s\s\s\s\s\s\s\s\s\s0\r\n\r\nUnknown\sSSL\scertificate:\r\n\r\n\s\scountryName\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\s--\r\n\s\sstateOrProvinceName\s\s\s\s\s\s\s=\sSomeState\r\n\s\slocalityName\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\sSomeCity\r\n\s\sorganizationName\s\s\s\s\s\s\s\s\s\s=\sSomeOrganization\r\n\s\sorganizationalUnitName\s\s\s\s=\sSomeOrganizationalUnit\r\n\s\scommonName\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\snudibranch.linuxfood.net\r\n\s\semailAddress\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\sroot@nudibranch.linuxfood.net\r\n\r\nIssued\sBy:\r\n\r\n\s\scountryName\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\s--\r\n\s\sstateOrProvinceName\s\s\s\s\s\s\s=\sSomeState\r\n\s\slocalityName\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\sSomeCity\r\n\s\sorganizationName\s\s\s\s\s\s\s\s\s\s=\sSomeOrganization\r\n\s\sorganizationalUnitName\s\s\s\s=\sSomeOrganizationalUnit\r\n\s\scommonName\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\snudibranch.linuxfood.net\r\n\s\semailAddress\s\s\s\s\s\s\s\s\s\s\s\s\s\s=\sroot@nudibranch.linuxfood.net\r\n\r\n\r\nAccept\scertificate\s[a=always/y/N]?\sa\r\n\r\nREPLACE\sINTO\sglobal_config(name,value)\sVALUES('cert:code.linuxfood.net','-----BEGIN\sCERTIFICATE-----\r\nMIIEIDCCA4mgAwIBAgICX/IwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAi0t\r\nMRIwEAYDVQQIEwlTb21lU3RhdGUxETAPBgNVBAcTCFNvbWVDaXR5MRkwFwYDVQQK\r\n[snip\sfor\sbrevity]\r\nXQ6rdn5/eMocYvA0BOXd0pD5HWKX6WfX+kvqdo4P6l/2tBWCLXBlBuaLUfwZtm1S\r\nXBbhCw==\r\n-----END\sCERTIFICATE-----\r\n')\r\n\r\n\r\nThis\sbehavior\sonly\soccurs\swhen\syou\spress\s'a'\sfor\salways.\r\nIt\sappears\sto\sbe\sa\sresult\sof\sthe\sfact\sthat\ssync\sdidn't\sused\sto\sneed\sto\swrite\sto\sthe\sconfig\sdatabase\suntil\sSSL\ssupport\swas\sintroduced.\sAccepting\sthe\scert\stemporarily\scauses\sit\sto\snot\swrite\sit\sto\sthe\sconfig.\r\n\r\nOpening\s~/.fossil\sin\sprocess_sync_args()\sappears\sto\sfix\sthe\sproblem.\sPatch:\r\n\r\nIndex:\ssrc/sync.c\r\n===================================================================\r\n---\ssrc/sync.c\r\n+++\ssrc/sync.c\r\n@@\s-84,10\s+84,11\s@@\r\n\s\s\sconst\schar\s*zPw\s=\s0;\r\n\s\s\sint\surlOptional\s=\sfind_option("autourl",0,0)!=0;\r\n\s\s\sg.dontKeepUrl\s=\sfind_option("once",0,0)!=0;\r\n\s\s\surl_proxy_options();\r\n\s\s\sdb_find_and_open_repository(1);\r\n+\s\sdb_open_config(0);\r\n\s\s\sif(\sg.argc==2\s){\r\n\s\s\s\s\szUrl\s=\sdb_get("last-sync-url",\s0);\r\n\s\s\s\s\szPw\s=\sdb_get("last-sync-pw",\s0);\r\n\s\s\s}else\sif(\sg.argc==3\s){\r\n\s\s\s\s\szUrl\s=\sg.argv[2];\r\n\r\n\r\n\r\nAdditionally,\sI\sadded\san\sassert\sto\sbe\sa\slittle\smore\sviolent\sabout\sthis\skind\sof\sbug.\sThis\sone\sis\sless\snecessary,\sbut\swas\suseful\sin\sverifying\sthe\sbug\sand\smight\scatch\sother\sinstances\sas\swell.\sPatch:\r\n\r\nIndex:\ssrc/db.c\r\n===================================================================\r\n---\ssrc/db.c\r\n+++\ssrc/db.c\r\n@@\s-1194,10\s+1194,11\s@@\r\n\s**\sso\sthis\sroutine\sis\sa\sno-op.\r\n\s*/\r\n\svoid\sdb_swap_connections(void){\r\n\s\s\sif(\s!g.useAttach\s){\r\n\s\s\s\s\ssqlite3\s*dbTemp\s=\sg.db;\r\n+\s\s\s\sassert(g.dbConfig);\r\n\s\s\s\s\sg.db\s=\sg.dbConfig;\r\n\s\s\s\s\sg.dbConfig\s=\sdbTemp;\r\n\s\s\s}\r\n\s}\r\n\s\r\n\r\n\r\n\r\nThanks,\r\n\r\n-B J foundin 73c24ae363 J private_contact 7a46edbdd4ae23c7f1340663be03348341c2cb57 J severity Important J status Open J title Syncing\sa\s"bare"\srepository\sover\sSSL\sfails\sto\sstore\scertificate J type Code_Defect K 45f89e504b49833746286e9c2674b838250e3776 U anonymous Z b5e41610cbbd932202881776dbbdeb3b