On 13-Aug-08, at 4:26 PM, Avi Bryant wrote:
- For your project, create a separate file repository for each
developer. So, Lukas, if you, Colin and I were all collaborating on something, we would have lr.mcr, avi.mcr, and cwp.mcr. 2. Set up a script which rsyncs these three files to a shared location. Each developer should have this script set up to *upload* their own mcr and to *download* everyone else's. 3. Commit to your own repository (I would commit to avi.mcr), and then run the script. Or, have a cron job which runs it every few minutes.
Since the project has all three repos added, everyone's versions should show up together in the UI. Since each developer is only modifying his own file, there shouldn't be any conflicts at the file level. Since the .mcr files are always only appended to, rsync should be able to update them quite efficiently (right?). And although there would be some duplication (each developer's repo would contain its own copy of most of the method versions), it would be O(developers) not O(versions) as MC1 is.
I like it!
AFAICT, the only hitch is that the current version of MC2 will always commit to all repositories in the project. Clearly there are all sorts of situations where that's not the right behavior. So far I've just punted on that for lack of specific use-cases. So to make this work, we just need to make it possible to configure repositories as read-only.
I'll implement that and we can try it.
Colin