Date: Sat, 18 Apr 2020 10:29:33 +0000 From: m...@netbsd.org Message-ID: <20200418102933.ga24...@homeworld.netbsd.org>
| I feel like it's difficult to decide which is objectively better. It all depends upon usage patterns, and objectives. | CVS encourages you to keep your local changes uncommitted, so they do | not show up in a change to RCSID at all. Yes, that's a problem. I'd actually prefer it if the compiler were to add a note (of some kind, as long as it appears in the actual binary) with the filename, mod date, and checksum, of every file it includes in each compilation unit. If there's also a VCS ID of some kind that can be associated, even better. The point was that a single identifier for the whole build simply isn't detailed enough to be useful in many cases - it certainly wasn't that CVS is better than something else. | But as a person with access to the repository, you are in a better | position in this case, because the DVCS will make it easy to go back to | the state of the tree given a hash, even after you add changes later. I have had an off-list discussion with wiz about some of this - part of the point is that often the person who wants to know whether a particular version of a file was included has no reporitory access at all. The repository might not even still exist. One of the questions we would like to be able to answer is whether two different distributions were built with the same version of some particular file - if that file is later discovered to have been harbouring a bug. And it would be nice to be able to do that in isolation (no references to anything other than the two (binary) distributions). | I imagine it isn't impossible to find 'closest parent which is also in | the remote' and embed it as well, mitigating the "outsider can't tell | how far you are" concern, if someone wants to pursue that. To my mind, within reasonable cost bounds (space and effort) the more info that is included the better. It is always easy to simply ignore if not needed, or redundant, but often impossible to reconstruct if missing. kre