comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: GPS issues: laundry list
Date: Tue, 18 Sep 2012 10:35:03 +0200
Date: 2012-09-18T10:35:03+02:00	[thread overview]
Message-ID: <pkxen894eu9.yi6koef0bmw9$.dlg@40tude.net> (raw)
In-Reply-To: 85obl4ibd5.fsf@stephe-leake.org

On Mon, 17 Sep 2012 17:32:38 -0400, Stephen Leake wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> The project (under the source control) would depend on the project
>> MMS, which is in some DB. You change current view from v7 to v8 by
>> changing the project dependency.
> 
> What does that do to the directories on the disk?

It re-maps them to other files.

ClearCase, for example, has a virtual file system for doing this
efficiently.

> I'm guessing you are saying:
> 
> 1) only use one directory to check out the files; say <some root>/mms
> 
> 2) to change the version in the directory, use the appropriate monotone
> command
> 
> That is certainly possible, but extremely cumbersome.

You would have to write a lot of software in order to support that on top
of primitive file versioning.

If funding is no problem for you, why not to buy ClearCase?

> First, every time
> you change versions, you have to recompile (unless you use a version
> control system that maintains compiled files, which I hate).

No. It is a different way of handling dependencies.

The things your project depends on are *already* compiled and their state
is frozen in the code management system. In fact you cannot refer to
anything that is not compiled and checked in, unless that is not your
project. And in our system projects are encouraged to be small, even empty.
That is when we aggregate existing projects in order to deliver them to the
customer. Such an aggregate project may have no sources at all.

> Second,
> there are _many_ times when I want to compare changes between two
> versions, and it is much simpler to do that when both are checked out.

Any decent system supports that without checking out. Our system is very
punitive to checkouts. You cannot check out anything from the project
without scheduling a new version of it. And once you do, nobody can check
out that project again. We do everything to prevent branching. We never
ever merge any files.

You would not need to compare anything, if you worked the way we do. I
don't remember the last time I did. The reason why you are comparing
versions is mainly because, effectively, you do not version projects.

> But most importantly, I have customers using both versions (some have
> not upgraded yet), so I need both versions checked out and compiled.

How could you use both versions in one project? Otherwise, it is absolutely
no problem.

>> This is how we maintain our middleware project. It depends on hundreds of
>> other projects of third-party libraries, drivers etc. It would be
>> impossible to handle it using your way.
> 
> No, it would not. If I counted all the OS libraries I use, mine probably
> depends on hundreds as well. 

And how do you select the proper versions/paths of hundreds of projects? In
our case each library is a project. Each project has a dependency list
where the version is specified. When the project is mapped or checked out,
the right versions of all projects it depends on are automatically mapped.

As I understand, you are running a poor-man's project management by mapping
project versions onto directories. We started it this way 15 years ago and
when it became an expected catastrophe 5-7 years later, we were forced to
build a proper project management system.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-09-21  1:13 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-12 11:53 GPS issues: laundry list Stephen Leake
2012-09-12 12:35 ` Dmitry A. Kazakov
2012-09-13 10:55   ` Stephen Leake
2012-09-13 12:37     ` Dmitry A. Kazakov
2012-09-13 15:38       ` mark.lorenzen
2012-09-13 16:37         ` Dmitry A. Kazakov
2012-09-14  8:11         ` Stephen Leake
2012-09-14  7:51       ` Stephen Leake
2012-09-14  8:35         ` Dmitry A. Kazakov
2012-09-15  7:45           ` Stephen Leake
2012-09-15  8:25             ` Dmitry A. Kazakov
2012-09-15  9:41               ` Ludovic Brenta
2012-09-15 11:29                 ` Dmitry A. Kazakov
2012-09-17 21:35                   ` Stephen Leake
2012-09-18  8:03                     ` Dmitry A. Kazakov
2012-09-19  1:54                       ` CM tools vs versions Stephen Leake
2012-09-19  7:51                         ` Dmitry A. Kazakov
2012-09-17 21:32               ` GPS issues: laundry list Stephen Leake
2012-09-18  8:35                 ` Dmitry A. Kazakov [this message]
2012-09-13 14:09     ` Markus Schöpflin
2012-09-13 16:37       ` Simon Wright
2012-09-14  8:18         ` Stephen Leake
2012-09-14  9:14           ` Simon Wright
2012-09-14  8:17       ` Stephen Leake
2012-09-12 19:03 ` Simon Wright
2012-09-13  9:46   ` Marius Amado-Alves
2012-09-13 10:08     ` Simon Wright
2012-09-13 12:41     ` Dmitry A. Kazakov
2012-09-13 15:41       ` Marius Amado-Alves
2012-09-13 16:08         ` AdaMagica
2012-09-14  7:34         ` Stephen Leake
2012-09-13 16:26       ` Simon Wright
2012-09-13 10:58   ` Emacs mtn support Stephen Leake
2012-09-13 12:13     ` Simon Wright
2012-09-13 17:18       ` Simon Wright
2012-09-14  8:27         ` Stephen Leake
2012-09-14  9:15           ` Simon Wright
2012-09-14  8:24       ` Stephen Leake
2012-09-14  9:20         ` Simon Wright
2012-09-15  7:55           ` Stephen Leake
2012-09-13 15:30     ` J-P. Rosen
2012-09-14  8:51 ` GPS issues: laundry list Egil Høvik
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox