在使用 SVN 的时候,偶尔会遇到这样的场景:
有一份公共代码或数据需要所有分支共享,如果存储在普通的目录下,切分支之后各个分支该目录可能会出现差异,为了避免这种差异,应该使用 SVN 的 externals 属性,确保在任意分支下的更改在所有分支下都能够生效。
这种场景其实很常见,例如有好几个 project 都使用同一份 framework 的代码,且需要同步更新,这时候就得将 framework 设置为外部引用,只需要在一个地方修改,所有 project 的 framework 都能更新。
具体可以参考 svn 的说明:http://www.subversion.org.cn/svnbook/1.2/svn.advanced.externals.html
对于 Tortoise SVN 这个图形化客户端,应用 externals 外部引用属性非常方便,下面用一个例子来说明吧。
假设有一份公共的数据需要所有分支共享,这时候应该创建一个特殊的分支用于存放这些公共数据,例如 data,它的地址为
http://svn.example.net/project/data
在这个分支下创建存放公共数据的目录,例如 public_data,然后将需要共享的公共数据存放到里面。
这时候回到主干分支,因为后续切出的分支都死从主干衍生出来的,应该在主干做相应改动。假设主干的地址是
http://svn.example.net/project/trunk
假设主干的地址是,它需要在 bin/data 下访问存放公共数据的引用。
有一份公共代码或数据需要所有分支共享,如果存储在普通的目录下,切分支之后各个分支该目录可能会出现差异,为了避免这种差异,应该使用 SVN 的 externals 属性,确保在任意分支下的更改在所有分支下都能够生效。
这种场景其实很常见,例如有好几个 project 都使用同一份 framework 的代码,且需要同步更新,这时候就得将 framework 设置为外部引用,只需要在一个地方修改,所有 project 的 framework 都能更新。
具体可以参考 svn 的说明:http://www.subversion.org.cn/svnbook/1.2/svn.advanced.externals.html
对于 Tortoise SVN 这个图形化客户端,应用 externals 外部引用属性非常方便,下面用一个例子来说明吧。
假设有一份公共的数据需要所有分支共享,这时候应该创建一个特殊的分支用于存放这些公共数据,例如 data,它的地址为
http://svn.example.net/project/data
在这个分支下创建存放公共数据的目录,例如 public_data,然后将需要共享的公共数据存放到里面。
这时候回到主干分支,因为后续切出的分支都死从主干衍生出来的,应该在主干做相应改动。假设主干的地址是
http://svn.example.net/project/trunk
假设主干的地址是,它需要在 bin/data 下访问存放公共数据的引用。
这时候,需要在 bin/data 对应的本地目录上点击鼠标右键,选择 TortoiseSVN->Propertiesÿ