svn:externals实现项目资源的共享

来源:互联网 发布:黑客帝国重访矩阵 编辑:程序博客网 时间:2024/05/16 14:19

 

 

svn propset svn:externals "models svn://xxx.com/xhealth/app-models" ./

 

 

 

 以下为转载的内容:============================================================================================

svn实现文件/目录共享

1svn实现文件/目录共享 一、svn如何实现两个目录之间的共享呢?
  如下图:假设项目project1的构成需要用到project2的一个模块代码:project2/trunk/zhanghao/accessdata,如何简单地为project1提供这个组成模块,而不需要每个开发员都单独从project2中check out到自己的工作目录呢?

       ________________repos/_____________
       |                                 |
   project1/                        project2/
      |---trunk                          |--trunk
            |--zhanghao  <┈┈┈┈┈┈┐   |--zhanghao
            |--mycode                 └┈┈┈ |--accessdata
      |---tags                                       |---include
      |---branches                             |--deletedata

二、利用svn的属性svn:externals可简单实现共享效果。

  我们检出project1,并设置trunk的svn:externals属性:
  svn co
http://www.scmbbs.com/repos/project1;
  cd project1/trunk;
  svn propset svn:externals "accessdata
http://www.scmbbs.com/repos/project2/trunk/accessdata" zhanghao;

请注意:属性值"accessdata
http://www.scmbbs.com/repos/project2/trunk/accessdata"由两个字段组成,第一个字段“accessdata”表示check out到本地时新文件夹名字,第二个字段URL指向要引用的源头地。如果漏设了一个字段,属性设置将会失败。

  属性设置完毕后,我们再来检出project1,发现trunk/zhanghao下多出了一个文件夹:accessdata,打开检查里面的内容,发现正是project2/trunk/zhanghao/accessdata里的内容。

另外,你可以对同一个目录设置多个svn:externals属性,以便在此目录下获得多个共享组件。如:
  svn propset svn:externals "accessdata  
http://www.scmbbs.com/repos/project2/trunk/accessdata" zhanghao;
  svn propset svn:externals "deletedata  
http://www.scmbbs.com/repos/project2/trunk/deletedata" zhanghao;
  这两条命令对project1/trunk/zhanghao目录设置了2个共享文件夹accessdata、deletedata。
更新project1/trunk/zhanghao时,文件夹结构如下:

    project1/
      |--trunk
            |--zhanghao
                 |--accessdata
                 |--deletedata

如果你对project2/trunk/zhanghao/acessdata文件夹有修改权限,则对project1下的acessdata的修改也会提交到project2中,实现真正的共享。

===========================================================================================================================

svn实现文件/目录的共享

场景:两个项目ProjectA和ProjectB,ProjectB需要共享ProjectA目录下code文件夹中的文件,并且在两个项目中对code下文件的修改都会相互影响。设置如下图解:
图片点击可在新窗口打开查看此主题相关图片如下:复制url.jpg
图片点击可在新窗口打开查看
在svn浏览器中复制ProjectA项目下code文件夹的url地址
图片点击可在新窗口打开查看此主题相关图片如下:设置属性.jpg
图片点击可在新窗口打开查看
这个属性取值的时候"文档(这里是有空格的,切记)http://"这是本人在参照这个文档测试时了解的
在本地ProjectB项目根目录下点右键-->TortoiseSVN-->属性 打开属性设置窗口,然后增加一个属性
图片点击可在新窗口打开查看此主题相关图片如下:下载.jpg
图片点击可在新窗口打开查看
ProjectB项目更新

 ======================================================================================================================