本节说一下Subversion的子命令SVN Update命令问题,大家应该知道Subversion是一个版本管理软件,了解了Subversion的命令就可以更好的操作 Subversion了。
名称
SVN Update命令—更新你的工作拷贝。
概要
svnupdate[PATH...]
SVN Update命令描述
svnupdate会把版本库的修改带到工作拷贝,如果没有给定修订版本,它会把你的工作拷贝更新到HEAD修订版本,否则,它会把工作拷贝更新到你用--revision指定的修订版本。为了保持同步,svnupdate也会删除所有在工作拷贝发现的无效锁定(见“有时你只需要清理”一节)。
对于每一个更新的项目开头都有一个表示所做动作的字符,这些字符有下面的意思:
A添加
D删除
U更新
C冲突
G合并
经常由于坑爹的需求,功能要切回到之前的某一个版本。有两种方法可以实现:
方法1: 用svn merge
1) 先 svn up,保证更新到最新的版本,如20;
2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。
如果想要更详细的了解情况,可以使用svn
diff -r 10:20 [文件或目录];
3) 回滚到版本号10:svn
merge -r 20:10 [文件或目录],注意版本号之间的顺序,这个叫反向合并;
4) 查看当前工作版本中的文件,如test.cpp和版本号10中文件的差别:svn diff -r 10 test.cpp, 有差别则手动改之;
5) 若无差别,则提交:svn ci -m“back to r 10,xxxxx” [文件或目录]。这时svn库中会生成新的版本,如21。
方法2: 用svn up
前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注意,这时svn库中会并不会生成新的版本,下次在本地svn up之后,还是会回到之前的版本。——这个方法比较简单一些,推荐使用,不过为了安全,最好是删除掉目录下所有文件再执行 svn up -r 版本号 命令即可。