从SVN远程仓库中删除目录/文件,而不会导致删除本地非版本副本

时间:2013-09-16 14:37:38

标签: svn

This question处理“取消版本化”本地文件/目录的问题,因此您将它们保存在本地,但它们将从远程仓库中删除。我有一个相反的问题 - 另一个开发人员提交了一些应该是每个用户的XCode项目目录。我无法在本地签出这个目录,因为我已经有一个本地非版本的。如果我直接从回购中删除它们,我担心在更新时我们的本地副本都会被删除。

总结一下:   - Developer和我都有一个包含多个文件的本地文件夹   - 开发人员向SVN致敬   - 开发人员的工作副本包含版本   - 我的工作副本包含非版本化版本,不允许我更新

在两种情况下,这里的最佳路线是什么:

  1. 开发人员可以帮助解决问题
  2. 我必须尽一切努力,尽量不要破坏开发人员的工作副本
  3. 谢谢!我们正在使用SVN 1.6存储库。

1 个答案:

答案 0 :(得分:7)

您可以远程删除文件而无需查看特定的工作副本:

 $ svn rm -m "Removing user property" http://repo/svn/project/.userprops

但是,您可以随时在计算机上的其他位置签出新的工作目录,然后从那里进行删除。我建议使用此方法,因为它允许您在提交更改之前检查并验证您正在执行的操作。另外,您可以通过执行反向合并撤消错误的修订。

假设使用这些错误添加的每用户文件的修订版本是修订版43210:

$ mkdir temp
$ cd temp                # New clean directory for new clean checkout
$ svn co http://repos/svn/project/trunk project-trunk
$ cd project-trunk
$ svn merge -c -43210    # Removes the bad revision
$ svn commit -m"Reversing revision 43210 because of bad pre-user files added"

就是这样。

顺便说一下,我有一个pre-commit hook可以防止再次发生这种情况。您可以简单地将其配置为不允许用户在项目中添加和提交这些每用户文件。