我对版本控制很新,我正在使用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。
有人可以建议某种方法吗?
提前致谢
答案 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)。