Thread (9 messages) flat view 9 messages, 6 authors, 2016-06-15

Re: Multiple checkouts active for the same repository

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:36

On Fri, Sep 24, 2010 at 09:29, Gustavo Narea
[off-list ref] wrote:
We're currently migrating from another DVCS.
Which one?
We are a team of Web developers and testers working on an application.
There are always a few development branches and a stable branch, and
testers need all the branches with the very latest code available at all
times.

The way we handle it at the moment is very simple because the server
hosting the remote repository is the same that hosts the deployed
instances of each branch, so when we push to the remote repository, the
code for each site is automatically updated.

We use the following structure:
/srv/repositories/project/branch1
/srv/repositories/project/branch2
/srv/repositories/project/branch3

Is there any simple way to do this with Git? I can only think of two
options that involve hooks:

   * Have a hook that exports each branch to a directory like
     /srv/repositories/project/branchN
   * Have one Git repository per branch, so that each repository have a
     different checkout active. Then the main remote repository will
     have post-receive hooks that trigger a pull on each individual

I'm not particularly happy with either way. Is there a better solution?
If you really need this the best solution is to just `git clone` the
project multiple times and check out each branch in its own dir. Then
have some shellscript to update them all.

But just using the Git workflow would be better.
Apart from the situation I describe in the initial email, there's
another limitation in the development environment: Our IDE, Eclipse +
Pydev, assumes each project (i.e., branch/checkout) to be on different
directories and each project should have different settings (e.g., paths
to dependencies, which could be different), but with GIt everything
would be a single project because it's all on the same path.
Can't you just modify your build environment to check the output of
`git symbolic-ref HEAD` or equivalent, instead of checking paths?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help