From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Open source Ada OS?
Date: Wed, 26 Jan 2011 17:02:46 -0600
Date: 2011-01-26T17:02:46-06:00 [thread overview]
Message-ID: <ihq96p$li0$1@munin.nbi.dk> (raw)
In-Reply-To: b1da7195-8f26-463e-a297-195131a615f0@j32g2000yqc.googlegroups.com
"Ludovic Brenta" <ludovic@ludovic-brenta.org> wrote in message
news:b1da7195-8f26-463e-a297-195131a615f0@j32g2000yqc.googlegroups.com...
...
>CVS would not even help do that because CVS, being rubbish, has per-
>file histories as opposed to per-project history.
Per-project history is also rubbish. I've never seen any version control
system that actually would solve my problems rather than replacing those
problems with a large set of new ones.
In the entire history of RRSoftware, there have only been two projects:
Janus/Ada and Claw (ignoring a few hobbyist things). But these aren't
monolithic entities. Janus/Ada, especially, over its history consists of a
dozen or so separate tools, several in multiple parts, targetting about 25
different targets. (Many of those targets are obsolete now.) Different
targets were/are released at different times. If you treated those as
*separate* projects, then all of the shared files (the majority) end up
duplicated; if you treat those as *one* project, then you lose the ability
to have separate releases for different part of the project. And in either
case, there is no automated support for files that are related (and need to
be kept consistent) but have different contents. (An example of this latter
is the target description packages; these all contain a set of types and
constants whose names have to be the same but whose definitions are
different for each target. Some also contain subprograms with different
bodies for different targets.)
A proper version control system would provide automatic warnings to the
owner of a file/subproject/whatever when a related file needs to be changed.
No such thing existed (or exists, so far as I can tell), so we built our own
as a front-end to PVCS (later converted to CVS). That just uses CVS as a
fancy difference engine; file relationships are kept in our manager. The
problem, of course is that the thing is fragile and monolithic.
But none of the new VCs make any serious attempt to solve this problem.
Branching would do it if there was a way to keep multiple ends active at the
same time, without restrictions, and in additional kept track of when one
end is out-of-date with the others.
Merging, however is never a solution. It just moves the problem from
whereever it is now to the merge process. And automated merging is a
disaster waiting to happen (and it happens often in my experience) -
different targets get merged, bug fixes disappear, and the like. And manual
merging is not a solution: it is just too time-consuming.
A related issue is "freshening" of working directories. I never, ever want
to trust that what is in the VC is correct. It *ought* to be, but it often
isn't and as such I never want to assume it is correct. Thus getting of
files from the VC must query whenever it is about to change a file and ask
for approval (that process has saved me many times from reintroducing bugs).
Finally, like all worthwhile programming tools, it has to be written in Ada.
:-) That way, *I* can port it to the targets I need it to run on, I can fix
it if necessary, and so on.
OK, the last is much less of a requirement than the others, but I do have
much less trust in software not written in Ada. I use some of course because
I simply don't have time to write my own OS, browser, and accounting
package. (I wish I did.)
Randy.
next prev parent reply other threads:[~2011-01-26 23:02 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-25 21:08 Open source Ada OS? R. Tyler Croy
2011-01-25 21:33 ` Simon Clubley
2011-01-25 21:54 ` R. Tyler Croy
2011-01-26 0:37 ` anon
2011-01-26 1:54 ` Yannick Duchêne (Hibou57)
2011-01-26 8:36 ` Ludovic Brenta
2011-01-26 11:32 ` Yannick Duchêne (Hibou57)
2011-01-26 13:06 ` Ludovic Brenta
2011-01-26 23:02 ` Randy Brukardt [this message]
2011-01-26 23:58 ` Edward Fish
2011-01-27 22:29 ` Randy Brukardt
2011-01-27 8:41 ` Dmitry A. Kazakov
2011-01-27 9:23 ` Maciej Sobczak
2011-01-26 14:04 ` Georg Bauhaus
2011-01-28 11:32 ` anon
2011-01-27 17:53 ` Dirk Heinrichs
2011-01-28 10:57 ` anon
2011-01-28 11:22 ` Ludovic Brenta
2011-01-29 16:52 ` anon
2011-01-29 17:15 ` Simon Wright
2011-01-28 17:15 ` R. Tyler Croy
2011-01-30 9:48 ` Dirk Heinrichs
2011-01-30 12:11 ` Simon Wright
2011-01-26 5:13 ` Shark8
2011-01-26 7:44 ` Yannick Duchêne (Hibou57)
2011-01-26 22:48 ` Shark8
2011-01-26 8:27 ` Ludovic Brenta
2011-01-26 18:09 ` Warren
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox