【问题标题】:Copy a Project in SVN在 SVN 中复制项目
【发布时间】:2009-11-19 20:50:53
【问题描述】:

我是 SVN 新手,我正在尝试复制现有项目(只是主干)并在同一个存储库中创建一个新项目。我们正在为不同的受众创建相同的应用程序,所以我想复制现有的代码库并创建这个新的代码库。我不想分支/标记,因为从现在开始这些将是完全不同的项目——而且我对保留历史等不感兴趣,

这是我打算做的,但这看起来像很多 Checkout/Commit,所以想知道有没有其他简单的方法。

  1. 将现有项目(比如说“Project1”)的主干从 SVN 导出到我位于 C:\inetpub\wwwroot\Project2 的新项目(比如说 Project2)文件夹中
  2. 在 SVN 中创建一个名为“Project2”的新项目,然后将我的 C:\inetpub\wwwroot\Project2 中的所有文件导入到其主干
  3. 再次Checkout从 SVN 的 Project2 到我的本地计算机(C:\inetpub\wwwroot\Project2 文件夹)

Project1 文件夹很大(~400 mb),所以这需要很长时间。还有其他替代品吗?

我可以在 Tortoise SVN 的 repo 浏览器中右键单击 Project1 的主干文件夹并选择“复制到”并指定 Project2 的主干文件夹,它复制了所有文件。这样我只需要在我的机器上结帐一次,一切都准备好了。

但我不确定它是否正确或背后的后果。任何帮助将不胜感激。

【问题讨论】:

  • 目标是摆脱历史吗?否则,分支将是最简单的解决方案。
  • 我认为有一些事情要记住;与 .Net 项目的情况一样,重命名基本项目结构会在编译/运行项目时引起问题......因此,复制可以用于存档目的,但对于要使用的项目的复制/复制变得有点凌乱。

标签: svn


【解决方案1】:

subversion 中的分支或标签基本上是一个复制操作,它只是按照惯例进入不同的文件夹。

你可以简单地使用svn copy

这是一种快速而简单的方法,尤其是在您拥有大量存储库的情况下。您将保留历史,但这是好事

【讨论】:

  • 我会继续保持分支的想法。这样,您将始终知道实际代码的来源、拆分时间以及随着时间的推移发生了哪些差异。
  • 另一个优点是'svn cp' 不会在服务器中创建另外 400 Mb 的文件。您将它们视为两个不同的项目,但 svn 足够聪明,可以只存储一次共同的内容。
【解决方案2】:
【解决方案3】:

假设两个项目都在同一个存储库中,复制将正常工作 - subversion 不会真正将存储库中的文件视为文件/目录之外的任何内容 - “主干”实际上只是一个具有特定名称的目录,它不是特殊物品或任何东西。

【讨论】:

    【解决方案4】:

    为什么不直接复制到 svn 中呢?这几乎是即时的,并且会在服务器上节省大量磁盘空间。它会给你历史,但如果你不感兴趣,那就不要阅读它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2011-05-03
      • 2010-09-24
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 2016-07-05
      相关资源
      最近更新 更多