Importing from svn when a 'non-standard' model is in use.
We do not follow the branch/tag structure presented in the SVN book. Instead the folder structure mirrors our development process. Our repository
looks like this
<pre>
component X\ <-- code for component x
source\
release\ <-- code for releases of x
1.0\ <-- code based on release 1.0
iteration\ <-- per iteration changes
1\ <-- iteration 1's changes
2\
...
40\ <-- iteration 40's changes
start\ <-- mark start of iteration 40
build number\ <-- mark build number X of patch 1
trunk\ <-- trunk of iteration 40. Code for official builds of patch to release 1.0 come
from the iteration trunk. When a story ( see below ) is complete it is merged
into here.
start\ <-- mark start of patch to release 1.0
story\ <-- each bug fix or feature is in a folder under story
bug fix X\ <-- For each bug fix ( or set of bug fixes ) and for each feature a developer creates
a story folder based off the current iteration trunk.
start\ <-- Mark start of story
trunk\ <-- trunk of story. When complete will be merged into iteration trunk.
trunk\ <-- Everything under here is for next major release of component X. Same pattern as
under the folder 1.0 above.
binaries\ <-- Builds of component X checked in here. Pattern is similar to what is under
source folder. However we only build from the iteration trunk so there are no story
folders.
</pre>
I don't see an easy way to import this into SVN while not losing history. And adding to difficulties are these wrinkles :
- Some components were split out from others
- The binaries of a couple of the core components are referenced by svn:externals in the source of dependent components.
- We are at about iteration 60. ( Each iteration is a 3 week period )
So what I looking for is recommendations on how this should be imported into RTC.
Thanks in advance.
looks like this
<pre>
component X\ <-- code for component x
source\
release\ <-- code for releases of x
1.0\ <-- code based on release 1.0
iteration\ <-- per iteration changes
1\ <-- iteration 1's changes
2\
...
40\ <-- iteration 40's changes
start\ <-- mark start of iteration 40
build number\ <-- mark build number X of patch 1
trunk\ <-- trunk of iteration 40. Code for official builds of patch to release 1.0 come
from the iteration trunk. When a story ( see below ) is complete it is merged
into here.
start\ <-- mark start of patch to release 1.0
story\ <-- each bug fix or feature is in a folder under story
bug fix X\ <-- For each bug fix ( or set of bug fixes ) and for each feature a developer creates
a story folder based off the current iteration trunk.
start\ <-- Mark start of story
trunk\ <-- trunk of story. When complete will be merged into iteration trunk.
trunk\ <-- Everything under here is for next major release of component X. Same pattern as
under the folder 1.0 above.
binaries\ <-- Builds of component X checked in here. Pattern is similar to what is under
source folder. However we only build from the iteration trunk so there are no story
folders.
</pre>
I don't see an easy way to import this into SVN while not losing history. And adding to difficulties are these wrinkles :
- Some components were split out from others
- The binaries of a couple of the core components are referenced by svn:externals in the source of dependent components.
- We are at about iteration 60. ( Each iteration is a 3 week period )
So what I looking for is recommendations on how this should be imported into RTC.
Thanks in advance.
2 answers
I would have to agree with your assessment. Since SVN doesn't have a first class representation for branches or tags, The SVN importer that ships with RTC makes heavy use of the defacto standard repo layout to determine the branch structure. There is some flexibility in the importer but not enough to accommodate the custom representation you have presented.
Having said that, you could approximate history by importing each iteration in order starting from the beginning into the same component. You would want to create a baseline for each iteration. This would be quite a bit of manual work to get all the iteration imported.
Having said that, you could approximate history by importing each iteration in order starting from the beginning into the same component. You would want to create a baseline for each iteration. This would be quite a bit of manual work to get all the iteration imported.
I would have to agree with your assessment. Since SVN doesn't have a first class representation for branches or tags, The SVN importer that ships with RTC makes heavy use of the defacto standard repo layout to determine the branch structure. There is some flexibility in the importer but not enough to accommodate the custom representation you have presented.
Having said that, you could approximate history by importing each iteration in order starting from the beginning into the same component. You would want to create a baseline for each iteration. This would be quite a bit of manual work to get all the iteration imported.
Having said that, you could approximate history by importing each iteration in order starting from the beginning into the same component. You would want to create a baseline for each iteration. This would be quite a bit of manual work to get all the iteration imported.