On Fri, 12 Feb 2016 10:32:59 -0800 (PST)
Sarvi Shanmugham <sarvil...@gmail.com> wrote:

>     I am  looking to implement a workflow that involves
>    1. Developers committing a sequence of change sets, into a staging 
> repository.
>    2. Where these change sets go through some sanity testing at
> periodic points, say every 10 commits
>    3. If there is a failure, we would like to implement automatic 
> bisection, building and testing to find the bad patch that is causing
> the tests to fail.
>    4. We would like to now be able to completely eject/remove the 
> commit/patch from the staging git repository, as if it never went in,
> as well as any other commits that might be related to it that came in
> after that, and NOT just attempt to reverse it by committing a
> reversal patch at the end.

Well, while I was writing my original reply I was feeling like sensing
an overengineering smell ;-)

After sending the reply, it dawned on me -- why I was feeling like that.
It looks like you're trying to wedge "integration" (staging, checking,
weeding out bad commits) with "sharing" (the repo where everyone pushes
to and fetches from).  This might be a bad idea--usually instilled by
a centralized VCS where you have only a single repo.  In [1], Linus
Torvalds explains to the KDE folks how they could go about converting
their centralized workflow into a semi-hierarchical *set* of distinct
Git repos.  I feel like this might strike a chord in you: it might turn
out you could get better luck with having a dedicated
staging/integration repo which occasionally pushes "known-good" history
to some other--"sharing"--repo, which is used by the devs to fetch work
done by others.

1. http://lwn.net/Articles/246381/

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to