`
alanland
  • 浏览: 640590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

svn revert 还原整个目录

    博客分类:
  • svn
阅读更多

参考下面两个问答:

http://stackoverflow.com/questions/8139605/does-svn-have-a-revert-all-command

-----------------------------------

You could do:

svn revert -R .

This will not delete any new file not under version control. But you can easily write a shell script to do that like:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done

-----------------------------------

There is a command

svn revert -R .

In addition
If you want to revert a whole directory of files,you can use the --depth=infinity option:

svn revert --depth=infinity 

svn revert is inherently dangerous, since its entire purpose is to throw away data—namely, your uncommitted changes. Once you've reverted, Subversion provides no way to get back those uncommitted changes

-----------------------------------

http://stackoverflow.com/questions/1239998/how-can-i-remove-all-my-changes-in-my-svn-working-directory

-----------------------------------

Used a combination of other peoples answers to come up with this solution

revert normal local svn changes

svn revert -R .

remove any other change and supports removing files/folders with spaces, etc.

svn status --no-ignore | grep -E '(^\?)|(^\I)' | sed -e 's/^. *//' | sed -e 's/\(.*\)/"\1"/' | xargs rm -rf

don't forget to get the latest files from svn

svn update --force

-----------------------------------

None of the answers here were quite what I wanted. Here's what I came up with:

# Recursively revert any locally-changed files
svn revert -R .

# Delete any other files in the sandbox (including ignored files),
# being careful to handle files with spaces in the name
svn status --no-ignore | grep '^\?' | \
    perl -ne 'print "$1\n" if $_ =~ /^\S+\s+(.*)$/' | \
    tr '\n' '\0' | xargs -0 rm -rf

Tested on Linux; may work in Cygwin, but relies on (I believe) a GNU-specific extension which allows xargs to split based on '\0' instead of whitespace.

The advantage to the above command is that it does not require any network activity to reset the sandbox. You get exactly what you had before, and you lose all your changes. (disclaimer before someone blames me for this code destroying their work) ;-)

I use this script on a continuous integration system where I want to make sure a clean build is performed after running some tests.

Edit: I'm not sure this works with all versions of Subversion. It's not clear if the svn status command is always formatted consistently. Use at your own risk, as with any command that uses such a blanket rm command.

-----------------------------------

svn status | grep '^M' | sed -e 's/^.//' | xargs rm

svn update

Will remove any file which has been modified. I seem to remember having trouble with revert when files and directories may have been added.

-----------------------------------

-----------------------------------

 

 

 

分享到:
评论

相关推荐

    svn命令大全.docx

    例如:svn update(如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本) svn update -r 200 test.php(将版本库中的文件 test.php 还原到版本 200) svn update test.php(更新,于版本库...

    svn linux下命令详解

    例如:svn update -r 200 test.php(将版本库中的文件 test.php 还原到版本 200)。 6. 查看文件或者目录状态 svn status 命令用于查看文件或者目录的状态。该命令的基本语法为:svn status <路径>。例如:svn ...

    ubuntu SVN命令大全

    - `svn revert` 命令用于撤销对文件或目录所做的所有修改,使其恢复到上次提交的状态。 #### 十六、Switch (切换) **命令格式**: - 切换到新 URL:`svn switch [URL] [本地路径]` - URL 映射:`svn switch --...

    SVN常用操作----查看代码提交以及改动记录方法

    如果发现某个提交有问题,可以通过`svn revert`命令撤销本地更改,或者使用`svn merge --revert`命令回滚远程仓库的特定提交。这有助于快速恢复到之前稳定的状态。 ### 10. 分支与标签 SVN支持分支和标签机制,...

    清除SVN批处理文件和右键功能

    在`svndel.bat`中,它可能会包含如`svn cleanup`、`svn revert`或`rmdir /s /q .svn`这样的命令,以清理、还原文件和删除.svn目录。 `svnext.reg` 文件则是一个注册表脚本,用于向Windows注册表中添加新的项。在本...

    linux系统下svn服务器操作命令

    1. 将文件 checkout 到本地目录:svn checkout path(path 是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2. 往版本库中添加新的文件:svn add file 例如:svn add test.php...

    SVN中文教程 SVN简明教程 SVN学习笔记

    - **Revert(还原)**:撤销本地的更改,恢复到上次提交的状态。 - **Branch(分支)**和**Tag(标签)**:用于支持灵活的开发策略,分支用于并行开发,标签用于标记特定版本。 4. **SVN协同工作流程** - 开发者...

    SVN版本控制系统

    安装后,用户可以直接在资源管理器中执行SVN操作,如Checkout(检出)、Commit(提交)、Update(更新)、Revert(还原)、Merge(合并)等。 3. SVN基本操作: - Checkout:从仓库下载最新版本的文件和目录到本地...

    SVN培训 SVN培训 SVN培训 SVN培训 SVN培训 SVN培训

    - **Revert(还原)**: 取消本地未提交的改动。 - **查看差异**: 比较文件的不同版本。 - **Commit(提交)**: 将本地改动提交到版本库。 **SVN使用图标说明** 1. **绿色对勾**: 表示文件状态正常。 2. **红色...

    WINDOWS svn安装包及教程_SVN

    6. **Revert**(还原):如果你想要撤销对某个文件的本地修改,可以选择“Revert”,这将恢复文件到上次提交的状态。 7. **Branch and Tag**(分支与标签):在大型项目中,SVN允许创建分支进行特性开发或修复bug,...

    linux下svn的使用

    - `svn update -r 200 test.c` (将 test.c 文件还原到版本 200) - **简写**: `svn up` **解释**: 使用此命令可以将本地工作副本更新到版本库中的最新版本或指定版本。 ##### 6. 查看文件或者目录状态 **命令**: ...

    linux下svn基本命令.pdf

    svn update -r 200 test.c (将文件 test.c 还原到版本 200) 简写:svn up 这条命令将文件更新到指定的版本,以便进行后续的修改和提交。 6. 查看文件或者目录状态 svn status path 例如:svn status test.c 这...

    SVN版本管理工具使用教程

    在本教程中,我们介绍了 SVN 的基本使用和操作,包括初始化检出、选择 SVN 检出、浏览服务器上的目录、上传文件、提交文件、刷新和提交修改、删除文件、查看服务器上的版本、还原操作和恢复删除本地删除等。...

    SVN使用教程,手把手教你如何用SVN

    4. **Revert (还原)**: - 如果误操作或需要恢复到之前的状态,可以使用Revert功能。 - 在TortoiseSVN中右键点击文件或文件夹,选择“Revert”,可将选定的对象恢复到Checkout时的状态。 5. **Update (更新)**: ...

    VS中SVN插件,SVN在VS和Axure中的使用文档说明

    - **Revert(还原)**: 撤销本地更改,恢复到上次提交的状态。 3. **解决冲突**: 当多人同时编辑同一文件时,可能会出现冲突。AnkhSVN会提示冲突,并提供解决冲突的工具。 4. **查看日志**: 通过“View”->...

    SVN基本教程(动画)

    - **Revert(还原)**: 撤销本地工作副本的修改,恢复到上次提交的状态。 - **Branch(分支)**和**Tag(标签)**: 分支用于隔离不同的开发线,标签用于标记项目特定版本,通常是发布版本。 **4. SVN的命令行工具**...

    数据库修复sqlite3 和 svn清理方法

    4. 使用`--revert`:对于单个文件或目录,可以使用`svn revert`命令恢复到最新的版本库状态,这可能会解决部分问题。 5. 更新Subversion版本:有时,问题可能由Subversion的旧版本引起。更新到最新版本可能解决问题...

    清除SVN版本化的注册表文件

    3. **恢复原始状态**:如果你已经不小心提交了注册表文件,但想恢复到未版本化状态,可以使用`svn revert 文件名`命令,这会将文件还原为仓库中的最新版本,移除所有本地修改。 4. **使用`.reg`文件**:对于“清除...

Global site tag (gtag.js) - Google Analytics