svn:删除存储库中的文件

时间:2009-10-08 01:21:15

标签: svn version-control

我对版本控制很新,我正在使用svn,因为我正在处理的项目是在svn上托管的。
在我的本地工作副本中,我添加了一个临时文件并删除它而不使用svn delete(因为我不知道)  现在该文件仍处于版本控制之下,所以当我将最终更改提交到我的私有分支时,该文件被写入存储库并且提交成功但报告了提交后的错误:

svn: Error processing command 'committed' in '.'
svn: Error replacing text-base of 'tmp_file'
svn: Can't change perms of file 'tmp_file': No such file or directory
run svn cleanup

svn cleanup也给出了类似的结果 我不想在存储库中的分支中使用tmp_file。

有人可以建议某种方法吗?

提前致谢

2 个答案:

答案 0 :(得分:4)

查找svn revert。

“svn help revert”

我在这台机器上没有svn方便,但尝试了以下几点:

svn revert tmp_file
svn delete tmp_file
svn update
svn commit -m "Correctly deleted the temp file"

这基本上是撤消你执行的文件系统级别删除,svn删除,确保你的工作副本是最新的,然后提交更改。

编辑:好的,所以如果你运行“svn --version”它会告诉你你的版本是1.4。什么?

如果是这样,您的工作副本已损坏,无法修复。请参阅Bug Report here

如果您的工作副本不包含您需要提交的更改,则除了tmp_file之外,您只需要将新的工作副本签出到另一个目录并删除损坏的目录。您可以通过运行“svn status”确认没有其他更改

然后,在新的工作副本中,从“svn delete”开始按照上面的命令正确删除文件。

答案 1 :(得分:2)

这可能已在最近的svn中修复。我尝试用这种方式重现事物:

$ svnadmin create test_repos
$ svn co file:///.../test_repos test_co
Checked out revision 0.
$ cd test_co
$ touch tmp_file
$ svn add tmp_file
A         tmp_file
$ rm tmp_file
$ svn ci -m ""
svn: '/.../tmp_file' is scheduled for addition, but is missing

换句话说,我的承诺根本没有成功。我正在使用1.6.2(r37639)。