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

首先声明,本人主张多使用命令行之工具(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/

Hg(Mercurial)篇

  • 下载 Hg:http://mercurial.selenic.com/downloads/

技巧篇

  1. 如何嵌套多个 hg 库?

    在父目录下创建一个.hgsub的配置文件nested = common,common就是指明的嵌套目录名

Git 篇

你可能感兴趣的:(源码管理工具(SCM)之备忘)