Solved 12-STABLE: why are the base-src twice as large as 12.1-REL src?

Sorry for asking such a stupid question...
I downloaded the sources with svnlite checkout https://svn.FreeBSD.org/base/stable/12 (according to the handbook) and noticed they are twice as large as the sources installed with 12.1-RELEASE.
What's the reason?

THX
 
The difference between the size of sources installed as part of installing a release vs the sources as checked out by SVN (or any other CM tool) is the metadata used by the CM tool; in the case of SVN, the "metadata" is basically a pristine copy of all the source files in order for SVN to be able to show you what you've modified without needing a connection to the SVN repository.
 
  • Does this mean the same data is transfered twice?
  • Or is svn smart enough to create the copies once a file is fetched?
  • RCS/CVS did not do that, you had to get a lock for a file before you could edit it and then CVS produced and stored only the diff(1) when you committed your changes. I'm getting old...
I have ZFS dedup enabled, zdb -DD shows exactly the amount of the sources (~512MB) with a reference count of 2, for about 1/2 of all ordinary files in /usr/src/12-STABLE, that would fit.
 
Pretty sure SVN does one transfer to fetch the file into the pristine metadata area, and then copies that to the 'working' directory.
 
Pretty sure SVN does one transfer to fetch the file into the pristine metadata area, and then copies that to the 'working' directory.
The data volume of a svn checkout unfortunately points in the other direction, which disappoints me since it violates one of the basic principles of CS: not to add redundancy where it brings no benefit. There are many people with limited bandwidth and data volume, not only in the emerging countries.
  • I'll file in a bug report on subversion upstream (I have to stay calm and not insult them ;))
 
For those who have a limited bandwidth, and how don't really care about the 'history' of the files, svn fetch might be the way to go. You get a copy of the files, but no way to query the change history (or even figure out what exact version of the repository you have a copy of), and if you make local changes there's no way to easily see what change you made or commit that change (but only a select group are allow to do that anyway).
 
For those who have a limited bandwidth, and how don't really care about the 'history' of the files, svn fetch might be the way to go. You get a copy of the files, but no way to query the change history (or even figure out what exact version of the repository you have a copy of), and if you make local changes there's no way to easily see what change you made or commit that change (but only a select group are allow to do that anyway).
OK, for just browsing/reading the sources that's an option. But to work on the sources, I need all that meta-data. Maybe the doubled volume comes fro this history meta-data? I'll see what the svn users tell me in reply to my bug report.
 
Back
Top