The best way to manage multiple applications in Subversion

How do you support two (or more) versions of a project in SVN? different chests inside the main trunk? branches? Completely separate folders?

I am currently assuming I'm going to make v2 ProjecA, but I still need to fix the errors in v1:

\ProjectA\trunk\[myfiles]
\ProjectA\tags\
\ProjectA\branches\

What would be the best way to do this?

\ProjectA\trunk\[myfiles]
\ProjectA\tags\
\ProjectA\branches\v1\[myfiles]
\ProjectA\branches\v2\[myfiles]

OR would it be better?

\ProjectAv1\trunk\[myfiles]
\ProjectAv1\tags\
\ProjectAv1\branches\

\ProjectAv2\trunk\[myfiles]
\ProjectAv2\tags\
\ProjectAv2\branches\

What would you use, or rather, why? I am inclined to the first option, but something about it seems wrong. At the same time, the second option seems clean but ugly.

Any thoughts are appreciated.

+3
source share
4 answers
+7

, : manage-merging-updates-from-several-developers

,

/Project/trunk
/project/tags/version1
/project/branches/version1-sp1 <- when sp1 ships, create 
/project/tags/version1-sp1  <- and a branch off this called 
/project/branches/version1-sp2 

/Project/trunk HEAD/MASTER, , , .

3, /.

/Project/tags/version2 <- for the shipped version 
/Project/branches/version2-sp1 <- for fixes/features. 
+1

,

\ProjectA\trunk\[myfiles] <= this becomes v2
\ProjectA\tags\
\ProjectA\branches\v1\[myfiles]

, .

+1

, "trunk" - - , , - , . , v1, v2, v3.. , :

\ProjectA\v1\trunk\[myfiles]
\ProjectA\v1\tags\
\ProjectA\v1\branches\[myfiles]
\ProjectA\v2\trunk\[myfiles]
\ProjectA\v2\tags\
\ProjectA\v2\branches\[myfiles]

( , ), №2, // , ( ):

\ProjectA\trunk\v1\[myfiles]
\ProjectA\trunk\v2\[myfiles]
\ProjectA\tags\
\ProjectA\branches\v1\[myfiles]
\ProjectA\branches\v2\[myfiles]
0

Source: https://habr.com/ru/post/1720923/


All Articles