git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Multiple checkouts active for the same repository

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Sep 24, 2010, 13:07 UTC
Message-ID
<AANLkTikvyM9wXrewRiG7OdBp5LMfnHSkA9dqZGT1Twpc@mail.gmail.com>
In-Reply-To
<4C9C6F8B.3090806@tech.2degreesnetwork.com>

On Fri, Sep 24, 2010 at 09:29, Gustavo Narea <gnarea@tech.2degreesnetwork.com> wrote:

> We're currently migrating from another DVCS.
Which one?
Show 25 quoted lines
> 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.
Show 6 quoted lines
> 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?

Previous: Gustavo NareaNext: Gustavo Narea
Message 3 of 9 in “Multiple checkouts active for the same repository”
  1. Gustavo NareaSep 24, 2010
  2. Gustavo NareaSep 24, 2010
  3. Ævar Arnfjörð BjarmasonSep 24, 2010
  4. Gustavo NareaSep 24, 2010
  5. Julian PhillipsSep 24, 2010
  6. Joshua JensenSep 24, 2010
  7. Gustavo NareaSep 27, 2010
  8. Martin PetterssonSep 27, 2010
  9. Jakub NarebskiSep 24, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.