subversion是版本控制系统. 虽然现在还有git. 但做为集中研发的模式, subversion还是适用的.
(虽然subversion对很多人来说已经不再陌生, 但毕竟江山代有人才出嘛, 新人还是会出来的...)
1. 在你本地的改动未提交到版本库的时候, 你想恢复之前的修改. 可以
svn revert xxx
此改动将撤销你的修改,恢复之前的状态
2. svn update -r N (N未某个版本代码, update会将本地的修改更新到某个版本, 但**却无法提交到版本库**)
举个例子,假如你现在的版本是 100. 你想退回到99. 那么用
svn update -r 99 确实能让你回到99这个版本. 但是版本库里最新的还是100. 而你无法svn commit本地的99版本来使得版本库重新回到99这个版本.
(所以,无法理解这个命令的用处,因为你只能看到改动...)
3. 正确的回退的方法是 用 svn merge. 类似
svn merge -r100:99 . ("."是要的, 然后再 svn commit -m 'revert to version 99')
(如果版本之间相差1, 还可以用svn merge -c -100 .)
4. 用svn export代码,再覆盖的方法并不可取...如果源代码很多呢?
举个例子, xxx/ 这个目录如果包含了几千个文件, 而从99版本到100版本变更了其中几十个处于不同子目录的文件. 那么export xxx/,然后拷贝覆盖确实不适合...
5. 根据svn的官方资料,似乎更合适的方法是 svn copy. 可以从某个版本拷贝出来.
(但似乎是针对已被删除的文件和目录适合,如果改文件或某个目录里的一些文件只是修改好像有点问题. 会告诉你目录已存在..不知道是否是我操作有问题...)