当前位置: 首页 > news >正文

[]使用 Tortoise SVN 创建 Externals 外部引用目录

原文地址: 使用 Tortoise SVN 创建 Externals 外部引用目录 作者: 奋斗的点心要专注
在使用 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 下访问存放公共数据的引用。
这时候,需要在 bin/data 对应的本地目录上点击鼠标右键,选择 TortoiseSVN->Properties(属性),如下所示:
在出现的对话框中,找到右下角的  New(新建)... 按钮,在点击出现的菜单中选择  Externals(外部)
[转载]使用 <wbr>Tortoise <wbr>SVN <wbr>创建 <wbr>Externals <wbr>外部引用目录

在弹出的 svn:externals 对话框中,点击左下角的  New(新建)... 按钮新建外部引用目录,这时会弹出 Edit External(修改外部) 对话框,在  Local path(本地路径) 编辑框中输入生成的目录名,可以是 public_data 或其他,在 URL 中输入要引用的外部目录地址,在这个例子中,是 http://svn.example.net/project/data/public_data。完成后,一路 OK(确定) 关闭所有对话框。
回到 bin/data 对应的本地目录,点击鼠标右键,选择 SVN Update(SVN 更新) 更新代码,SVN 会自动创建一个刚才在 Local path 中填入对应名称的目录,其下的数据就是刚填入的 URL 指向的外部引用内容。
一切搞定~赶快用 SVN Commit(SVN 提交)... 提交修改吧~!以后从主干切出来的分支就都共用一份 public_data 了!其他分支的修改类似。

相关文章:

  • 【makefile 】makefile 中 $@ $^ %
  • 【shell脚本】linux shell脚本学习
  • 【变参函数】写一个类似printf的不定参数个数函数
  • 【linux备份】Linux备份和恢复方法|tar打包排除某个目录
  • 【gdbcore】Linux中gdb 查看core堆栈信息1
  • 【gdbcore】Linux中gdb 查看core堆栈信息2
  • 【shell脚本】Shell 编程:Bash空格的那点事 shell编写注意的格式
  • 【-exec和xargs】-exec和xargs的区别
  • 【root无法删除文件】linux下root不能删除/修改文件权限不够|chattr与lsattr命令详解......
  • 【主机名变bogon】linux主机名被更改为bogon原理分析
  • 【Linux】进程间通信--共享内存
  • 【open stack】openstack从入门到放弃
  • 【防火墙】linux打开防火墙的某几个端口|打开/关闭防火墙centos7
  • 【web.xml】web.xml文件的作用和servlet 、servlet-mapping 标签
  • 【JSON和JSONP】浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
  • 【个人向】《HTTP图解》阅后小结
  • 2018一半小结一波
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • bootstrap创建登录注册页面
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python实现BT种子转化为磁力链接【实战】
  • Twitter赢在开放,三年创造奇迹
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端临床手札——文件上传
  • 全栈开发——Linux
  • 如何选择开源的机器学习框架?
  • 使用API自动生成工具优化前端工作流
  • 详解NodeJs流之一
  • 写代码的正确姿势
  •  一套莫尔斯电报听写、翻译系统
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • AI算硅基生命吗,为什么?
  • puppet连载22:define用法
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • ( 10 )MySQL中的外键
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (小白学Java)Java简介和基本配置
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .bashrc在哪里,alias妙用
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .net 设置默认首页
  • .net 受管制代码
  • .NET简谈设计模式之(单件模式)
  • @Transient注解
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [Android] Implementation vs API dependency
  • [Android]Tool-Systrace
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn