177.3.1. Initialized empty subversion repository for project
svn co svn://127.0.0.1/project cd project mkdir trunk mkdir tags mkdir branches svn ci -m "Initialized empty subversion repository in your_project"
177.3.2. ignore
svn propset svn:ignore [filename] [folder]
$ svn propset svn:ignore 'images' . $ svn ci -m 'Ignoring a directory called "images".'
$ svn propset svn:ignore '*' images $ svn ci -m 'Ignoring a directory called "images".'
$ svn export spool spool-tmp $ svn rm spool $ svn ci -m 'Removing inadvertently added directory "spool".' $ mv spool-tmp spool $ svn propset svn:ignore 'spool' . $ svn ci -m 'Ignoring a directory called "spool".'
.ignore
svn propset svn:ignore -F .cvsignore . svn propset -R svn:ignore -F .svnignore .
177.3.3. 关键字替换
Date 这个关键字保存了文件最后一次在版本库修改的日期,看起来类似于$Date: 2012-08-06 17:43:09 +0800 (Mon, 06 Aug 2012) $,它也可以用LastChangedDate来指定。 Revision 这个关键字描述了这个文件最后一次修改的修订版本,看起来像$Revision: 446 $,也可以通过LastChangedRevision或者Rev引用。 Author 这个关键字描述了最后一个修改这个文件的用户,看起来类似$Author: netkiller $,也可以用LastChangedBy来指定。 HeadURL 这个关键字描述了这个文件在版本库最新版本的完全URL,看起来类似$HeadURL: https://svn.code.sf.net/p/netkiller/svn/trunk/Docbook/Version/section.version.svn.xml $,可以缩写为URL。 Id 这个关键字是其他关键字一个压缩组合,它看起来就像$Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $,可以解释为文件calc.c上一次修改的修订版本号是148,时间是2006年7月28日,作者是sally。
$ cat weather.txt $Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $ $ svn propset svn:keywords "Id" weather.txt property 'svn:keywords' set on 'weather.txt' $ cat weather.txt $Id: section.version.svn.xml 446 2012-08-06 09:43:09Z netkiller $
设置多个关键字
$ svn propset svn:keywords "Author HeadURL Id Revision" -R *.php
svn -R propset svn:keywords -F .keywords *
177.3.4. lock 加锁/ unlock 解锁
$ svn lock -m "LockMessage" [–force] PATH
$ svn lock -m “lock test file“ test.php $ svn unlock PATH
177.3.5. import
svn import [PATH] URL svn export URL [PATH]
177.3.6. export 指定版本
svn log file svn export -r rxxxxx file or svn export -r rxxxxx file newfile svn ci -m "restore rxxxxxx"
177.3.7. 修订版本关键字
HEAD 版本库中最新的(或者是“最年轻的”)版本。 BASE 工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。 COMMITTED 项目最近修改的修订版本,与BASE相同或更早。 PREV 一个项目最后修改版本之前的那个版本,技术上可以认为是COMMITTED -1。
$ svn cat -r PREV filename > filename $ svn diff -r PREV filename
177.3.8. 恢复旧版本
svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。比如说当前HEAD为2,而我要恢复成1版本,怎么做?
用svn merge:
svn update svn merge --revision 2:1 svn://localhost/lynn svn commit -m "restore to revision 1"
svn merge --r HEAD:1 svn://localhost/lynn
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
时间: 2024-10-06 07:10:49