svn学习1


SVN

folder > context menu > create repository here

典型的工作周期是这样的:

  1. 更新你的工作拷贝

svn update
svn checkout -r 1729 # Checks out a new working copy at r1729
svn update -r 1729 # Updates an existing working copy to r1729
  1. 做出修改

svn add
svn delete
svn copy
svn move

svn copy trunk branches/my-calc-branch
svn commit -m "Creating a private branch of /calc/trunk."

现在,我们必须告诉你建立分支最简单的方法:svn copy可以直接对两个URL操作。

svn copy http://svn.example.com/repos/calc/trunk/ http://svn.example.com/repos/calc/branches/my-calc-branch / -m "Creating a private branch of /calc/trunk."
  1. 检验修改

svn status -v -u
svn diff
svn diff > patchfile
svn diff -r 1:4 rules.txt
  1. 可能会取消一些修改

svn revert
  1. 解决冲突(合并别人的修改)

svn update
svn resolved
  1. 提交你的修改

svn commit
svn commit -m "Add a few more things"
svn resolved 
    Resolved conflicted
  1. 如果你构建了一个版本,并且希望从Subversion打包文件

但是你不希望有讨厌的.svn目录,这时你可以导出版本库的一部分文件而没有.svn目录。就像svn update和svn checkout,你也可以传递--revision选项给svn export

svn export http://svn.example.com/svn/repos1 # Exports latest revision
svn export http://svn.example.com/svn/repos1 -r 1729 # Exports revision r1729
  1. svn cleanup

  2. 修订版本关键字

HEAD 版本库中最新的(或者是“最年轻的”)版本。 BASE 工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。 COMMITTED 项目最近修改的修订版本,与BASE相同或更早。 PREV 一个项目最后修改版本之前的那个版本,技术上可以认为是COMMITTED -1。 因为可以从描述中得到,关键字PREV,BASE和COMMITTED只在引用工作拷贝路径时使用,而不能用于版本库URL,而关键字HEAD则可以用于两种路径类型。

svn diff -r PREV:COMMITTED foo.c  # shows the last change committed to foo.c
svn log -r HEAD   # shows log message for the latest repository commit
svn diff -r HEAD  # compares your working copy (with all of its local changes) to the latest version of that tree in the repository
svn diff -r BASE:HEAD foo.c   # compares the unmodified version of foo.c with the latest version of foo.c in the repository
svn log -r BASE:HEAD  # shows all commit logs for the current versioned directory since you last updated
svn update -r PREV foo.c  # rewinds the last change on foo.c, decreasing foo.c's working revision
svn diff -r BASE:14 foo.c # compares the unmodified version of foo.c with the way foo.c looked in revision 14
  1. 版本日期

在版本控制系统以外,修订版本号码是没有意义的,但是有时候你需要将时间和历史修订版本号关联。为此,--revision (-r)选项接受使用花括号({和})包裹的日期输入,Subversion支持标准ISO-8601日期和时间格式,也支持一些其他的。下面是一些例子。(记住使用引号括起所有包含空格的日期。)

svn checkout -r {2006-02-17}
svn checkout -r {15:30}
svn checkout -r {15:30:00.200000}
svn checkout -r {"2006-02-17 15:30"}
svn checkout -r {"2006-02-17 15:30 +0230"}
svn checkout -r {2006-02-17T15:30}
svn checkout -r {2006-02-17T15:30Z}
svn checkout -r {2006-02-17T15:30-04:00}
svn checkout -r {20060217T1530}
svn checkout -r {20060217T1530Z}
svn checkout -r {20060217T1530-0500}

Subversion 会早一天 如果你希望查询包括27号,你既可以使用({"2006-11-27 23:59"}),或是直接使用第二天({2006-11-28})。 你可以使用时间段,Subversion会找到这段时间的所有版本:

svn log -r {2006-11-20}:{2006-11-29}
panda /
Published under (CC) BY-NC-SA in categories study  tagged with svn