我正在做一个递归的svn add/commit,其中包含了一个没有适当的忽略属性的文件夹。我有大约100个上传的二进制文件版本现在,但我还没有提交。
在不删除所有文档的情况下,最简单的“撤销”方法是什么?
我正在做一个递归的svn add/commit,其中包含了一个没有适当的忽略属性的文件夹。我有大约100个上传的二进制文件版本现在,但我还没有提交。
在不删除所有文档的情况下,最简单的“撤销”方法是什么?
当前回答
尝试svn为每个你不需要和还没有提交的文件恢复文件名。或者为有问题的文件夹执行svn revert -R文件夹,然后使用正确的忽略配置重新执行该操作。
从文档中可以看到:
you can undo any scheduling operations:
$ svn add mistake.txt whoops
A mistake.txt
A whoops
A whoops/oopsie.c
$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops
其他回答
全流程(Unix svn包):
SVN中没有检查文件:
> svn st -u folder
? folder
添加所有(包括忽略的文件):
> svn add folder
A folder
A folder/file1.txt
A folder/folder2
A folder/folder2/file2.txt
A folder/folderToIgnore
A folder/folderToIgnore/fileToIgnore1.txt
A fileToIgnore2.txt
移除所有*忽略*文件的“添加”标志:
> cd folder
> svn revert --recursive folderToIgnore
Reverted 'folderToIgnore'
Reverted 'folderToIgnore/fileToIgnore1.txt'
> svn revert fileToIgnore2.txt
Reverted 'fileToIgnore2.txt'
在文件夹上编辑svn ignore
svn propedit svn:ignore .
添加两个单行,只需以下内容:
folderToIgnore
fileToIgnore2.txt
检查哪些文件将被上传并提交:
> cd ..
> svn st -u
A folder
A folder/file1.txt
A folder/folder2
A folder/folder2/file2.txt
> svn ci -m "Commit message here"
尝试svn为每个你不需要和还没有提交的文件恢复文件名。或者为有问题的文件夹执行svn revert -R文件夹,然后使用正确的忽略配置重新执行该操作。
从文档中可以看到:
you can undo any scheduling operations:
$ svn add mistake.txt whoops
A mistake.txt
A whoops
A whoops/oopsie.c
$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops
SVN rm——keep-local folder_name
注意:在svn 1.5.4中,即使指定了——keep-local, svn rm也会删除未版本控制的文件。更多信息请参见http://svn.haxx.se/users/archive-2009-11/0058.shtml。
使用svn revert——recursive folder_name
警告
SVN还原本质上是危险的,因为它的全部目的就是丢弃数据——即未提交的更改。一旦进行了还原,Subversion就无法恢复那些未提交的更改。
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.revert.html
对于文件- svn revert filename
对于文件夹- svn revert - r文件夹