应用场景:
开发机和服务器共用同一版本库。
开发机修改了程序,提交到远程。结果发现错误,服务器想切换到原先的版本。
============================================
第一种功能:
服务器用linux的命令行。
以下假定svn已经加到了系统path中。
/path1/path2是代码的实际根路径
正确的做法:服务器在更新时先执行svn info /path1/path2
然后控制台会输出当前的修订版的版本号。
然后输入更新到最新版本的命令(假定服务端也在本机,否则ip改变)
svn checkout svn://127.0.0.1/库的名称 /path1/path2
这时服务器代码得到了更新,然后发现代码有错误了,
就在控制台再输入
svn checkout -r 某个版本号 svn://127.0.0.1/库的名称 /path1/path2
即可。
某个版本号就是先前用info命令看到的版本号。
这时服务器的代码就回到了更新前的状态,但是注意:svn库代码并没有改变,是错误的代码。
所以如果服务器再执行svn checkout svn://127.0.0.1/库的名称 /path1/path2,又会
更新到错误的代码。
所以现在应该修改错误,并且开发机再度提交,然后服务端更新,如果发现错误,再用-r参数回到从前,所以svn也称为时间机器。
=======================================
以下是另一种场景,也是另一种功能:
开发机做了一个功能,提交,服务器更新,这时后悔了,认为这个功能毫无用处,不应该提交。
假定开发机是windows,并且已经安装了乌龟svn,就是TortoiseSVN,我用的版本是1.5.0
这时,开发机代码先全部更新,然后右击根目录->svn->显示日志->点击要要回到的某个版本,
->右键弹出菜单->选择“复原到此版本(E)”->点击确定,->根目录提交所有改变->
进入服务器,
svn checkout svn://127.0.0.1/库的名称 /path1/path2
这时服务器又回到了从前,但是与第一种有重要差别,现在就是最新版本。
开发机和服务器共用同一版本库。
开发机修改了程序,提交到远程。结果发现错误,服务器想切换到原先的版本。
============================================
第一种功能:
服务器用linux的命令行。
以下假定svn已经加到了系统path中。
/path1/path2是代码的实际根路径
正确的做法:服务器在更新时先执行svn info /path1/path2
然后控制台会输出当前的修订版的版本号。
然后输入更新到最新版本的命令(假定服务端也在本机,否则ip改变)
svn checkout svn://127.0.0.1/库的名称 /path1/path2
这时服务器代码得到了更新,然后发现代码有错误了,
就在控制台再输入
svn checkout -r 某个版本号 svn://127.0.0.1/库的名称 /path1/path2
即可。
某个版本号就是先前用info命令看到的版本号。
这时服务器的代码就回到了更新前的状态,但是注意:svn库代码并没有改变,是错误的代码。
所以如果服务器再执行svn checkout svn://127.0.0.1/库的名称 /path1/path2,又会
更新到错误的代码。
所以现在应该修改错误,并且开发机再度提交,然后服务端更新,如果发现错误,再用-r参数回到从前,所以svn也称为时间机器。
=======================================
以下是另一种场景,也是另一种功能:
开发机做了一个功能,提交,服务器更新,这时后悔了,认为这个功能毫无用处,不应该提交。
假定开发机是windows,并且已经安装了乌龟svn,就是TortoiseSVN,我用的版本是1.5.0
这时,开发机代码先全部更新,然后右击根目录->svn->显示日志->点击要要回到的某个版本,
->右键弹出菜单->选择“复原到此版本(E)”->点击确定,->根目录提交所有改变->
进入服务器,
svn checkout svn://127.0.0.1/库的名称 /path1/path2
这时服务器又回到了从前,但是与第一种有重要差别,现在就是最新版本。