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

SVN外部-检查整个项目或部分,svn,Svn,我是SVN的新手,所以如果我在这里说的都是废话,请原谅我 我正在努力实现以下目标: 我想在我的项目中有两个存储库:供应商和本地 供应商repo将包含我正在使用的框架的源代码,本地repo将包含我在框架内运行的所有本地代码。我还应该注意到,我的本地源代码将通过符号链接散布在供应商中 我想让我的存储库尽可能地独立,我想能够只签出我的本地回购协议,而不签出整个项目。尽管有时整个项目都要结帐 理想情况下,我需要能够结帐、处理并承诺以下事项: 仅限本地代码 仅限供应商代码 供应商和本地代码的组合 SVN外

我是SVN的新手,所以如果我在这里说的都是废话,请原谅我

我正在努力实现以下目标:

我想在我的项目中有两个存储库:供应商和本地

供应商repo将包含我正在使用的框架的源代码,本地repo将包含我在框架内运行的所有本地代码。我还应该注意到,我的本地源代码将通过符号链接散布在供应商中

我想让我的存储库尽可能地独立,我想能够只签出我的本地回购协议,而不签出整个项目。尽管有时整个项目都要结帐

理想情况下,我需要能够结帐、处理并承诺以下事项:

  • 仅限本地代码
  • 仅限供应商代码
  • 供应商和本地代码的组合

  • SVN外部是否允许这种行为?如果没有,如何最好地实现这一点?

    我认为没有理由使用
    svn:externals
    来解决您的问题。如果您需要做的只是签出不同的项目,那么您可以按如下方式构建存储库:

    /
        local/
            branches/
            tags/
            trunk/
        vendor/
            <vendor-specific project structure>
    
    /
    本地的/
    分支机构/
    标签/
    树干/
    卖主/
    

    需要本地代码时,请运行
    svn co/local/
    ;需要供应商代码时,请运行
    svn co/vendor/
    。有什么我遗漏的吗?

    我不认为有理由使用
    svn:externals
    来解决您的问题。如果您需要做的只是签出不同的项目,那么您可以按如下方式构建存储库:

    /
        local/
            branches/
            tags/
            trunk/
        vendor/
            <vendor-specific project structure>
    
    /
    本地的/
    分支机构/
    标签/
    树干/
    卖主/
    

    需要本地代码时,请运行
    svn co/local/
    ;需要供应商代码时,请运行
    svn co/vendor/
    。有什么我遗漏的吗?

    SVN外部将允许您1)和2)

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

    但是编写脚本非常容易(至少在linux上是如此)


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

    SVN externals将允许您1)和2)

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

    但是编写脚本非常容易(至少在linux上是如此)


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

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

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

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

    3) 如果您想签出本地和供应商源代码,只需签出根(/trunk)文件夹即可。(第3项已满足)


    如果您仍然坚持使用两个独立的存储库,那么外部可以很容易地满足第1项和第2项的要求。对于第三项,您可以编写一个简单的脚本,将本地+供应商代码签出到工作文件夹中。

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

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

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

    3) 如果您想签出本地和供应商源代码,只需签出根(/trunk)文件夹即可。(第3项已满足)


    如果您仍然坚持使用两个独立的存储库,那么外部可以很容易地满足第1项和第2项的要求。对于第三项,您可以编写一个简单的脚本,将本地+供应商代码签出到您的工作文件夹中。

    基于文件或目录的符号链接?基于目录的sylinks可以转换为svn:externals.Directory和file符号链接。将主要是基于文件或目录的directorySymlinks?基于目录的sylinks可以转换为svn:externals.Directory和file符号链接。将主要是目录