Dug through the source a bit. It seems this is by design, from main.c:cmd_http -> main.c:process_one_web_page
/* To avoid mischief, make sure the repository basename contains no ** characters other than alphanumerics, "-", "/", and "_". */ for(j=strlen(g.zRepositoryName)+1, k=0; zRepo[j] && k<i-1; j++, k++){ if( !fossil_isalnum(zRepo[j]) && zRepo[j]!='-' && zRepo[j]!='/' ){ zRepo[j] = '_'; } } This is reasonable, but so are periods in file names. =) * You should return a not found error if there are illegal characters versus silently replacing them with an underscore. I did not realize this would be the case until I looked at the source. $ fossil clone http://fossils.example.com/repo.1.master local.fossil will actually fetch /dir/on/host/repo_one_master.fossil $ fossil clone http://fossils.example.com/repo_1.master local.fossil will fetch the same thing for no obvious reason, even if there are two different files, repo_1.master.fossil and repo.1.master, on the server * The list of allowed characters should probably be longer, if only for consistency with 'fossil server'. We can even allow periods and check the result against file.c:file_is_canonical to avoid said mischief? Non of this is catastrophic, but... surprised me nonetheless. Thanks! -Nick On Wed, Jan 18, 2012 at 1:45 AM, Nick Zalutskiy <pace...@gmail.com> wrote: > > I have setup fossil to serve repositories using inetd (xinetd in my case) as > per http://fossil-scm.org/index.html/doc/tip/www/server.wiki > > Lets say http://example.com:8585 is serving from /home/fossil/repos and there > are two fossil files in there: > repo1.fossil > repo.name.with.periods.fossil > > Then: > > $ fossil clone http://example.com:8585/repo1 repo1.fossil > [OK] > $ fossil clone http://example.com:8585/repo.name.with.periods repo2.fossil > fossil: server says: 404 not found > ... > > At the same time if, on the server, we do 'fossil server', instead of serving > using 'fossil http' + inetd: > > $ fossil server --port 8686 /home/fossil/repos/repo.name.with.periods.fossil > > Then the earlier clone succeeds: > > $ fossil clone http://example.com:8686/repo.name.with.periods repo2.fossil > [NOW OK] > > Is this a bug? > > -Nick _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users