Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: Re: Maintaining 'stable' and 'development' versionsof a repository (hop: msg#00010

version-control.bitkeeper.user

Subject: Re: Re: Maintaining 'stable' and 'development' versionsof a repository (hopeless newbie question)

| > My personal opinion is that this is somewhat like putting people
| > in straightjackets to keep them from scratching their poison ivy
| > rashes. It's guaranteed to work, but ...
|
| I like things that are guaranteed to work, better than things that are
| not guaranteed to work. At least then I know where I stand ;)

The problem with putting people in straightjackets is the side effects.

The (theoretical) argument against the straightjacket goes something
like this:

First, the version control system alone can't stop people from breaking
the code. (At best it can do it in cooperation with external tools, like
test suites that must pass before a change is comitted.)

Second, the version control system can't actually stop people from
doing this; all it can do is stop them from doing it through the VCS
itself. This has the twin effects of withholding the VCS's official
endorsement (so people don't think 'the VCS allowed this so it must
be OK') and perhaps persuading (some) people not to do it because
it's sufficiently more difficult and awkward.

Third, I think there's a lot of evidence that telling people not to do
this is swimming upstream. The 'one independant change after another in
one repository' style of development seems to be what people naturally
gravitate to until they're educated. (I think it's also the most natural
way to work with most VCSes given the current interfaces.)

Fourth, even if you are working 'right' there are clearly situations
where what you're doing is naturally expressed as 'putting the same
change into multiple lines of development' (for example, a bugfix to
code that is the same across multiple LODs, although the LODs are
otherwise quite separate). And if you squint at it right, the perennial
issue of people wanting to 'compact' a long many-changeset line of
development into a single changeset for upstream is another variant of
this.

Thus, given that people are going to do this anyways whether or not
the VCS supports them, it might as well help out where it can (with
appropriate warnings). The VCS is not making the situation worse by
helping: while people can break the tree by doing this, a) they can
break the tree through the VCS in other ways, and b) they can do this
anyways outside the VCS. By helping, the VCS has a chance to make the
situation better: it can help people avoid mistakes by automating things
for them, and it has a chance to raise warning flags about things that
look bad, and the VCS history itself can be more accurate so that even
when things go wrong, people can see more clearly how (and why).

This isn't necessarily the right view for BitKeeper in specific; that
depends on what the companies using BitKeeper feel about the issue.
Since BK is used by a bunch of different companies, I suspect that if BK
ever adds features to support such a 'relaxed' dependancy model it will
make them a per-repository option, so some organizations can keep people
in the straightjackets they find necessary.

Short of BitKeeper supporting this explicitly, it might be handy
if people wanted to write canned scripts to do this sort of patch
extraction and application. Canned scripts could make what people would
do anyways be more error-free, while helping people out by raising
warning signs if something seems problematic (eg trying to extract a
changeset and apply it to a tree that doesn't have the same starting
versions of the files involved).

- cks, who wonders if anyone has ever defined a 'BitKeeper
patch format' that captures moves and deletes for
automatic application (he supposes you could just use
the BK Changeset patch format and then ignore some of
the information...)


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
qplus.devel/200...    network.jabber....    debian.qa-packa...    encryption.gpg....    python.dabo.dev...    uclinux.devel/2...    science.mathema...    recreation.pesc...    kernel.ck/2004-...    mozilla.devel.e...    tex.latex.prosp...    ietf.multi6/200...    bbc.cvs/2002-11...    xfree86.newbie/...    jakarta.taglibs...    altlinux.hardwa...    comedi/2002-05/...    horde.bugs/2004...    games.diplomacy...    finance.e-gold....    web.dom.test-su...    lang.ruby.rails...    os.netbsd.devel...    video.gstreamer...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation