Loading ...
Sorry, an error occurred while loading the content.

Re: [XP] Re: the integration machine

Expand Messages
  • Steven Shaw
    ... From: Russell Gold To: Sent: Saturday, May 27, 2000 12:00 AM Subject: [XP] Re: the integration machine
    Message 1 of 1 , May 31, 2000
    • 0 Attachment
      ----- Original Message -----
      From: Russell Gold <russgold@...>
      To: <extremeprogramming@egroups.com>
      Sent: Saturday, May 27, 2000 12:00 AM
      Subject: [XP] Re: the integration machine


      > On Fri, 26 May 2000 13:28:17 +1000, steven.shaw@...:
      >
      > >The are a couple of things I haven't "got" yet from Kent Beck's Extreme
      > >Programming Explained. One of them is the "integration machine". I could
      only
      > >remember where the first reference is. From the chapter, 'A Development
      > >Episode':
      > >
      > > "We notice that the integration machine is free3. We load the
      latest
      > >release. Then we load our changes.
      > > Then we run all the test cases, our new ones and the tests everyone
      else
      > >has ever written...."
      > >
      > >What is the integration machine for?
      > >
      > >We use CVS for source code control. We don't have an integration machine.
      You
      > >check out a version, do changes, run tests etc. Then for integration, you
      do a
      > >'cvs update' to get anyone else's changes. Retest, fix anything broken,
      until
      > >every test runs. Then 'cvs ci' your changes. We have a regular batch job
      that
      > >does 'cvs co', builds the project, and runs all the tests, just to be
      > >sure. [I'd
      > >be interested to hear about anyone's experience with Aegis source code
      > >control,
      > >particularly in an XP context].
      >
      > How do you handle the case when two people try to integrate
      simultaneously?
      > If you are pushing your changes in, have to stop to resolve some
      conflicts,
      > and while you are doing it, somebody else starts to push their changes in?

      It is easy to serialise our checkins, since there are only 4 coders. I
      usually do my checkins in one go (i.e. at top level). If you get a conflict
      this way, it means you are not up-to-date (and need to 'cvs update'). In any
      case, there is a batch job that will pick up failing unit tests (due to a
      non-serialised checkin or evil coder who didn't run all tests before
      checkin!).

      I imagine this would all work better with a transactional source code
      control system like Aegis - can anyone verify that?. Also someone on this
      list is planning a locking mechanism for CVS to serialise checkins and make
      update/run tests/checkin atomic.

      >
      > On my last project, we handled this without an integration machine by
      using
      > a lock server which our batch files recognized. We had also used a low
      tech
      > approach of a white board to record changes, but mistakes did happen on
      > occasion. The integration machine serves the same purpose - it makes sure
      > that each integration happens as a single coherent unit.

      I still don't get it. What was the white board for?

      >
      >
      >
      > To Post a message, send it to: extremeprogramming@...
      >
      > To Unsubscribe, send a blank message to:
      extremeprogramming-unsubscribe@...
      >
      > Ad-free courtesy of objectmentor.com
      >
      >
      >
    Your message has been successfully submitted and would be delivered to recipients shortly.