views:

59

answers:

1

Greetings! :-)

I would like to describe a workflow strategy with some gaps in it, and I would be glad if you could fill in the gaps and otherwise give comments. If admins think that this does not validate as a question, then please delete away.

I am working on a webproject having files with PHP, Javascript (jQuery), HTML, CSS and postgresql code for in-database functions, table creation and configuration. All files are changed frequently. I use Apache.

This is what I want:

  • Introduce revision control.
  • Use build files for managing compilation and revision control.
  • Start using a proper IDE.
  • Be able to hack on my stationary and laptop with little time wasted on keeping code and IDE project configurations synchronized.
  • Have a setup for the project so some friends (approx 4-5) may join the project in the future.

This is what I am planning to start to use:

  • Bazaar for revision control and "project distribution".
  • Ant for build files.
  • Eclipse setup with proper plugins for managing Bazaar and Ant.

With Bazaar I intend to put code files, build files and even Eclipse project configuration files (configuration files of the project that I create in Eclipse to work with the webproject) under revision control. That way I can pull all that stuff from my stationary to my laptop via Bazaar.

Since I also put Eclipse's project conf files under revision control, I expect that I can without hazzle immediately open the Eclipse project directly on my laptop. So even if I make modifications to the project settings in Eclipse this should also be synchronized over laptop and host.

But I do have a few questions. Do you know how I should use bazaar so that I am notified or stopped when I try to modify the code on my stationary but have forgotten to push/check-in modifications from my laptop?

Also how should I setup Bazaar so that others can easily join the project in the future? I dont like using a service like launchpad, and would like my stationary to be the server. Is it not a bit risky to do it through ssh because I would have to create a new user account on my stationary each time a new user wants to join in?

Thoughts? Comments? It would be appreciated.

+1  A: 

On the first question, you should consider using "checkouts", also called bound branches. That makes bzr behave more like svn in that every commit automatically goes to the "server" and you can't forget to push. Of course, bzr can't really detect if you forget to commit something.

On the second question, you can set up a bzr server that runs over HTTP/DAV and uses the web server's authentication methods. However, if you don't really like other people using your machine as a server, you might want to consider using a totally distributed approach, where your codevelopers publish their own branches and you pull in the things you want.

The Bazaar documentation is quite good and has the details on these topics.

Peter Eisentraut