[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

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:

Version1
        Dir1
                File1a
                File1b
Version2
        Dir1
                File1a
                File1b
        Dir2
                File2a
                File2b
Version3
        Dir1
                File1a
                File1b
        Dir2
                File2a
                File2b
        Dir3
                File3a
                File3b

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?

Thank you,

Ian

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2609135

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-05-14 18:28:29 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.