views:

54

answers:

1

So I'm having a bit of a structure problem with my repositories. I hope you guys can give me a few pointers on how to go forward with this.

Setup;

I have one large web project, with several opensource solutions integrated. I have it all in a Bazaar repository.

Problem;

I want two or more "configs" of this site now, meaning the database and css/templates must be different. How do I branch of this properly? I don't want my "base web project" in two or more repositories.

Putting another config database in another repo is fine, but problem arise when I'm moving out the .css from the base repo.

A quick search for ".css" finds around 200 files. I could clean this up, but then I will have a integration hell whenever I update my opensource directories.

Idea;

My current idea is to have one basesite-repo without the css files, and another config-repo with the database for the basesite-repo and all 200 .css files.

This works fine whenever I want to checkout the site and set it up, two checkouts in the same directory. Should work, right?

But how do I solve it when I work on the site(meaning base+config) locally? having two branches in the same directory? I foresee that releasing bug fixes will be a pain...if its even supported(?)

How my idea structure could look like;

//base repo
<base site repo>
 -<admin>
     -index.php
 -<user>
     -index.php
...
 -<component>
      -<helper_v1.43>
          -index.php

//config 1 repo
<config1-repo>
 -<database>
 -<component>
      -<helper_v1.43>
          -<template>
              -main.css
-<admin>
  -admin.css
...
 -<user>
   -<timemodule>
       -<template>
           -time.css

This problem must have been solved several times over the last decade. But still I'm pretty lost, so any guidance would be appreciated.

+1  A: 

Many source control systems support the idea of branches containing largely identical files. It might not be a problem for you to have the base files in one branched repository.

You can also create branches just for the config stuff in the second repo. switch between branches before you apply your fixes.

Another approach, if you have any sort of build or checkout process, check out the two branches (or two repositories) of the config stuff to separate directories, and then copy the correct one to the right place during your build.

davenpcj