SVN外部 - 检查整个项目或部分

时间:2011-08-19 17:17:18

标签: svn

我是SVN的新手所以如果我在这里谈论绝对的垃圾,请原谅我。

我想要实现的目标如下:

我想在我的项目中有两个存储库:vendor和local。

供应商仓库将包含我正在使用的框架的源代码,本地仓库将包含在框架内运行的所有本地代码。我还应该注意,我的本地源代码将通过符号链接与供应商交织在一起。

我希望将我的存储库分开,因为我希望能够查看我的本地存储库并在不检查整个项目的情况下进行处理。虽然有时整个项目都必须结账。

理想情况下,我需要能够结账,工作并承诺以下内容:

  1. 仅限本地代码
  2. 仅供应商代码
  3. 供应商和本地代码的组合
  4. SVN外部会允许这种行为吗?如果没有,最好如何做到这一点?

3 个答案:

答案 0 :(得分:1)

我认为没有理由使用svn:externals来解决您的问题。如果您需要做的只是查看不同的项目,您可以像这样构建您的存储库:

/
    local/
        branches/
        tags/
        trunk/
    vendor/
        <vendor-specific project structure>

当您需要本地代码时,请运行svn co <server>/local/<branch>,当您需要供应商代码时,请运行svn co <server>/vendor/<whichever resource(s) you need>。我有什么遗漏的吗?

答案 1 :(得分:0)

SVN外部将允许你1)和2)。

对于3),您必须执行多个提交命令 - 每个修改后的存储库都有一个。

但脚本很容易(至少在linux上)。

另一方面,我建议您在不同级别与供应商集成 - 例如,在java中,最好通过在服务器上构建的JAR进行单独的repos和集成。

答案 2 :(得分:0)

通过分离本地和供应商存储库,您无法通过简单的步骤检出整个项目(本地+供应商)。我想你只有一个存储库,包括你的本地和供应商源代码。现在你可以:

1)为您的本地目录定义外部,以便在您签出时获取供应商代码。 (第1项满意)

2)为您的供应商目录定义外部,以便在您签出时获取本地代码。 (第2项满意)

3)如果要签出本地和供应商源代码,只需检查根(/ trunk)文件夹即可。 (第3项满意)

如果您仍然坚持拥有两个单独的存储库,那么第1项和第2项很容易被外部人员满足。对于第三项,您可以编写一个简单的脚本来检查您的本地+供应商代码到您的工作文件夹中。