git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Koprowski <jan.koprowski@gmail.com>
To: git@vger.kernel.org
Subject: Solve continuous integration (pending head / commit queue) problem  using git
Date: Fri, 12 Feb 2010 17:37:34 +0100	[thread overview]
Message-ID: <c41cd75d1002120837t20f2a47fi41e8c67245c4284c@mail.gmail.com> (raw)

Hi !

  This is my first mail on the list so hello everyone :)
  I'am currently write my MA. Part of my thesis is looking for some
way to stay "master" stable.
  First assumption is simple: Control version system make all dirty
job - programmers can't "stop" or "break" all procedure and work in
natural ways. We can't assume that programmer use some custom hooks on
their side or add some addition parameters to git commands.
  Second assumption  is that programmer can't compile source code one
their machine for some reasons. Only way to compile is some other way
- for example use CruiseControl or Hudson or some CI tools. This isn't
really matter in my question now.
  Third assumption: Code cloned from repository is stable = compiling
well and pass all tests.
  Forth assumption: compiling is testing are very very very fast.

What I meen "natural way of work" by programmer. They *clone*
repository (or *pull* changes) from some central repository. Then do
some stuff with code on their working copy and *push* their changes.
Ok but - their don't know is code working well. And this is a problem.
I know there is some options: XP pair programming, automated static
code analysis, code review and others ... but this is not the point.
In my "configuration" there are some frequently scheduled build of
system automated by some tool. Tool just get all stuff from repo,
compile all stuff, running tests (if compiling successes) and if
sending e-mail.
But SCM should "somehow" distinct unstable commits from stable commits
(after compiling).

Now. My idea. There is some revision tagged as "stable". *Clone* and
*pull* operations is somehow "overloaded" from server side and always!
return last revision tagged as stable. After compiling external tool
just move tag to another revision which pass all tests. Of course
there is some additional parameter (for example --last or --unstable)
which can clone fine way of repository.

Two questions.
1) Maybe I try to invent the wheel again. Is there any way to take the
effect without overloading standard git behaviours.
2) If not how overload git behaviors on git "server side" repo?

Thanks in advance!
-- 
><> Jan Koprowski [696775174] GSM

             reply	other threads:[~2010-02-12 16:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-12 16:37 Jan Koprowski [this message]
2010-02-12 17:42 ` Solve continuous integration (pending head / commit queue) problem using git Avery Pennarun
2010-02-12 18:07   ` Jan Koprowski
2010-02-13  7:04     ` Jan Koprowski
2010-02-13 22:11   ` Daniel Barkalow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c41cd75d1002120837t20f2a47fi41e8c67245c4284c@mail.gmail.com \
    --to=jan.koprowski@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).