SVN的用法 - 外部引用

1.为什么要外部引用的功能

假设某家公司中现在有三个子项目(假设分别为a,b,c)需要开发,由于业务逻辑复杂,需要记录下一些关键的容易出错的地方,所以需要用到日志的功能,假设在a项目中写了一个日志基础类库,为了在项目b及c中也能使用,通常的做法是a中写好的log复制到b及c,这样有一点不好的地方是每次日志类库修改了,都需要往其它的地方复制,很麻烦,万一什么时候忘记了复制会造成版本不同步,如果用上SVN外部引用的功能,这些问题都会迎刃而解。

2.SVN外部引用过程

假设svn中log保存的路径如下

library/log/file1

library/log/file2

...

library/log/filen

三个项目a,b,c的路径分别为

projects/projecta

projects/projectb

projects/projectc

在目录projects/projecta上点击鼠标右键,选择TortoiseSVN->Properties(属性),在出面的窗口中输入logsvn://192.168.1.100/library/log,点击ok按钮,在目录projects/projecta中点击鼠标右键,选择SVNUpdate进行SVN更新的操作,然后进行SVNCommit的操作,这样就引用完成了,必须要提交,否则其它人无法看到你引用的变化情况。

引用完成以后目录projects/projecta下面的目录及文件如下:

projects/projecta/log/file1

projects/projecta/log/file2

...

projects/projecta/log/filen

注意在svn中,当在某一个目录下面要引用2个或以上的目录时,引用任何一个目录时以前引用的目录记录均不能删除,否则会出错的。

cachesvn://192.168.1.100/library/cache

logsvn://192.168.1.100/library/log

目录projects/projectb及projects/projectc的操作与projects/projecta的类似。

以后一旦log基础类库有变动,则直接修改library/log下面的文件,修改完成以后提交,然后在引用的目录下面执行svnupdate操作,这就是引用的好处,只需要维护一套代码,比较方便。