tags:

views:

15

answers:

1

I have a repository composed of separate directories for different components of a system like this:

System
 - branches
 - tags
 - trunk
     Component A
       file A
       file B
     Component B
       file C
       file D
     Component C
       file E
       file F

Let's say I make some changes to file A and file C and file E and I want to create a tag of those files to mark them as the released versions. How do I do that? I'm pretty sure Subversion only allows the creation of a tag of an entire directory. Can I manually create a subdirectory under tags and do individual Subversion copies of the files into the subdirectory to end up with the following?:

System
  - branches
  - tags
      Release-06-30-2010
        file A
        file C
        file E
  - trunk
    ...

I want to retain the log history of the files A, C, and E.

Thanks in advance for your advice.

+1  A: 

I would create a separate repo for each component. Then you can use svn:externals to bring them into your system, and you can reference the repo with a specific revision number so you can lock it down.

When you commit your system, the URLs used for the svn:externals references will be saved (along with the specific revision number, if used), so when you check out different revisions or branches of system, you will get the correct revision of your components as well.

RedFilter