asking for advice on version directory structure
From: Ian Bell <ibell_at_instepsystems.com>
Date: Fri, 14 May 2010 08:11:49 -0700 (PDT)
I am maintaining several different versions of my application and am asking for advice on how to structure/maintain them in the TSVN repository. Do I maintain a full copy of each version in the repository or is it recommended to use "cheap copies"? The remainder of this post illustrates the directory structure I would like to manage with TSVN.
Assume there are 3 versions of an application and that about 80% of the code is the same between all versions. The directory structure of the working copy (WC) on the computer might be as follows:
About 80% of identically named files between versions will contain the same content (i.e. 20% of identically named files will have slightly different content). For example, the contents in Version1-File1a can be updated separately from Version2-File1a and Version3-File1a. In other words, each version can be updated/maintained separately from the other versions.
My question: what is the recommended way to store this directory structure in the TSVN?
1. I could physically replicate the working copy directory structure in the repository. So if version1 WC is 100MB in size, version2 WC is 200MB in size and version3 WC is 300MB then 600MB will be imported/stored in the repository.
2. TSVN supports “cheap copies”. Given that about 80% of the code in version2 and version3 will be identical to version1, it seems to me that another way to maintain 3 different versions is to make use of cheap copies. TSVN uses cheap copies for tags and branches. My reasoning is that cheap copies would reduce the repository size. In other words, if 100MB is imported/stored for version1, 40MB for version2 (i.e. 20% of 200MB) and 60MB for version3 (i.e. 20% of 300MB) then the total information stored/imported is 200MB.
My question: can cheap copies be used to maintain 3 different versions of an application (or is this even recommended)? If so then do I simply create a tag or branch for version2 and version3 and then commit all new changes to these tags/branches? I know this works but my read of the SVN document is that tags/branches were never intended for this purpose. If true then is there another way to use "cheap copies" to maintain 3 different versions?
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
This is an archived mail posted to the TortoiseSVN Users mailing list.