【问题标题】:Where do deleted files go in SVN?SVN中删除的文件在哪里?
【发布时间】:2016-02-08 12:47:05
【问题描述】:

我刚刚使用svn --force delete path/folder copy 删除了一些文件。但是,foldercopy 之间的空格让它认为它必须删除多个东西,所以现在它删除了我原来的文件夹。

我还没有对我的原始文件夹进行版本控制,所以所有更改都消失了。幸运的是,我在该特定文件夹中没有进行太多更改,所以如果我最终做同样愚蠢的事情,这主要是为了将来使用:如何恢复或恢复以前未提交的文件?我在哪里可以找到这些文件?它们没有被移到我的垃圾桶。

【问题讨论】:

    标签: svn restore revert


    【解决方案1】:

    它们被删除,纯粹而简单。不幸的是,documentation for the delete command 只这么说:

    除非给出--keep-local 选项,否则文件(和尚未提交的目录)会立即从工作副本中删除。

    为了证明,我们必须在 SVN 源代码中查看 waaaay,其中svn_io_remove_file2 最终调用apr_file_remove,其中:

    • 如果您使用的是 Windows invokes DeleteFile。此方法只是删除文件;如果程序员想将它发送到回收站,他们必须使用SHFileOperation 并将FOF_ALLOWUNDO 标志传递给它。
    • 如果您使用的是 *nix(包括 Mac OS),invokes unlink,它会执行以下操作:

      ...文件被删除,它正在使用的空间可供重复使用

    注意:我会更深入地链接到代码中的点,但可通过网络访问的 SVN 和 APR 存储库不允许行级链接:(

    【讨论】:

    • 好的,所以它丢失了。感谢您的回答,下次我删除副本时会尽量保持头脑清醒:D
    • 是的,我个人认为svn delete 不应该从您的磁盘中删除未提交的文件;我认为太多人会认为它只会“取消计划”添加。
    • 我真的会默认将其移至垃圾桶。可能会为此做一个别名,以防止白痴接管。
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多