Re: [fossil-users] Missing highlighted space changes in diff?
2014-03-04 5:38 GMT+01:00 Andy Bradford amb-fos...@bradfords.org: I would vote to leave the original behavior (with a slight fix to correct the web UI), but make it possible for the user to express a preference to hide whitespace-only changes. Well, the original behavior was wrong, Joel proved that by its off-by-one fix. Looking at the code, the intention was to ignore eol-whitespace by default but sometimes that didn't work. That said, I would prefer too the default being NOT to ignore whitespace, that's what most other SCM's do. Except for annotations, then it is useful to ignore all whitespacing. Something like: http://fossil-scm.org/index.html/info/28b39cc516 Is that getting nearer to what's really desired? Thanks! Jan Nijtmans ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
On Tue, Mar 4, 2014 at 5:38 AM, Andy Bradford amb-fos...@bradfords.orgwrote: I would further argue that the web UI also should not ignore whitespace by default. FWIW: +1 Space is important. Just ask python developers who've had their cat step on their keyboard and thereby change the meaning of (without breaking) their program. I would vote to leave the original behavior (with a slight fix to correct the web UI), but make it possible for the user to express a preference to hide whitespace-only changes. +1, assuming that behaviour is correct/fixed (it's got some broken cases according to the response from Jan). -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
On Tue, Mar 4, 2014 at 12:57 PM, Ramon Ribó ram...@compassis.com wrote: I see no problem to consider space as a difference but I would not consider line endings (linux/windows) a difference to be shown in diff or annotate. man isspace says: isspace() checks for white-space characters. In the C and POSIX locales, these are: space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). i.e. space includes EOL characters, per long-standing tradition. If a file differs only by line endings, its hash is still different, so eliding EOL diffs by default could, IMO, be particularly confusing. Two files, different hashes... no diffs? (That said, an option to disable them as being treated as diffs would be very welcomed. :) -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
I see no problem in the file being marked as different but the difff showing no actual diff. If necessary, it is possible to add a message only end of line differences. The point is that, if you consider end-line as differences for diff or for annotate you will be showing a difference mark for every line, which is not too much useful for the user. If you prefer to go to the technical explanation, you can say: a differences algorithm can only be applied to text files. Text files are, by definition, a collection of lines separated by end of line markers. We understand end of line markers as either \n or \r\n and we do not mind which of them is used. In fact, if you open a text file in either C, C++ or in TCL (in text mode), \r\n is converted into \n to all effects. RR 2014-03-04 14:03 GMT+01:00 Stephan Beal sgb...@googlemail.com: On Tue, Mar 4, 2014 at 12:57 PM, Ramon Ribó ram...@compassis.com wrote: I see no problem to consider space as a difference but I would not consider line endings (linux/windows) a difference to be shown in diff or annotate. man isspace says: isspace() checks for white-space characters. In the C and POSIX locales, these are: space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). i.e. space includes EOL characters, per long-standing tradition. If a file differs only by line endings, its hash is still different, so eliding EOL diffs by default could, IMO, be particularly confusing. Two files, different hashes... no diffs? (That said, an option to disable them as being treated as diffs would be very welcomed. :) -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
Thus said Jan Nijtmans on Tue, 04 Mar 2014 09:20:28 +0100: That said, I would prefer too the default being NOT to ignore whitespace, that's what most other SCM's do. Except for annotations, then it is useful to ignore all whitespacing. Why is it useful to ignore all whitespace for annotate/blame? Am the only one who I wants to know who's introducing spurious space changes? :-) If I look at the annotate for: http://www.fossil-scm.org/index.html/annotate?checkin=3df526ca41bde756filename=src/checkout.clog=1limit=-1 The number 1 checkin listed is: 2014-02-28 check-in 3df526ca41 artifact a584a28bf3 But I cannot find any lines that show 3df526ca41. If I look at line 162, it is annotated with: d13054ce84 2010-10-26 162: This seems confusing to me. Previously Fossil would show: 3df526ca41 2014-02-28 162: Which in my opinion is the more correct behavior. Something like: http://fossil-scm.org/index.html/info/28b39cc516 Is that getting nearer to what's really desired? Yes, this actually looks quite nice! I also like the addition of the ``ignore whitespace'' button. I wasn't certain if this should be a preference stored in the DB or a button---I think the button is more convenient. Thanks, Andy -- TAI64 timestamp: 40005315eefb ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] nginx fronting fossil best practices?
New to fossil and am trying to stand up a simple fossil server fronted by nginx. I've read the website doco, spelunked the mailing list, and have tweaked configurations a bit. All to no avail. I want to use fossil and nginx to make multiple repos available via base url's such as http://somewhere.mydomain.com/partner/repo-name in which fossil repos live under root-owned /srv/fossils/partner as *.fossil files With limited nginx configuration tweaking the best I've been able to achieve is a fossil repo main page but with invalid links (e.g. - http://127.0.0.1:8080/logicalmaps/index) pointing to the fossil server running in localhost mode. Via the following I see fossil redirects which likely means a more complex nginx config. $ curl -I http://stimpy/partner/logicalmaps HTTP/1.1 302 Moved Temporarily Server: nginx Date: Tue, 04 Mar 2014 18:03:09 GMT Content-Type: text/html; charset=utf-8 Content-Length: 80 Connection: keep-alive Location: http://stimpy/logicalmaps/index X-Frame-Options: SAMEORIGIN Cache-control: no-cache Below are the relevant snippets of my original fossil and nginx config that does not work. Before I spend more time (likely in the wrong direction) I'd appreciate your guidance as to the best way to setup fossil + nginx. I'd prefer nginx in reverse http proxy mode but SCGI is also fine. Once the base config works, I'll move to HTTPS. Jon BASIC FOSSIL and NGINX CONFIGURATION # upstart script - /etc/init/fossil.conf description Fossil DVCS Server start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/local/sbin/fossil server --localhost /srv/fossils/partner # main nginx config - /etc/nginx/nginx.conf ... http { include /etc/nginx/mime.types; default_type application/octet-stream; ... include /etc/nginx/conf.d/*.conf; } # default nginx config - /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name stimpy; server_tokens off; ... location / { root /usr/share/nginx/html; index index.html index.htm; } ... location /partner/ { proxy_pass http://127.0.0.1:8080/; proxy_connect_timeout 30s; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ... } jon@stimpy:~$ ps aux | egrep 'nginx|fossil' root 2279 0.0 0.0 2584 372 ?Ss Feb26 0:00 /usr/local/sbin/fossil server --localhost /srv/fossils/partner root 16849 0.0 0.2 31208 2652 ?S12:56 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx16850 0.0 0.1 31564 1656 ?S12:56 0:00 nginx: worker process ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] Fossil in a multi-user environment
Dear all, I am currently looking into the possibility of using Fossil as our next SCM (we currently use Mercurial, and while it works, many things could be improved). The task is primarily collaborative paper writing in a research institute, most authors are non-programmers and thus want the system to be as easy to use as possible (this is why Fossil is so interesting). Now, I have some problems with setting up a sane multi-user environment. Let me briefly go though the most important points: - there will be potentially a large number of projects - all projects are private (i.e. invisible to any unauthorised user) - the users are shared between all projects (the permissions might differ) - every potential contributor has a different user account All this seems fairly easy to do, I have a template project with all relevant users which can be taken as the base for new repository, with permissions set in an appropriate way. However, I have run into a problem and I can’t seem to find the way to solve it. Briefly, its about how Fossil synchronises users and the fact that users and authors of commits appear to be different things. When I clone a remote repository and push some changes into it, the name of the user will be my local admin name and not the name of the user I am actually using to communicate with the repository. Imagine the following scenario: We create a new project and my colleague, Maximilian Test is one of the key authors. E.g. the user ‘MaximilianTest' has full authoring permissions for the repo. However, at his local machine, his user name is ‘max’ rather than ‘MaximilianTest’ - when he clones the repository and makes some changes, we will see the user ‘max’ in our timeline. Even more confusing when he then uses some other machine where the user name is simply ‘user’ or ‘default’. Now, I know that he should have cloned his repository using -A MaximilianTest instead, but it will not happen and I just have to deal with it. With Mercurial, there was at least a way to set the default user in the central config file, I can’t find such an option with Fossil. So basically, two questions: a) is it possible to solve this problem in an easy way? To put it bluntly, I want to synchronise the ’user as an author’ and the ‘user as entity of authorisation’; b) what is the reasoning behind the current design? I though if a system includes users and permissions as a standard feature, it would make sense for it to make sure that these are honoured in a consistent way across the repository? It seems to me that user is just being used to check the access rights for the push/pull, but not actually to verify the rights to contribute to the repository. Thank you! — Taras ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil in a multi-user environment
On Tue, Mar 4, 2014 at 7:02 PM, Taras Zakharko taras.zakha...@uzh.chwrote: into a problem and I can't seem to find the way to solve it. Briefly, its about how Fossil synchronises users and the fact that users and authors of commits appear to be different things. When I clone a remote repository and push some changes into it, the name of the user will be my local admin name and not the name of the user I am actually using to communicate with the repository. Imagine the following scenario: That depends on several factors, several of which another list member will hopefully detail for us, but what i can say is if you clone like this: fossil clone http://remoteUserName@server/... therepo.fsl then pull/push will use that user name from then on out. That's the only way i ever clone. We create a new project and my colleague, Maximilian Test is one of the key authors. E.g. the user 'MaximilianTest' has full authoring permissions for the repo. However, at his local machine, his user name is 'max' rather than 'MaximilianTest' - when he clones the repository and makes some changes, we will see the user 'max' in our timeline. Even more confusing when he then uses some other machine where the user name is simply 'user' or 'default'. If i'm not mistaken, Max can do this: fossil user default MaximillianTest to ensure that further network ops use that name by default. That must be set per repo, not globally. If he clones with that name in the URL then he won't need to do that. Now, I know that he should have cloned his repository using -A MaximilianTest instead, but it will not happen and I just have to deal with it. With Mercurial, there was at least a way to set the default user in the central config file, I can't find such an option with Fossil. Globally, no - it uses your $USER value by default (or a Windows equivalent). If you clone with the name in the URL then it will continue to use that name and you'll never be bothered by it again. So basically, two questions: a) is it possible to solve this problem in an easy way? To put it bluntly, I want to synchronise the 'user as an author' and the 'user as entity of authorisation'; i don't recall if login group support handles centralizing permissions or just passwords. Hopefully someone else can enlighten us. b) what is the reasoning behind the current design? The synching of logins/rights across a login group was added long after fossil was born, so it's possibly got a rough edge or two which would be in an impl which had taken that into account from the start. I though if a system includes users and permissions as a standard feature, it would make sense for it to make sure that these are honoured in a consistent way across the repository? Are you talking about a consistency across fossil features within a single repo (one local copy), across all clones of a central copy, or across several projects in a single login group? It seems to me that user is just being used to check the access rights for the push/pull, but not actually to verify the rights to contribute to the repository. That doesn't sound quite right to me, but i'm going to hold off and hope that someone better-versed in that particular code can shed some light on it. There have recently (the past 6 months or so) been a couple threads related to how Fossil figures out which user name to use for a given operation, and several changes were made in that regard IIRC. -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil in a multi-user environment
I'm not sure I understand what exactly is your issue but are you cloning via a server or directly from shared disk? If the later then you may have run into a problem that may still exist - the default user is not properly handled when cloning using file:// . Exactly why I don't know. The fix is to make the user you want as default the first in the sql table. In my fossil wrapper I swap the user after cloning and this works fine. On Tue, Mar 4, 2014 at 11:02 AM, Taras Zakharko taras.zakha...@uzh.chwrote: Dear all, I am currently looking into the possibility of using Fossil as our next SCM (we currently use Mercurial, and while it works, many things could be improved). The task is primarily collaborative paper writing in a research institute, most authors are non-programmers and thus want the system to be as easy to use as possible (this is why Fossil is so interesting). Now, I have some problems with setting up a sane multi-user environment. Let me briefly go though the most important points: - there will be potentially a large number of projects - all projects are private (i.e. invisible to any unauthorised user) - the users are shared between all projects (the permissions might differ) - every potential contributor has a different user account All this seems fairly easy to do, I have a template project with all relevant users which can be taken as the base for new repository, with permissions set in an appropriate way. However, I have run into a problem and I can't seem to find the way to solve it. Briefly, its about how Fossil synchronises users and the fact that users and authors of commits appear to be different things. When I clone a remote repository and push some changes into it, the name of the user will be my local admin name and not the name of the user I am actually using to communicate with the repository. Imagine the following scenario: We create a new project and my colleague, Maximilian Test is one of the key authors. E.g. the user 'MaximilianTest' has full authoring permissions for the repo. However, at his local machine, his user name is 'max' rather than 'MaximilianTest' - when he clones the repository and makes some changes, we will see the user 'max' in our timeline. Even more confusing when he then uses some other machine where the user name is simply 'user' or 'default'. Now, I know that he should have cloned his repository using -A MaximilianTest instead, but it will not happen and I just have to deal with it. With Mercurial, there was at least a way to set the default user in the central config file, I can't find such an option with Fossil. So basically, two questions: a) is it possible to solve this problem in an easy way? To put it bluntly, I want to synchronise the 'user as an author' and the 'user as entity of authorisation'; b) what is the reasoning behind the current design? I though if a system includes users and permissions as a standard feature, it would make sense for it to make sure that these are honoured in a consistent way across the repository? It seems to me that user is just being used to check the access rights for the push/pull, but not actually to verify the rights to contribute to the repository. Thank you! -- Taras ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- Matt -=- 90% of the nations wealth is held by 2% of the people. Bummer to be in the majority... ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil in a multi-user environment
Stephan, Matt, thank you for your quick answers! That depends on several factors, several of which another list member will hopefully detail for us, but what i can say is if you clone like this: fossil clone http://remoteUserName@server/... therepo.fsl then pull/push will use that user name from then on out. That's the only way i ever clone. Exactly, but there is still a mismatch between the user doing the push/pull and the one doing the commit If i'm not mistaken, Max can do this: fossil user default MaximillianTest True, but I can’t really tell my colleagues to do this all the time. They are linguists, not programmers. Also, you usually clone very rarely - if a person has to clone a project once per month or so, you can’t really expect them to remember idiosyncratic steps… i don't recall if login group support handles centralizing permissions or just passwords. Hopefully someone else can enlighten us. Na, that’s ok - I can replicate the ’same' users over different repos. An option to have a default fossil user on a machine or honouring the user who is used to access the central repository would be very useful. I can probably hack it into the fossil source, but I would like to avoid having to build my own custom fossil… Are you talking about a consistency across fossil features within a single repo (one local copy), across all clones of a central copy, or across several projects in a single login group? I think its the closes to the second one (clones of a central copy). Basically, I think it makes sense if users are checked when synchronising repositories so that a change set cannot be added to the same repository if the committing user permissions do not match. I do realise that this opens a big can of worms though. For the time being, I’d be really happy with some sort of user-friendly option (a per-repository setting maybe?) of setting the admin name of a cloned repository to the user who was used to access the original. I'm not sure I understand what exactly is your issue but are you cloning via a server or directly from shared disk? I am cloning via HTTP, my fossil server lives in a virtual machine. To briefly summarise, my issue is that the admin user of the cloned repository is the default one instead of the user used to access the repo (e.g. I clone the repo as admin@ip and the local admin user is set to ‘taras’ instead, so in the end the central version has ‘taras’ as a contributor although the user with this name is not even registered in the central repository). Not a big thing and easy to fix with ‘fossil user default’ (as Stephan mentiones above), but can be quickly confusing and doing ‘fossil user default' cannot be requested of an average non-programmer, who shouldn’t be bothered with such technicalities. Thanks, Taras ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil in a multi-user environment
On Tue, Mar 4, 2014 at 8:58 PM, Taras Zakharko taras.zakha...@uzh.chwrote: Are you talking about a consistency across fossil features within a single repo (one local copy), across all clones of a central copy, or across several projects in a single login group? I think its the closes to the second one (clones of a central copy). Basically, I think it makes sense if users are checked when synchronising repositories so that a change set cannot be added to the same repository if the committing user permissions do not match. I do realise that this opens a big can of worms though. Every clone of a repo is a full-fledged original of that repo, minus user list and a few other minor bits of info. What that means is that anyone can commit changes to that repo independently of whether those changes will be allowed by the remote server, and fossil currently has no way of disallowing changes which have happened in other copies of the repo (to leave out shunning, which is a special case). For the time being, I'd be really happy with some sort of user-friendly option (a per-repository setting maybe?) That's the disconnrect, i think - you're apparently understanding repository to be the One True Central Repo. In a DVCS, every clone is (in principal) a full-rights central repo. So my clone of your repo has a different idea of per repo settings (which are set by: fossil user default UserName). of setting the admin name of a cloned repository to the user who was used to access the original. That's what the name in the URL does. If you're cloning with a name and it does not retain that user name in later sessions, that is a bug (which i haven't seen) - please help us figure out why fossil is selecting a different name. What platform(s) are you on? -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil The above should be all you need to do. It should just work. And it does just work for every git repository that I've tried, though that is, admittedly, not that many repos. If you are willing to share with us the specific repo you are trying to import, prehaps the developers can try it and discover what's going wrong. No files appear. I looked at the timeline: $ fossil timeline === 2014-03-04 === 20:24:06 [178338650a] *CURRENT* initial empty check-in (user: apotheon tags: trunk) === 2013-06-19 === 21:12:33 [34ca661224] last commit message from Git === 2011-10-16 === . . . et cetera The obvious choice seems to be to use revert: $ fossil help revert Usage: fossil revert ?-r REVISION? ?FILE ...? Revert to the current repository version of FILE, or to the version associated with baseline REVISION if the -r flag appears. [. . .] Revert all files if no file name is provided. [. . .] I tried that: $ fossil revert -r 34ca661224 the --revision option does not work for the entire tree How do I actually get a repository import to a usable state so I can push it to the server's repository and get on with my life? -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 03:47:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil Doesn't the git import create the fossil repo for you? Maybe you should try doing the import into a fossil repo that doesn't already exist. Then you can scp that repo to your server and clone it down. I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil The above should be all you need to do. It should just work. And it does just work for every git repository that I've tried, though that is, admittedly, not that many repos. If you are willing to share with us the specific repo you are trying to import, prehaps the developers can try it and discover what's going wrong. No files appear. I looked at the timeline: $ fossil timeline === 2014-03-04 === 20:24:06 [178338650a] *CURRENT* initial empty check-in (user: apotheon tags: trunk) === 2013-06-19 === 21:12:33 [34ca661224] last commit message from Git === 2011-10-16 === . . . et cetera The obvious choice seems to be to use revert: $ fossil help revert Usage: fossil revert ?-r REVISION? ?FILE ...? Revert to the current repository version of FILE, or to the version associated with baseline REVISION if the -r flag appears. [. . .] Revert all files if no file name is provided. [. . .] I tried that: $ fossil revert -r 34ca661224 the --revision option does not work for the entire tree How do I actually get a repository import to a usable state so I can push it to the server's repository and get on with my life? -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- James Turner ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 03:47:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil The above should be all you need to do. It should just work. And it does just work for every git repository that I've tried, though that is, admittedly, not that many repos. If you are willing to share with us the specific repo you are trying to import, prehaps the developers can try it and discover what's going wrong. git://repo.or.cz/nvi.git For reference, I'm using . . . $ fossil version This is fossil version 1.28 [3d49f04587] 2014-01-27 17:33:44 UTC . . . on FreeBSD, installed from ports, with the JSON and STATIC options both selected at build time. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
I did this: mkdir nvi cd nvi git clone git://repo.or.cz/nvi.git cd nvi git fast-export --all | fossil import ../nvi.fossil cd .. mkdir n2 cd n2 fossil open ../nvi.fossil The result was a directory full of files. And I could do fossil ui to see the complete development timeline, and so forth. On Tue, Mar 4, 2014 at 3:55 PM, Chad Perrin c...@apotheon.net wrote: On Tue, Mar 04, 2014 at 03:47:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil The above should be all you need to do. It should just work. And it does just work for every git repository that I've tried, though that is, admittedly, not that many repos. If you are willing to share with us the specific repo you are trying to import, prehaps the developers can try it and discover what's going wrong. git://repo.or.cz/nvi.git For reference, I'm using . . . $ fossil version This is fossil version 1.28 [3d49f04587] 2014-01-27 17:33:44 UTC . . . on FreeBSD, installed from ports, with the JSON and STATIC options both selected at build time. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 01:55:36PM -0700, Chad Perrin wrote: On Tue, Mar 04, 2014 at 03:47:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil Bah incremental requires the repo to exist. Without incremental the import is successful and trunk is set correctly. I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil The above should be all you need to do. It should just work. And it does just work for every git repository that I've tried, though that is, admittedly, not that many repos. If you are willing to share with us the specific repo you are trying to import, prehaps the developers can try it and discover what's going wrong. git://repo.or.cz/nvi.git For reference, I'm using . . . $ fossil version This is fossil version 1.28 [3d49f04587] 2014-01-27 17:33:44 UTC . . . on FreeBSD, installed from ports, with the JSON and STATIC options both selected at build time. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- James Turner ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 4:02 PM, James Turner ja...@calminferno.net wrote: Bah incremental requires the repo to exist. Without incremental the import is successful and trunk is set correctly. I completely overlooked the --incremental flag in the original post. Sorry... -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil in a multi-user environment
I have found the problem - seems that the fossil version installed on my mac was still 1.27 and the user name takeover has been added in 1.28. Now it works like a charm and I am very happy! Sorry for the noise and thanks again for the quick answers! — Taras On 04 Mar 2014, at 21:55 , Stephan Beal wrote: That's what the name in the URL does. If you're cloning with a name and it does not retain that user name in later sessions, that is a bug (which i haven't seen) - please help us figure out why fossil is selecting a different name. What platform(s) are you on? ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 04:01:36PM -0500, Richard Hipp wrote: I did this: mkdir nvi cd nvi git clone git://repo.or.cz/nvi.git cd nvi git fast-export --all | fossil import ../nvi.fossil cd .. mkdir n2 cd n2 fossil open ../nvi.fossil The result was a directory full of files. And I could do fossil ui to see the complete development timeline, and so forth. My understanding is that --incremental, as used in my original attempt described in my email to start this thread, should allow me to import into an existing Fossil repository. That is where I am having a problem. Do I misunderstand the intended use of --incremental? Is there some way to let someone push from a fresh Fossil repository created by import from git to an existing repository on another server, which I could use instead? The key here is that someone without the ability to brute-force copy (i.e. scp) the projectname.fossil file to the server should be able to import from git then use the fossil utility to push that to a repository on the server, resulting in a repository full of files and history. Is that possible, or do I pretty much need to either throw away all history or just stick with Git instead? -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] nginx fronting fossil best practices?
Hi Jon, I went through the process of setting up fossil behind NGINX the same way your looking for, where you can specify the repository depending on the url. At first I tried the proxy method with xinetd, but had to play with path's of the actual repositories before it would work. The solution I went with was to use scgi with configuration similar to the following: In /etc/nginx.conf location ~ ^/fossil(.*)$ { fastcgi_passunix:/run/fcgiwrap.sock; include fossil_fcgi_params; fastcgi_param SCRIPT_NAME /fossil; } In fossil_fcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME$fastcgi_script_name; fastcgi_param REQUEST_URI$request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL$server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWAREnginx; fastcgi_param REMOTE_ADDR$remote_addr; fastcgi_param REMOTE_PORT$remote_port; fastcgi_param SERVER_ADDR$server_addr; fastcgi_param SERVER_PORT$server_port; fastcgi_param SERVER_NAME$server_name; fastcgi_param REMOTE_USER$remote_user; And the cgi script as #!/usr/bin/fossil directory: /srv/fossil/ notfound: http://localhost/invalid.html Where /srv/fossil is where I keep the .fossil files. Stephen C On 04/03/14 01:34 PM, Jon wrote: New to fossil and am trying to stand up a simple fossil server fronted by nginx. I've read the website doco, spelunked the mailing list, and have tweaked configurations a bit. All to no avail. I want to use fossil and nginx to make multiple repos available via base url's such as http://somewhere.mydomain.com/partner/repo-name in which fossil repos live under root-owned /srv/fossils/partner as *.fossil files With limited nginx configuration tweaking the best I've been able to achieve is a fossil repo main page but with invalid links (e.g. - http://127.0.0.1:8080/logicalmaps/index) pointing to the fossil server running in localhost mode. Via the following I see fossil redirects which likely means a more complex nginx config. $ curl -I http://stimpy/partner/logicalmaps HTTP/1.1 302 Moved Temporarily Server: nginx Date: Tue, 04 Mar 2014 18:03:09 GMT Content-Type: text/html; charset=utf-8 Content-Length: 80 Connection: keep-alive Location: http://stimpy/logicalmaps/index X-Frame-Options: SAMEORIGIN Cache-control: no-cache Below are the relevant snippets of my original fossil and nginx config that does not work. Before I spend more time (likely in the wrong direction) I'd appreciate your guidance as to the best way to setup fossil + nginx. I'd prefer nginx in reverse http proxy mode but SCGI is also fine. Once the base config works, I'll move to HTTPS. Jon BASIC FOSSIL and NGINX CONFIGURATION # upstart script - /etc/init/fossil.conf description Fossil DVCS Server start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/local/sbin/fossil server --localhost /srv/fossils/partner # main nginx config - /etc/nginx/nginx.conf ... http { include /etc/nginx/mime.types; default_type application/octet-stream; ... include /etc/nginx/conf.d/*.conf; } # default nginx config - /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name stimpy; server_tokens off; ... location / { root /usr/share/nginx/html; index index.html index.htm; } ... location /partner/ { proxy_pass http://127.0.0.1:8080/; proxy_connect_timeout 30s; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ... } jon@stimpy:~$ ps aux | egrep 'nginx|fossil' root 2279 0.0 0.0 2584 372 ?Ss Feb26 0:00 /usr/local/sbin/fossil server --localhost /srv/fossils/partner root 16849 0.0 0.2 31208 2652 ?S12:56 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx16850 0.0 0.1 31564 1656 ?S12:56 0:00 nginx: worker process ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
The following is based on the fact that I do not know whether there are any undocumented or poorly-documented features that would provide the described functionality, or whether I have simply failed to see what was right in front of my face after spending a fair bit of time staring at Fossil's help output. ## Related Questions Is there some way to merge history from another fossil repository into a brand new fossil repository created with fossil init locally? This would help me by allowing me to clone the repository from the server and import from Git to create a new repository, then merge from that new repository into the repository cloned from the server, then push changes to the repository on the server. Is there some way to push from a fossil repository to an arbitrary brand-new repository across HTTP(S)? This would help me by allowing me to import from Git to create a new repository, then simply push from the new Fossil repository to the existing (empty) repository on the server. The ability to do this seems like it would have many, many other potential uses in truly distributed version control workflows, too -- even if it only pushed (with all history) as a branch. Is there some way to create a repository so it does not have a dated initial commit just because the init command was used? It seems odd to me that the only DVCS that I have seen that cannot init a repository without an implicit initial commit is Fossil, and this would likely solve my present problem as well. Is there some way to revert the state of an entire repository, involving all files, to an earlier state? It never occurred to me there may not be, and this was obviously part of my earlier attempt to make the import work out for my needs. It seems that the ability to roll back the entire repository to an earlier state should exist for a variety of reasons, perhaps relegating anything undone by the rollback to a dead/closed branch. ## Unrelated Questions Is there any chance that Fossil will get a manpage or two at some point? -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 10:58 PM, Chad Perrin c...@apotheon.net wrote: Is there any chance that Fossil will get a manpage or two at some point? Perhaps this suffices (or provides a start): http://fossil-scm.org/index.html/help The /help page can also be accessed locally via (fossil ui). -- - stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do. -- Bigby Wolf ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 03:49:26PM -0500, James Turner wrote: On Tue, Mar 04, 2014 at 03:47:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil Doesn't the git import create the fossil repo for you? Maybe you should try doing the import into a fossil repo that doesn't already exist. According to the fossil help import documentation, --incremental should work with an existing Fossil repository rather than creating a new one. Then you can scp that repo to your server and clone it down. This is an operation that would be much more convenient to accomplish the way I've already tried to do it, in current circumstances, and there may be a fair number of similar import/fork needs in the future, which means that it makes a lot more sense for me to figure out how to get the import into an existing repository to work -- especially because people who do not have scp access to the server at the moment may also be doing some of this work. If I just do it the way you describe, I would need to do all of this work for every instance, which is not a very reasonable state of affairs here. In any case, I would much rather (help) fix a problem, or learn how to do it right if the error is mine rather than the software's, than just sweep the problem under the rug and use a work-around. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 11:16:07PM +0100, Stephan Beal wrote: On Tue, Mar 4, 2014 at 10:58 PM, Chad Perrin c...@apotheon.net wrote: Is there any chance that Fossil will get a manpage or two at some point? Perhaps this suffices (or provides a start): http://fossil-scm.org/index.html/help The /help page can also be accessed locally via (fossil ui). I'm aware of the web help. I'm just wondering about whether it'll ever get a manpage. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil Is there some reason you can't do fossil clone on the server? Alternately, try: $ git fast-export --all |ssh user@server fossil import\ --git --incremental /path/to/projectname.fossil I imported from Git: $ git fast-export --all | fossil import --git --incremental \ /path/to/projectname.fossil I opened the repository: $ mkdir projectname; cd projectname fossil open /path/to/projectname.fossil No files appear. I looked at the timeline: That is surprising to me. Though I have not used this feature. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 7:12 PM, Ron Wilson ronw.m...@gmail.com wrote: Alternately, try: $ git fast-export --all |ssh user@server fossil import\ --git --incremental /path/to/projectname.fossil Oops. Don't use the --incremental for the initial import. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 04, 2014 at 07:12:54PM -0500, Ron Wilson wrote: On Tue, Mar 4, 2014 at 3:43 PM, Chad Perrin c...@apotheon.net wrote: Trying to fork/import from Git is kinda problematic. I started by creating a new project on a server: $ fossil init projectname.fossil I then cloned locally: $ fossil clone u...@uri.for/projectname/index.cgi projectname.fossil Is there some reason you can't do fossil clone on the server? Alternately, try: $ git fast-export --all |ssh user@server fossil import\ --git --incremental /path/to/projectname.fossil Both of those solutions would surely work in this case (as long as the incremental option works on the server, but not in cases where the same would be done by someone with commit access but no SSH filesystem/shell access (which is likely in future cases). -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] equivalent to git submodule
Is there a good way to do the same thing Git's submodule command does, to allow multiple repositories to be used to compose a single, larger project source tree? From the git-submodule manpage: Submodules allow foreign repositories to be embedded within a dedicated subdirectory of the source tree, always pointed at a particular commit. They are not to be confused with remotes, which are meant mainly for branches of the same project; submodules are meant for different projects you would like to make part of your source tree, while the history of the two projects still stays completely independent and you cannot modify the contents of the submodule from within the main project. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
Jan Nijtmans wrote: That said, I would prefer too the default being NOT to ignore whitespace, that's what most other SCM's do. Except for annotations, then it is useful to ignore all whitespacing. Something like: http://fossil-scm.org/index.html/info/28b39cc516 Is that getting nearer to what's really desired? I've made a few more changes. I'm happy with where it's at now unless you notice anything else. Thanks, Jan. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] equivalent to git submodule
On Tue, Mar 4, 2014 at 9:45 PM, Chad Perrin c...@apotheon.net wrote: Is there a good way to do the same thing Git's submodule command does, to allow multiple repositories to be used to compose a single, larger project source tree? The only thing (currently) like this in Fossil is the fossil open --nested command, which allows you to create a checkout for repository nested inside a checkout for another repository. (Normally, if you try to do fossil open while you are within another check-out, the open fails with an error.) A nested check-out does NOT keep track of which versions of which repositories are associated with each check-in. Nor are there convenient commands that fetch an automatically open nested check-outs. The only thing this allows is for you to construct a tree of checkouts. But maybe that is enough for what you are trying to do. I dunno -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] equivalent to git submodule
On Tue, Mar 04, 2014 at 09:56:31PM -0500, Richard Hipp wrote: On Tue, Mar 4, 2014 at 9:45 PM, Chad Perrin c...@apotheon.net wrote: Is there a good way to do the same thing Git's submodule command does, to allow multiple repositories to be used to compose a single, larger project source tree? The only thing (currently) like this in Fossil is the fossil open --nested command, which allows you to create a checkout for repository nested inside a checkout for another repository. (Normally, if you try to do fossil open while you are within another check-out, the open fails with an error.) A nested check-out does NOT keep track of which versions of which repositories are associated with each check-in. Nor are there convenient commands that fetch an automatically open nested check-outs. The only thing this allows is for you to construct a tree of checkouts. But maybe that is enough for what you are trying to do. I dunno Someone I know was asking about it. I wondered if there was more available than --nested for that, for purposes of things like being able to automate cloning of submodules or at least getting a canonical list of submodules for a project to help keep a distributed team on the same page in terms of managing the whole source tree split across repositories, if only for the purpose of being able to advise my acquaintance intelligently. Thanks. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] nginx fronting fossil best practices?
Thank you. Your setup is fastcgi, not scgi, correct? I'm now unclear about the scgi setup. From the wiki I thought scgi requires just two pieces. First, start fossil like fossil --localhost --scgi /srv/fossils/partner and second, set an nginx location similar to location ~ ^/partner/ { include scgi_params; scgi_pass 127.0.0.1:8080; scgi_param SCRIPT_NAME /partner; } A stub cgi script is not needed. I'll tinker with scgi tomorrow, but even if I get it working, I don't yet see how scgi ensures fossil generates correct links to it's gui while that route back user url's similar to http://somewhere.mydomain.com/partner/repo-name/... back to the fossil server listening to sgci protocol traffic on127.0.0.1:8080. With scgi I think I still need to configure nginx `location` trickery to handle uri and :80 to 127.0.0.1:8080 issues. Feels like I'm missing a piece of the puzzle and overcomplicating nginx + fossil. On Tue, Mar 4, 2014 at 4:15 PM, Stephen Cripps 9...@queensu.ca wrote: Hi Jon, I went through the process of setting up fossil behind NGINX the same way your looking for, where you can specify the repository depending on the url. At first I tried the proxy method with xinetd, but had to play with path's of the actual repositories before it would work. The solution I went with was to use scgi with configuration similar to the following: In /etc/nginx.conf location ~ ^/fossil(.*)$ { fastcgi_passunix:/run/fcgiwrap.sock; include fossil_fcgi_params; fastcgi_param SCRIPT_NAME /fossil; } In fossil_fcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME$fastcgi_script_name; fastcgi_param REQUEST_URI$request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL$server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWAREnginx; fastcgi_param REMOTE_ADDR$remote_addr; fastcgi_param REMOTE_PORT$remote_port; fastcgi_param SERVER_ADDR$server_addr; fastcgi_param SERVER_PORT$server_port; fastcgi_param SERVER_NAME$server_name; fastcgi_param REMOTE_USER$remote_user; And the cgi script as #!/usr/bin/fossil directory: /srv/fossil/ notfound: http://localhost/invalid.html Where /srv/fossil is where I keep the .fossil files. Stephen C On 04/03/14 01:34 PM, Jon wrote: New to fossil and am trying to stand up a simple fossil server fronted by nginx. I've read the website doco, spelunked the mailing list, and have tweaked configurations a bit. All to no avail. I want to use fossil and nginx to make multiple repos available via base url's such as http://somewhere.mydomain.com/partner/repo-name in which fossil repos live under root-owned /srv/fossils/partner as *.fossil files With limited nginx configuration tweaking the best I've been able to achieve is a fossil repo main page but with invalid links (e.g. - http://127.0.0.1:8080/logicalmaps/index) pointing to the fossil server running in localhost mode. Via the following I see fossil redirects which likely means a more complex nginx config. $ curl -I http://stimpy/partner/logicalmaps HTTP/1.1 302 Moved Temporarily Server: nginx Date: Tue, 04 Mar 2014 18:03:09 GMT Content-Type: text/html; charset=utf-8 Content-Length: 80 Connection: keep-alive Location: http://stimpy/logicalmaps/index X-Frame-Options: SAMEORIGIN Cache-control: no-cache Below are the relevant snippets of my original fossil and nginx config that does not work. Before I spend more time (likely in the wrong direction) I'd appreciate your guidance as to the best way to setup fossil + nginx. I'd prefer nginx in reverse http proxy mode but SCGI is also fine. Once the base config works, I'll move to HTTPS. Jon BASIC FOSSIL and NGINX CONFIGURATION # upstart script - /etc/init/fossil.conf description Fossil DVCS Server start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/local/sbin/fossil server --localhost /srv/fossils/partner # main nginx config - /etc/nginx/nginx.conf ... http { include /etc/nginx/mime.types; default_type application/octet-stream; ... include /etc/nginx/conf.d/*.conf; } # default nginx config - /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name stimpy; server_tokens off; ... location / { root /usr/share/nginx/html; index index.html index.htm; } ... location /partner/ { proxy_pass http://127.0.0.1:8080/; proxy_connect_timeout 30s;
Re: [fossil-users] nginx fronting fossil best practices?
On Tue, Mar 4, 2014 at 10:27 PM, Jon jon.for...@gmail.com wrote: Thank you. Your setup is fastcgi, not scgi, correct? I'm now unclear about the scgi setup. From the wiki I thought scgi requires just two pieces. First, start fossil like fossil --localhost --scgi /srv/fossils/partner and second, set an nginx location similar to location ~ ^/partner/ { include scgi_params; scgi_pass 127.0.0.1:8080; scgi_param SCRIPT_NAME /partner; } A stub cgi script is not needed. I'll tinker with scgi tomorrow, but even if I get it working, I don't yet see how scgi ensures fossil generates correct links to it's gui while that route back user url's similar to http://somewhere.mydomain.com/partner/repo-name/... back to the fossil server listening to sgci protocol traffic on127.0.0.1:8080. With scgi I think I still need to configure nginx `location` trickery to handle uri and :80 to 127.0.0.1:8080 issues. Feels like I'm missing a piece of the puzzle and overcomplicating nginx + fossil. I've only used nginx once, and that was to test the SCGI code of Fossil when I was writing it. I didn't have to do anything special, other than setting the SCRIPT_NAME scgi_param. The links that the GUI generates are either relative, or else they are use the HTTP_HOST scgi_param, depending on context. http://www.fossil-scm.org/fossil/doc/tip/www/server.wiki#scgi shows my complete setup. It just works. Don't try to over-think it. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] fossil/stunnel question
Actually, it's really an stunnel question. I am experimenting with using stunnel on my server for fossil access (I currently use Apache+SSL). If the stunnel is configured to run in foreground, everything is fine; but if not, it fails with a read error. I assume this is a technical problem I can fix in the stunnel.conf, but so far I haven't had success. Any suggestions? Thanks, Ron -- For confidential messages, please use my GnuPG key http://ronware.org/gpg_key.html signature.asc Description: OpenPGP digital signature ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
2014-03-05 7:25 GMT+01:00 Andy Bradford amb-fos...@bradfords.org: My most heavily used Fossil includes a lot of Python and with the recent changes, Fossil annotate/blame now renders a function entirely devoid of whitespace: def f(a): b = a + 1 return b That's a bug which still needs to be fixed. I'll have a look at that. For the annotate pages I would prefer the default behavior to be to ignore whitespaces. See for example the following lines: http://fossil-scm.org/index.html/artifact/c31113fe7e?ln=1711-1713 Then annotate this page and see who wrote those lines??? It will give you the answer: joel. But ... If you annotate the previous version of this file, you will see that the real author of those lines is dhr: http://fossil-scm.org/index.html/info/a2e7472d0fa04132 All joel did was remove an if() around those lines, thereby changing the indent. Does that make joel the author? I think not! The diff-eolws branch gives the correct answer. Your addition gives the correct answer after pressing the Ignore Whitespace button. Regards, Jan Nijtmans ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Tue, Mar 4, 2014 at 7:24 PM, Chad Perrin c...@apotheon.net wrote: Both of those solutions would surely work in this case (as long as the incremental option works on the server, but not in cases where the same would be done by someone with commit access but no SSH filesystem/shell access (which is likely in future cases). If you mean using a hosting service, then I would think the service either provides SSH access or a way transfer existing project repositories to the service's hosts, possibly providing a means to clone from your local Fossil repository to the server. Indeed, making the server side repository a clone of your local repository is probably better. Then there will be no question that you can push further imports to the server repository. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Missing highlighted space changes in diff?
Thus said Jan Nijtmans on Wed, 05 Mar 2014 07:38:05 +0100: All joel did was remove an if() around those lines, thereby changing the indent. Does that make joel the author? I think not! The diff-eolws branch gives the correct answer. Your addition gives the correct answer after pressing the Ignore Whitespace button. It makes Joel the author of the most recent change to that line, yes, and Fossil has not lost the history of who made the non-whitespace changes. Also, clicking the button to reveal the non-whitespace change is no more ``correct'' than if Joel had instead changed ``Listening'' to ``listening'' on one of those lines. It would still show Joel as the ``author'' of that line, but really he simply made a minor modification to it while drh was the original author. Should Fossil be concerned about authors of bytes in annotate/blame? What is the ``correct answer'' if not the current line of text that exists in checkin a2e7472d0fa04132? Andy -- TAI64 timestamp: 40005316c98a ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] importing/forking from Git
On Wed, Mar 05, 2014 at 01:40:49AM -0500, Ron Wilson wrote: On Tue, Mar 4, 2014 at 7:24 PM, Chad Perrin c...@apotheon.net wrote: Both of those solutions would surely work in this case (as long as the incremental option works on the server, but not in cases where the same would be done by someone with commit access but no SSH filesystem/shell access (which is likely in future cases). If you mean using a hosting service, then I would think the service either provides SSH access or a way transfer existing project repositories to the service's hosts, possibly providing a means to clone from your local Fossil repository to the server. I'm talking about a distributed team, where not everyone has SSH shell access or the ability to directly change anything on the filesystem, but they all have commit access to a specific set of repositories. This means, for instance, that they could clone from, and sync with, an existing repository -- but not all could create or delete entire repositories. -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users