SVN: Release branch and externals? -
We have two websites for one client (main www site and another for e-commerce site which is a separate Sits on the server) Use the shared portion of code (various features / styles / javascript etc) We can currently manage SVNs in different projects (in the same repos), using the shared code and SVN: Extnails to pull each of these two websites into two website projects.
We have just created two release branches, each for each of the two sites, committed to trunk everything for each site when it works normally and when "ready for live" If we merge into the release branch for that site, it works as a behavior other than today, we modified some shared code and saw that the release branch pulled it immediately when we released the release An update on the test. It is not what we wanted to do: (
So with any thought how can we overcome this problem. We use external to share the code, but does anyone else The way? They mention that they are externally bad and we should use a different building process, but there should be no mention of it.
Our crease control .net is running and it is dry Fest Considering a better process?
Cheers
Pete: Update Since: We have been using Mercury (Fogcrual Colon) for our source control since then. The sub-repo is thought of, so we also followed that path along with that project. Even though it comes at a price, the bunting is really difficult because tagging and everything is up to date. Our latest method both project It is a "mega project" that slows down the clone time (check out in SVN), but we do it rarely that it is well worth it to deal with the sub-repo whereas. Now we also facilitate the use of branches instead of feature switching / toggling which makes our development even easier.
If I understand correctly you have something like the following structure:
< Ul>- Trunk
- Library (via
svn: externals library svn: // repo / library
manually, you can do this type of- release1
- < Li> library
- Project 2
- Trunk
- Library ( Via
Svn: external library svn: // repo / library
)
- Library ( Via
- Branches
- release1
- Library (via
Svn: External Library svn: // rep
on / project 1 / trunk to / library- If you merge the revision from
svn: externals
to / project1 / branches / release 1 andsvn: externals
If you update the branch, you will automatically get the latest version from the library. By default svn: externals will get the main modification of the link.To link to a specific revision, you can define
svn: externals
, such as:svn: external -r 123 library svn: // repo / Library
. This means that the external link will always point to that specific amendment. So when you do not manually changesvn: externals
- Library (via
- release1
- Trunk
svn without ever updating the shared library code. Externals
link. / P>Perhaps a better way to use the tag for the shared library and link to a specific tag. In this case you will find the following storage structure:
- Project 1
- Trunk
- Library (via
svn: externals library svn: // repo / Library / Tag / Version3
) - Branches
- release1
- Library (via
svn: externals library Svn: // repo / library /
- release2
- Library (via
svn: externals library svn: // repo / library / tags / version2
- release2
- Library (via
- Project 2
- Trunk
- Library (
svn: via external library svn: // repo / library / tags / version2
)
< Li> - Library (
- Trunk
- release1
- Library (via
- Trunk
- release1
- Library (via
Comments
Post a Comment