SVN mockup is best practice

In CVS, we have a project with several directories. There is a nightly build that needs to pull material from another catalog in the same CVS project to build a nightly build. Therefore, I have to keep this in mind, and I need to change the construction of the script to check the situation from different repositories, if we move on to SVN.

I read the corresponding SVN QV, but I have my own question that I need an answer to.
I can do:

/trunk /tags /branches /3rdparty 

Where everything that we develop comes out of / trunk, and any third party that we do not change goes to / 3rdparty.

Everything is fine, now the nightly assembly of the script should mark the trunk, check the tag, check the necessary 3rdparty material in the appropriate directories, and then start the assembly process.
The build result (compiled material) may remain on the NFS mount for a period of time, so the integration team can return for 2 weeks and recreate the problems.

Are all my bases covered?

+6
svn build-process cvs tagging cvs2svn
source share
5 answers

The Redbook here contains a lot of information about layouts for different types of projects and how to manage them.

You can also use hooks / triggers / externals to output data from an independent repo called a "third party". Therefore, when a developer checks one repo, he gets the third part. There are many ways to share problems, but they are a single repo of the components.

Luck

+9
source share

It might be worth using a build engine like hudson or cruise control. The workflow is slightly different - tags are created after assembly, but you can get additional modules that give you some control over this. The fact is that all the work of developers works for you, and you get a decent infrastructure for your nightly builds, and you get a good web interface for controlling and monitoring everything.

Personally, I put some external definitions on the body to pull the corresponding third-party libraries into the appropriate places. Thus, when you change the version of a third-party library, you make changes to the trunk and do not have to modify build scripts. It also means that you can create older versions just by checking the corresponding connecting lines / tags / branches. Be warned - just do them on the trunk, scattering them around, can lead to murder.

I would also repo a few layers:

 project /trunk /branches /tags 3rdparty 

Just because it gives you more options to add additional top-level projects at some point. This allows you to manage various projects completely independently - and you can still use external links to link to the correct versions from one to another, if there are dependencies - this perfectly stops changes in one project that silently violate / modify dependent projects.

This can also be done using separate repositories, which is good, but in this case I would separate the 3rdparty section from a separate repo from the very beginning.

+2
source share

Why don't you move the third party into the trunk? when each of you sends a copy of a third party, it goes into a branch. And, obviously, you will not change third-party material into branches, because your branch is encoded based on existing third-party material.

I'm not sure that you are tagging what you are talking about. Is this the version number you have in mind? If this is the version number, go through the script and name the assembly.

+1
source share

If "multiple directories" are separate components that you want to use independently, then you must have them in your own repository so that they can be marked separately. But if it’s all a separate stand-alone project (i.e. if you usually mark and fork all components together), then you can probably put all the code in the same repository.

You should consider using externals for third-party artifacts.

+1
source share

My script checks the connecting line, modifies the files (corrects the version numbers in the AssemblyInfo.cs files, etc.), then the tags that. If you do not need to modify the files in any way, then tagging will also be good.

In addition, your tuning sounds to me at least.

0
source share

All Articles