Dan Mick writes:
> James Carlson wrote:
> > A great many modules consist of multiple .c files 
> 
> but a great many of them don't.  And keeping #ident strings would solve that 
> issue for multi-file objects.

That makes it a solution that works at best "sometimes."

> > *and* that the ID numbers mean nothing. 
> 
> They mean exactly a source revision, if the one single rule of SCMS is 
> followed: 
> that you don't ever cut any sort of released version without a delta.
> I'm pretty sure that's absolutely true of every release Sun has ever made, 
> and I 
> rely on it.

They mean a source revision in a given copy of a tree -- independent
trees end up reusing the same number stream -- and then only if you
never collapse deltas in that tree -- as is commonly done during bug
fixing and some projects.

> > Guess what happens if someone modifies one of
> > those files without touching the one magic file with the version
> > number in it?  
> 
> 1) thank you for offering me a guessing game (speaking of thanks), but I 
> understand that very well.  #idents in all files would solve that today.

Not really.  They're not preserved in core dumps, and they litter the
file with trash from all of the common #include files.

In fact, those are the reasons *why* people stick %I% turds in modinfo
strings and -V options and log files -- #ident is a dumping ground
that makes it too hard to see what version you've got, and doesn't
survive in the cases where we need it.

> Something else that encodes filenames and versions would, too.  And it's a 
> problem with the perfection of "one %I%", but it *doesn't make it useless".
> It's just fine for all those single-file driver and other modules around.

As I said before, if you think that it works for you, then feel free
to generate serial numbers on your own modules.  I don't think it's
anything better than a localized hack, and I'm hoping that we can do
better.

> > Or guess what happens when we need to map this back to
> > a particular package or patch version? 
> 
> Yes, it doesn't help a lot for that.  I'm not interested in a patch version, 
> I'm 
> interested in a source version, because I want to diagnose the actual 
> problem, 
> not diagnose RE.

You're not the system administrator or the tech trying to troubleshoot
why an installed patch didn't fix the problem.  It's not a question of
"diagnosing RE" (whatever that might mean), but of knowing what
exactly was installed on the system.

Yes, I understand the specific usage case you're talking about.  As I
pointed out before, %I% doesn't quite work well for that case anyway
-- it only works for one-file modules (or baroque maintenance plans),
and then only with significant constraints on how the tree is managed,
and constraints that don't actually match how we build all bits in
practice or how testing is done.

>  But no, it's about referring back to source, so it doesn't 
> really attempt to track the delivery vehicle, any more than the piston serial 
> number attempts to track the sale of the automobile.  So?

I'm afraid I don't follow your analogy.  Automobiles aren't (as far as
I know) ordinarily designed in order to carry weapons, are they?

> > Or guess what happens when we have separate gates for separate releases? 
> 
> Yes, one has to find the gate.  It's easy in Sun's current structure, with 
> very 
> little pain or management.

Don't forget about split gates.  :-<

> > Or when someone delivers an IDR built out of his own private workspace? 
> 
> Well, that's what we call a "reassignable offense".  There's a reason we have
> RE, and gates, and gatekeepers, and release management, and it's about 
> accountability, and if you don't understand that, *clearly* you don't get to 
> deliver code to customers, ever.

So IDRs never get shipped to anybody?  Nobody ever runs test bits of
any sort?  We don't put BFU archives up on opensolaris.org or hand
them out to test partners like UNH?  That's an interesting world, but
not the one I've had to deal with.

> > It's entertaining at
> > best, and a total waste of time in the worst case.
> 
> I'm sorry, Jim, that's just wrong.  It has absolutely answered the question 
> for 
> me many times: 'just which version were you really running', quickly and 
> easily.
> 
> No, it's *NOT PERFECT*.  But it beats the hell out of *nothing*.

The bottom line I see here is that SCCS and Mercurial quite simply
work *differently*.  They're internally different.  SCCS is a per-file
versioning system.  You have to pile a ton of kludges on top
("Teamware") in order to get anything like a per-repository system.
Mercurial is a per-repository versioning system, and it *is* the one
that was openly, after a _very_ lengthy debate, chosen to replace
Teamware for at least ON and SFW.  It doesn't maintain per-file
version numbers of any sort.

That means that the sort of %I% hackery common with SCCS -- whether we
can or cannot agree on its usefulness -- will disappear.  SCCS will
disappear from ON after build 96.  It's gone.  RIP.  Where you once
had quasi-useful hacks, you now have nothing.  You can't beat the hell
out of that ... instead, we have to come up with something useful.

I can't tell what you're arguing.  If you want Mercurial to be
something that it's not, then perhaps arguing with the Mercurial
maintainers would be a better idea.  If you want ON to choose
something other than Mercurial or even to stay with SCCS (!), then I
guess I'd recommend talking with Stephen Hahn, as he had the
unenviable task of marshaling the data used to make the SCM choice.

If it's that you want to have the existing SCCS hacks perpetuated
using a yet-to-be-invented mechanism that (if possible at all)
continues to have the same flaws as the previous SCCS hacks, then at
least *I* don't think that's a useful direction.

-- 
James Carlson, Solaris Networking              <[EMAIL PROTECTED]>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to