【问题标题】:SVN: I have multiple copies of the same working copy. How do I delete one without scheduling the deletion in the repository?SVN:我有同一个工作副本的多个副本。如何删除一个而不在存储库中安排删除?
【发布时间】:2014-06-16 08:55:55
【问题描述】:

我是 SVN 新手,有一个关于删除的问题。我有两个相同代码的工作副本。副本 1 位于 ~/code/wrkingcpy/,副本 2 位于 ~/Documents/MATLAB/mfiles/wrkingcpy/。如何在不安排删除的情况下安全地删除副本 1。

当我运行SVN commit 时,它是只提交我所在的工作副本还是一次提交本地主机上的所有工作副本?我可以删除包含 wrkingcopy (副本 1)的整个代码文件夹,然后通过在该副本文件夹中从不提交而从不提交该副本吗?

抱歉绕口令,可能很混乱。我想我的主要问题是提交时它会递归工作吗?它会删除我的存储库版本吗?我想避免这种情况。也许另一种改写方式是如何在没有 svn commit 工作的情况下从 SVN 永久删除工作副本。

感谢您的所有帮助,感谢那些英雄们在 2014 年父亲节快乐。

~丹

【问题讨论】:

  • 也许你会尝试至少阅读 SVN Book 的基础知识?!
  • @LazyBadger 如果您不熟悉版本控制,这是一个很好的问题。 SVN Book 从未说明如果您有多个工作副本会发生什么,以及如果您删除一个工作副本而不提交更改会发生什么。版本控制对于初学者来说是一个奇怪的概念。

标签: svn commit


【解决方案1】:

每个工作副本都是一个单独的工作副本并且是独立的。我很多时候会有多个工作副本——每个工作副本都处理一个特定的问题。 Subversion 不跟踪工作副本。如果您进行结帐,然后删除工作副本,Subversion 不在乎。

如果您不需要两个工作副本,只需删除一个(使用操作系统的 delete 而不是 svn delete)。例如,在 Windows 上,使用 rd /s/q 命令删除工作目录根。在 Unix/Linux/Mac 上,使用rm -rf

一次只能在一个工作副本中提交更改。每一个(如我之前所述)都是完全独立的。因此,在一个工作副本中提交更改不会影响另一个工作副本。

除了我刚才躺了一点......

当您在一个工作副本中提交更改时,另一个工作副本将不再是最新版本(呃!)。如果我想在其他工作副本中提交更改,我必须对最新修订版执行svn update,它将包含我在其他工作副本中提交的更改。如果您和其他开发人员在同一个分支上签出同一个项目,这没有什么不同。您的开发人员同事进行了提交,而在您更新并获得他的更改之前,您无法提交。

希望这能回答你的问题。

【讨论】:

  • 感谢您的解释@David W。我认为这更清楚了。因此,如果我不需要的工作副本是 ~/Wrkingcopy 并且我将其删除。然后我在~/ 中输入SVN update。它会重新填充~/Wrkingcopy吗?
  • 不。因为~/ 甚至根本不是工作副本。如果您尝试从那里执行“结帐”以外的任何操作,SVN 应该会失败并显示错误消息。
  • 没有。如果您查看目录~/Workingcopy,您将看到一个名为.svn 的子目录。这是 Subversion 的秘密。这个目录包含工作目录需要知道的关于它与 Subversion 服务器的连接的信息。这个目录里面是 Subversion URL、修订号、修改了哪些文件等。你删除了这个目录,你就不再有工作目录了。在 Subversion 中,工作目录指向服务器,而不是相反。服务器不跟踪工作目录。
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2012-12-21
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
相关资源
最近更新 更多