首页 > 其他分享 >使用svn.externals(外链)提升美术多个svn目录的svn up速度

使用svn.externals(外链)提升美术多个svn目录的svn up速度

时间:2023-08-29 23:55:30浏览次数:43  
标签:svn SVN externals up common 目录

svn up多个目录耗时大

svn上的美术资源项目,在打包机上对一个很久没有变化的目录进行svn up也是需要消耗不少时间的,特别打包时需要对多个目录进行svn up,比如空跑54个目录的svn up耗时在3分多钟,而通过svn:externals把这些目录外链到一个目录下,可以大大减少svn up的时间。


关于svn:externals的介绍

假如你的 SVN 项目分为客户端、服务端,它们需要用到同一份配置,那么可以在 /client/common 、 /server/common 目录中存放相同的配置文件,但是每次一方修改后都要手动复制修改到另外一个目录?这也太麻烦了吧,有没更好的方法呢?这篇文章给你讲解如何使用 svn:externals 完美的解决。

假设我们的目录结构如下图所示,服务端客户端都有一个 common 目录:
目录结构

最简单的方法也是最笨的方法,就是每次修改后都手动复制文件到另外一个目录,人工确保两个目录的文件一致,这很容易出问题。

稍微好点的方法是,在 /server/common 目录检出(checkout)一份 /client/common,这样省去了复制文件的麻烦,每次只需要到 common 目录进行 update 就行了。但是,我们必须记得要进去 common 目录进行更新才行,直接在外层目录进行 update 是不会更新的。

其实,SVN 还有提供一个叫 externals 的属性,可以用来在目录中引入其他 SVN 地址目录,更新时还会同步自动更新这个引入的 external 目录。

在你需要的目录,右键选择 TortoiseSVN - Properties:
svn properties

在打开的属性窗口中,我们点击新建添加外部(Externals)SVN 目录
svn external

填写保存目录(Local path),外部 SVN 地址(URL),最后点击确定
add-external

添加成功后,我们可以看到属性列表窗口已经列出来我们刚添加的地址了。
这样,我们就把客户端 /client/common 目录引入到了 /server/common
after-add

现在,我们更新试下,发现外部引入的 SVN 目录也会自动更新了,而且不需要进入 common 目录去更新,在父目录也是可以更新到的。
另外,这个外部引入的 SVN 目录,你一样可以进行修改提交,然后其他地方都能更新到这个修改。
update externals

提醒下大家,这个引入外部 SVN 目录是可以任何 SVN 地址的,不管你是不是同个 SVN 仓库都行。


批量设置svn:externals

上述是单个设置,如果我们有非常多个目录需要外链,那么把这些外链批量设置到某个目录的属性上。

  1. 在纳入svn控制的目录下创建一个文本用来保存所有的外链路径,比如叫:external.txt
  2. 在externals.txt中按行增加外链,格式:文件夹 svn地址
  3. 写一个get_all_svn.bat,填入以下内容,双击执行它就会对我们当前目录增加属性,只需要初始化一次
  4. 后面每次只需要在当前目录下进行svn up就可以正常更新下所有外链的内容

get_all_svn.bat,内容:

svn:externals . -F external.txt
svn up

external.txt,文件的内容示例:

文件夹名字1 https://subversion.assembla.com/svn/your_assembla_space/trunk/
文件夹名字2 http://subversion.assembla.com/svn/your_assembla_space_2/trunk

详细介绍:Using SVN Externals Definitions | Assembla Help Center --- 使用 SVN 外部定义 |组装帮助中心

标签:svn,SVN,externals,up,common,目录
From: https://www.cnblogs.com/zhaoqingqing/p/17666158.html

相关文章

  • peewee update和save性能分析
    背景python项目中使用了peewee这款orm框架,在对数据库更新时有两种语法,分别是save和update方法。有同事说从peewee的日志来看,update比save更快,于是做了一个简单的比较实验,看看真实情况如何。基础环境:python:3.8.10peewee:3.16.2数据库:sqlite准备插入1w条数据importdate......
  • python3.6使用wordcloud 1.9报错ValueError: Only supported for TrueType fonts
    该版本的wordcloud的源码中显示不兼容python3.6 解决办法:修改wordcloud源码修改前508:box_size=draw.textbox((0,0),word,font=transposed_font,anchor="lt")510:result=occupancy.sample_position(box_size[3]+self.margin,......
  • PyQt/PySide's qwindows.dll qwindowsvistastyle.dll is corrupted by UPX
    Windows1064-bitsPython3.8.1064-bitsPySide25.15.2PyInstaller4.3UPX4.1.0itraises:"ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialize"Solutioninspecfiles,addupx_exclude=['qwindows.dll'......
  • thinkphp5 日期+group by + 分页paginate查询
    <?php//根据日期来统计所消耗的点数//模型的使用方法$result=$model->field("id,FROM_UNIXTIME(createtime,'%Y-%m-%d')as`createtime`,sum(price)ascount_price")->group("FROM_UNIXTIME(createtime,'%Y-%m-%d'),store......
  • iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
    1.使用素材创建木琴App的UI。 2.连接IBAction。  其余按钮直接拖拽到play里边。 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7. 4.将音频文件拖入项目文件中。 Cr......
  • Vue【原创】基于elementui的分组多选下拉框【group-list】
    效果图: 如图分为多选模式和单选模式。 group-select:1<template>2<div>3<el-select4v-model="innerValue"5:placeholder="placeholder"6@change="changeSelect"......
  • The Riordan Group and Applications笔记
    2022年的一本书,只有376页。证明直接去书里面找。目录1介绍1.1啥是RiordanArray1.2源起和研究动机1.3基础的应用练习参考2系数抽取和生成函数2.1形式幂级数2.2系数抽取2.3拉格朗日反演定理2.4生成函数练习参考3RiordanGroup3.1RiordanArray和RiordanGroup3.2一些特殊......
  • 网神SecGate 3600防火墙obj_app_upfile任意文件上传漏洞
    漏洞简介网神SecGate3600防火墙obj_app_upfile接口存在任意文件上传漏洞,攻击者通过构造特殊请求包即可获取服务器权限影响范围网神SecGate3600防火墙漏洞复现fofa语法:fid="1Lh1LHi6yfkhiO83I59AYg=="登录页面如下:POC:POST/?g=obj_app_upfileHTTP/1.1Host:jg.zhon......
  • vue3 setup访问子组件的 DOM 元素
    使用setup的情况下这个时候我们无法使用this,注意在setup中setup是封闭的,不会将子组件事件暴露出来,所以要用defineExpose(),将需要在父组件调用的函数暴露出去,子组件代码如下:<template><divref="domRef"><div>哈哈哈哈</div></div></template><scriptsetuplang="t......
  • webpack生产环境优化:externals
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:externalsexternals配置主要是为了防止某些通过CDN引入的包被打包到输出的bundle中。一、核心配置/*webpack.config.jswebpack的配置文件路径:./webpack.config......