【问题标题】:Supporting a single SVN repo across different folder hierarchies支持跨不同文件夹层次结构的单个 SVN 存储库
【发布时间】:2012-08-30 15:43:02
【问题描述】:

所以我有一个项目,它将遍布我的文件系统的文件和文件夹联系在一起。从逻辑上讲,所有这些文件都属于单个项目,因此属于单个 SVN 存储库,但我无法将它们组合到单个文件夹层次结构中,因为所涉及的程序都经过硬编码以将其源代码保存到特定目录。

我认为我不是第一个处理这种情况的人,所以我希望我忽略了一个简单的解决方案。我考虑了四种方法,但它们都有缺点;有没有我没有考虑过的另一种方法,或者除此之外,任何人都可以提供长期最佳方法的见解吗?

以下是我考虑过的方法:

  1. 签出每个系统文件夹中 SVN 存储库的相应子文件夹。在技​​术上可能是最简单的,但我不喜欢很多单独的提交成为构成可能是单个“逻辑”提交的必要条件。更新也一样。
  2. 将 SVN 签出保存在一个位置,并使用程序同步 SVN 层次结构和系统文件夹。使 SVN 的使用更简单一些,但它是更多的移动部分。如果有人以错误的方向同步,也很容易覆盖未提交的工作。
  3. 单个 SVN 结帐,使用连接/符号链接到系统文件夹。根据我的尝试和一些网络搜索,目前这在技术上似乎是不可能的。它也感觉有点脆弱。
  4. 我也许可以采取相反的方式并更改硬编码的程序文件夹,以便它们成为我的 SVN 结帐的子文件夹的符号链接/连接。这似乎仍然有点脆弱:软件更新可能会取代符号链接,或者一个或多个程序可能也不喜欢符号链接。

请注意,将使用此存储库的一些人不是开发人员,所以我想让他们尽可能简单。另请注意,这是一个 Windows 环境,我们通常使用 TortoiseSVN。 Git/mercurial/etc 不是一个选项,公司政策要求 SVN 配合我们的发布流程。

采用“可能可行的最简单的事情”的方法,#1 似乎是要走的路。但也许(希望如此?)我缺少什么?

【问题讨论】:

    标签: windows svn tortoisesvn


    【解决方案1】:

    由于没有人对此进行权衡,我只想说我最终选择了 1 号门。这个“解决方案”对于新手来说是最容易理解的,没有什么微妙的东西会破坏并造成伤害或混乱。多次提交可能会有点烦人,但我在实践中发现,我们通常一次只更新/提交一两个位置。

    还值得注意的是,一些 IDE 可以抽象出这个问题。如果您的 IDE 支持从不同位置拉入文件的项目或解决方案,那么 SVN 插件很可能也支持它。例如,Visual Studio + AnkhSVN 可以处理它——Ankh 将简单地将您的“单个”提交拆分为多个对 SVN 的实际提交。并不真正适用于我的场景,但也许它会帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多