I created this topic on English board because it matters all developers. Also, I guess, discussing in English will prevent most of flood and flame.
Few days ago I've learned and played with new SVN utility -- svnmucc
. It can execute large scripts on server side, without having of working copy. Because my repositories are too small and simple, I've played with Kolibri OS repository. My learning became successful, then I decided to build my tests into useful script which can rearrange your source tree without data loss. After some optimizations, work completed on two-step rearrange procedure (initially was 4 steps).
Please sure that your SVN client has svnmucc
utility. If not, please update it.Normalize.7z (64 MB)
Linked archive contains cloned Kolibri OS repository tuned to syncronize with the original one via svnsync
. You can download it, unpack it and run the script which will syncronize and rearrange the tree within. Then you can add it to your SVN client as a normal repository via file:///
protocol, browse it locally and then discuss it here. This works without a SVN server, directly from the file-based URL. All GUI SVN clients can display repositories, I guess. When adding to client, URL to your local repository should look like:
There are 3 slashes after "file:", be attentive.
The script within archive is Windows batch file, but it contains only SVN commands. Please adapt it to Linux by yourself, %~dp0
is a macro of a path to the batch file itself.
Suggested tree structure is concept, I made it by my mind. Probably, I was been preconceived somewhere. If you agree with the change in general, let's discuss about details. I can describe most of details a bit later, after first answers. Three general changes are:
- Straighten the tree by removing redundant trunks in programs (also move seldom used tags to the common tags), then move programs, data and skins into single, common trunk.
- Unify naming of branches, tags and languages, rename some directories to more useful terms, put libraries directly to the trunk.
- Move all large programs and libraries not building by autobuild to contrib directory, as suggested by yogev_ezra.
After all, FASM and C-- programmers can download only trunk -- 46 MB. C/C++ sources in contrib -- 106 MB.
Don't afraid of problems with re-download a working copy after massive changes, due to your SVN client fail. We can prepare a clone of new repository and take out it compressed like this, then you can download it as a single file and update or re-download entire working copy locally, then finally switch to the normal, remote repository of Kolibri OS.
I will change svnmucc
script by the results of discussion. Probably, I will change it with more than one step, being iterative. One or two months to play and discuss -- is it good period?
You can also create an empty repository and syncronize it by yourself, downloading revisions one-by-one. It will create about 8600 files on your disk. But archived repository was packed by svnadmin pack command, having first 3000 revisions merged into 3 large files.