Hi, I''m working on an app designed to make Subversion integration with Rails as seamless as possible. I''m also trying to work out the ideal development workflow for Subversion/Rails. Here''s what I''ve come up with so far: - create one repository for an application - have a ''trunk'' directory for development - have a ''tags'' directory for when significant development milestones are reached Then, each application would have two URLs, the main URL (such as myapp.com) and the development URL (such as dev123.railsapphosting.com). You would use a web-gui to link the main URL up with a subdirectory under ''tags'' (such as tags/version1) and the development URL would be linked up with the trunk directory. Further, for the development URL there can be a post-commit hook in the repository so that the development URLs web-root (which would be a working directory) is automatically updated whenever something is commited to ''trunk''. The web gui will also allow for an easy point-and-click way to turn specific revisions of ''trunk'' into ''tags''. I''m just looking for any comments/suggestions on this workflow, and whether any more seasoned Subversion/Rails developers can suggest a better way of going about it. I''m happy to open-source either part or all of what I come up with. Cheers -- Ben Myles railsapphosting.com
hi, have you checked rscm http://rscm.rubyforge.org/ and collaboa http://collaboa.org ? collaboa is using the subversion swig bindings for ruby Thom On 8/10/05, Ben Myles <ben.myles-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi, > > I''m working on an app designed to make Subversion integration with > Rails as seamless as possible. I''m also trying to work out the ideal > development workflow for Subversion/Rails. > > Here''s what I''ve come up with so far: > > - create one repository for an application > - have a ''trunk'' directory for development > - have a ''tags'' directory for when significant development milestones > are reached > > Then, each application would have two URLs, the main URL (such as > myapp.com) and the development URL (such as > dev123.railsapphosting.com). > > You would use a web-gui to link the main URL up with a subdirectory > under ''tags'' (such as tags/version1) and the development URL would be > linked up with the trunk directory. Further, for the development URL > there can be a post-commit hook in the repository so that the > development URLs web-root (which would be a working directory) is > automatically updated whenever something is commited to ''trunk''. > > The web gui will also allow for an easy point-and-click way to turn > specific revisions of ''trunk'' into ''tags''. > > I''m just looking for any comments/suggestions on this workflow, and > whether any more seasoned Subversion/Rails developers can suggest a > better way of going about it. I''m happy to open-source either part or > all of what I come up with. > > Cheers > > -- > Ben Myles > railsapphosting.com > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Hi Ben, I agree with everything you said. The only point I would like to alter is your production "released" site should just be exported from subversion using the ''export'' command. That way, you will not have all of the .svn directories... which could possibly be visible from the website if you went to myapp.com/.svn for instance (although the routes may prevent this). Tom On 8/10/05, Thomas Riboulet <riboulet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> hi, > > have you checked rscm http://rscm.rubyforge.org/ and collaboa > http://collaboa.org ? > collaboa is using the subversion swig bindings for ruby > > Thom > > On 8/10/05, Ben Myles <ben.myles-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > Hi, > > > > I''m working on an app designed to make Subversion integration with > > Rails as seamless as possible. I''m also trying to work out the ideal > > development workflow for Subversion/Rails. > > > > Here''s what I''ve come up with so far: > > > > - create one repository for an application > > - have a ''trunk'' directory for development > > - have a ''tags'' directory for when significant development milestones > > are reached > > > > Then, each application would have two URLs, the main URL (such as > > myapp.com) and the development URL (such as > > dev123.railsapphosting.com). > > > > You would use a web-gui to link the main URL up with a subdirectory > > under ''tags'' (such as tags/version1) and the development URL would be > > linked up with the trunk directory. Further, for the development URL > > there can be a post-commit hook in the repository so that the > > development URLs web-root (which would be a working directory) is > > automatically updated whenever something is commited to ''trunk''. > > > > The web gui will also allow for an easy point-and-click way to turn > > specific revisions of ''trunk'' into ''tags''. > > > > I''m just looking for any comments/suggestions on this workflow, and > > whether any more seasoned Subversion/Rails developers can suggest a > > better way of going about it. I''m happy to open-source either part or > > all of what I come up with. > > > > Cheers > > > > -- > > Ben Myles > > railsapphosting.com > > _______________________________________________ > > Rails mailing list > > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > > http://lists.rubyonrails.org/mailman/listinfo/rails > > > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Good ideas. Shortly after my post I discovered SwitchTower and it seems fantastic. I''m going to focus on integrating that with a web front-end to make it a no-brainer to use. I''m also going to make Collaboa a default feature for providing web access to the Subversion repository. Should be a very nice setup once I finish working on it :) Ben On 8/10/05, Tom Davies <atomgiant-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi Ben, > > I agree with everything you said. The only point I would like to > alter is your production "released" site should just be exported from > subversion using the ''export'' command. That way, you will not have > all of the .svn directories... which could possibly be visible from > the website if you went to myapp.com/.svn for instance (although the > routes may prevent this). > > Tom
Look at the deploy script from http://jamis.jamisbuck.org/articles/2005/07/14/application-deployment- with-rails. The way I have it set up, I link all the .deployrc files in the user subdirectories to a common file in /etc. You can then edit /path/to/repo/hooks/post-commit.tmpl like this: #!/bin/bash /path/to/script/deploy mysite_dot_com with this in my /etc/.deployrc file: mysite_dot_com: server: dev.mysite.com username: username password: password checkout: svn export http://www.mysite.com/svn/mysite_dot_com/trunk directory: /path/to/public_html after_commit: - # restart apache/lighttpd/whatever You could do a similar call from a cgi script (heck, you could even write it in ruby) if you want your web based interface to do the same. - Ben On Aug 9, 2005, at 11:51 PM, Ben Myles wrote:> Hi, > > I''m working on an app designed to make Subversion integration with > Rails as seamless as possible. I''m also trying to work out the ideal > development workflow for Subversion/Rails. > > Here''s what I''ve come up with so far: > > - create one repository for an application > - have a ''trunk'' directory for development > - have a ''tags'' directory for when significant development milestones > are reached > > Then, each application would have two URLs, the main URL (such as > myapp.com) and the development URL (such as > dev123.railsapphosting.com). > > You would use a web-gui to link the main URL up with a subdirectory > under ''tags'' (such as tags/version1) and the development URL would be > linked up with the trunk directory. Further, for the development URL > there can be a post-commit hook in the repository so that the > development URLs web-root (which would be a working directory) is > automatically updated whenever something is commited to ''trunk''. > > The web gui will also allow for an easy point-and-click way to turn > specific revisions of ''trunk'' into ''tags''. > > I''m just looking for any comments/suggestions on this workflow, and > whether any more seasoned Subversion/Rails developers can suggest a > better way of going about it. I''m happy to open-source either part or > all of what I come up with. > > Cheers > > -- > Ben Myles > railsapphosting.com > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails > >___________________ Ben Jackson Diretor de Desenvolvimento +55 (21) 9997-0593 ben-p14LI7ZcAE/pVLaUnt/cCQC/G2K4zDHf@public.gmane.org http://www.incomumdesign.com