Sertakan sub-proyek umum

Sometimes you will want to include another project within your working copy, perhaps some library code. There are at least 4 ways of dealing with this.

Gunakan svn:externals

Set the svn:externals property for a folder in your project. This property consists of one or more lines; each line has the name of a sub-folder which you want to use as the checkout folder for common code, and the repository URL that you want to be checked out there. For full details refer to bagian bernama “External Items”.

Commit the new folder. Now when you update, Subversion will pull a copy of that project from its repository into your working copy. The sub-folders will be created automatically if required. Each time you update your main working copy, you will also receive the latest version of all external projects.

If the external project is in the same repository, any changes you make there will be included in the commit list when you commit your main project.

If the external project is in a different repository, any changes you make to the external project will be shown or indicated when you commit the main project, but you have to commit those external changes separately.

Of the three methods described, this is the only one which needs no setup on the client side. Once externals are specified in the folder properties, all clients will get populated folders when they update.

Gunakan copy pekerjaan berulang

Create a new folder within your project to contain the common code, but do not add it to Subversion.

Pilih TortoiseSVNCheckout untuk folder baru dan checkout copy dari kode umum kedalamnya. Anda sekarang mempunyai copy pekerjaan terpisah berulang dalam copy pekerjaan utama Anda.

Dua copy pekerjaan independen. Ketika Anda mengkomit perubahan ke leluhurnya, perubahak ke WC berulang diabaikan. Demikian juga ketika Anda memutahirkan leluhurnya, WC berulang tidak dimutahirkan.

Gunakan lokasi relatif

If you use the same common core code in several projects, and you do not want to keep multiple working copies of it for every project that uses it, you can just check it out to a separate location which is related to all the other projects which use it. For example:

C:\Projects\Proj1
C:\Projects\Proj2
C:\Projects\Proj3
C:\Projects\Common
        

and refer to the common code using a relative path, e.g. ..\..\Common\DSPcore.

If your projects are scattered in unrelated locations you can use a variant of this, which is to put the common code in one location and use drive letter substitution to map that location to something you can hard code in your projects, e.g. Checkout the common code to D:\Documents\Framework or C:\Documents and Settings\{login}\My Documents\framework then use

SUBST X: "D:\Documents\framework"
        

to create the drive mapping used in your source code. Your code can then use absolute locations.

#include "X:\superio\superio.h"
        

Metode ini hanya akan bekerja dalam semua lingkungan PC, dan Anda perlu mendokumentasi pemetaan drive yang dibutuhkan agar tim Anda mengetahui dimana file misterius ini berada. Metode ini langsung untuk digunakan dalam lingkungan pengembangan tertutup dan tidak direkomendasikan untuk penggunaan umum.

Add the project to the repository

The maybe easiest way is to simply add the project in a subfolder to your own project working copy. However this has the disadvantage that you have to update and upgrade this external project manually.

To help with the upgrade, TortoiseSVN provides a command in the explorer right-drag context menu. Simply right-drag the folder where you unzipped the new version of the external library to the folder in your working copy, and then select Context MenuSVN Vendorbranch here. This will then copy the new files over to the target folder while automatically adding new files and removing files that aren't in the new version anymore.