源码管理工具(SCM)之备忘

简介: 首先声明,本人主张多使用命令行之工具(Command Line)代替图形界面(GUI)。个中优点,熟悉软件业务操作的人自然懂得。其次,本人希望多个源码工具共同混合使用,包括 Git、Hg(Mercurial)、SVN(Subversion),不必定于一尊。

首先声明,本人主张多使用命令行之工具(Command Line)代替图形界面(GUI)。个中优点,熟悉软件业务操作的人自然懂得。其次,本人希望多个源码工具共同混合使用,包括 Git、Hg(Mercurial)、SVN(Subversion),不必定于一尊。实际上,除却分布式与集中这两种显著的管理思想差别之外,其他用法可以说都大同小异。前者去中心化以 Git、Hg 为代表,后者集中化的思想则以 SVN 为最。

SVN 篇

  • 命令行的工具下载,如 Slik SVN:http://www.sliksvn.com/en/download
  • 如果没设置系统环境变量,设置一下:PATH=C:\Users\Frank\dev\svn
  • 检出项目:svn checkout https://naturaljs.googlecode.com/svn/trunk 新建目录名 --username 用户名
  • Checkout 之后,自动建立配置参数:C:\Users\Frank\AppData\Roaming\Subversion。用文本编辑器打开 config 文件,里面有详尽丰富的注释。注释符号为 “#”。
  • 常用命令 svn checkout 检出; svn st 状态;svn add 〈FileName〉 添加文件;svn del〈FileName〉 删除文件;svn ci 提交并发送的服务器;svn rm <folder> 删除目录;svn ci -m "logMsg"    写日志并提交;svn update -r ReNo 切换到某个版本;
  • 提交须配置一下究竟哪个文本编辑器来写日志。编辑 config 文件,加入 editor-cmd = notepad.exe,或者你喜欢的编辑器完全路径。如果路径包含空格须用“双引号”表示这是个字符串。
  • 第一次输入账号和密码之后,就会自动保存起来。
  • SVN 支持文件类型,可以把 SVN 服务器弄成一个静态服务器用。
  • 如果不想每次提交文件都指明 content type,可以用自动属性识别。编辑 config 文件,先令 enable-auto-props = yes,然后在最后加入:
    *.png = svn:mime-type=image/png
    *.jpg = svn:mime-type=image/jpeg
    *.gif = svn:mime-type=image/gif
    *.css   = svn:mime-type=text/css
    *.js    = svn:mime-type=application/x-javascript
    *.htm   = svn:mime-type=text/html
    *.html  = svn:mime-type=text/html
    *.txt   = svn:mime-type=text/plain
  • 如果提示已过时,执行 svn update,删除或继续提交。
  • 冲突时要协商,协商好之后告诉 SVN 协商结果:svn resolve --accept working test.txt。另详见:http://bbs.ajaxjs.com/forum.php?mod=viewthread&tid=3660
  • 加参数指定 Revision,如 http://xxx/svn/javaCode/mmc/WebRoot/goods/goods.inc?p=570。
  • 忽略某个文件夹  (要求 文件夹 尚未 加入版本控制)
    svn propset svn:ignore dirname . (注意最后面的 . 一点,还有不用把目录加入到版本管理)

推荐一个 SVN 免费的私有空间:http://code.taobao.org/

分支与合并

所谓“分支开发”,就是将主干(trunk)保持在稳定可运作的版本(虽然本来就该这么做),在开发任何新功能时都另建新分支(branch),开发到一段落之后再合并回主干。能支援这样的开发模式,是因为Hg或Git这些分布式版本控制系统做开分支、合并等动作的额外开销都很低。

目录
相关文章
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
307 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
数据库 NoSQL MongoDB
重磅 | 阿里云与MongoDB达成战略合作,成为全球唯一提供最新版MongoDB的云厂商
10月31日,阿里云与开源数据库软件公司MongoDB达成战略合作协议,根据协议,阿里云将成为全球唯一可提供最新的MongoDB服务的云厂商,最新版MongoDB 4.2将于11月上线。
3568 0
|
XML Java 数据安全/隐私保护
鸿蒙开发(3)---TextField组件
鸿蒙开发(3)---TextField组件
553 1
鸿蒙开发(3)---TextField组件
|
Dart JavaScript 前端开发
面向Android开发者的Dart学习教程
近日Google发布了Flutter2.0, 使用Flutter开发的App可以在不做修改的情况下发布到更多的主流平台;再加上早些时候Fuchsia也宣布将Dart作为主要的UI开发语言,如果未来你想
280 0
|
存储 缓存 运维
高并发,你真的理解透彻了吗?
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在...
372 0
|
存储 Dart Android开发
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
564 0
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
|
存储 弹性计算 供应链
【ECS常见问题 二】抢占式实例问题
抢占式实例的配置不够,如何低成本地改用更高配置? 由于抢占式实例不支持变更实例规格,建议您使用抢占式实例的系统盘创建自定义镜像,然后使用自定义镜像创建更大规格的抢占式实例。
【ECS常见问题 二】抢占式实例问题
全网首发:解决办法,/bin/ant: 1: cd: can‘t cd to /bin/../share/ant/bin/..
全网首发:解决办法,/bin/ant: 1: cd: can‘t cd to /bin/../share/ant/bin/..
929 0
|
.NET 关系型数据库 MySQL

热门文章

最新文章