Reduce Subversion pristine copy: Porovnání verzí

Z ZděchovNET
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
Bez shrnutí editace
Řádek 1: Řádek 1:
Subversion VCS store copy of each file pristine directory placed in own hidden .svn directory.
Subversion VCS store copy of each file pristine directory placed in own hidden .svn directory. Storing copy for each file means that working copy takes twice as much size as stored files. This may not be problem for small repository but if you want to store for example 30GB of photos in repository and want to checkout working copy on machine with 60 GB drive then you have problem.


Possible methods of reducing pristine size:
=Possible methods of reducing pristine size=
==Built-in mechanism in subversion client itself==
This features could be implemented directly to client in some later 1.8+ version .


==Subversion client built-in mechanism==
There is already opened [http://subversion.tigris.org/issues/show_bug.cgi?id=525 Issue 525] named "allow working copies without text-base/"

The feature could be implemented directly to the client in some later 1.8+ version.

There is already opened [http://subversion.tigris.org/issues/show_bug.cgi?id=525 Issue 525] named "allow working copies without text-base/".
But the authors want to stay with original subversion principle that storage is cheap and network is slow so they want to keep copy of files.


==File deduplication of working copy==
==File deduplication of working copy==

Verze z 25. 11. 2014, 21:46

Subversion VCS store copy of each file pristine directory placed in own hidden .svn directory. Storing copy for each file means that working copy takes twice as much size as stored files. This may not be problem for small repository but if you want to store for example 30GB of photos in repository and want to checkout working copy on machine with 60 GB drive then you have problem.

Possible methods of reducing pristine size

Subversion client built-in mechanism

The feature could be implemented directly to the client in some later 1.8+ version.

There is already opened Issue 525 named "allow working copies without text-base/". But the authors want to stay with original subversion principle that storage is cheap and network is slow so they want to keep copy of files.

File deduplication of working copy

It could possibly work on filesystem level with existing filesystems or as virtual filesystem.

One example could be Scord which solve this for versions <= 1.6 on Linux platform

Make pristine files zero size by helper program

It maybe possible to temporary make pristine file empty and update their content manually by invoking come helper program. Such program could check svn status and download correct content of modified files from repository to be able to commit them. Set zero size to other pristine files. Such program should be able to work with svn sqlite database to read file name to pristine name relation. Also it should be multi-platform.

#!/bin/bash

for F in $(find ./.svn/pristine -type f -size +0);
do
cat /dev/null >$F
done

If pristine files are set to empty then all svn operation could be used except these related to file content as svn diff or svn commit of modified files. To be able also work with file diff, pristine file content should be restored from repository somehow.

External links