代码之家  ›  专栏  ›  技术社区  ›  Mark Elliot

复杂的SVN检验程序?

  •  3
  • Mark Elliot  · 技术社区  · 15 年前

    我有一个这样配置的存储库:

    +---CollectionA
    |   \---project1
    |       \---trunk
    |           \---sourcecode
    |       \---tags
    |           \---rel-1
    |   \---project2
    |       \---trunk
    |           \---sourcecode
    |       \---tags
    |   \---project3
    |       \---trunk
    |           \---sourcecode
    |       \---tags
    |           \---rel-1
    

    我想签出任何标记的项目 rel-1 作为那个项目。在这种情况下,我会 project1 project3 在我的工作区,但不是 project2 .

    所有 projectN 是Eclipse Java项目。

    我正在使用eclipse/subversive,但如果需要,我可以使用tortoise或命令行(windows)。

    编辑 :目前,要做到这一点,我需要检查我的30个项目,并分别签出每个标签。有没有一种方法可以做到这一点而不需要单独完成每个项目?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Josh Kodroff    15 年前

    我认为您需要编写一个命令行脚本才能做到这一点。我不知道如何使用Tortoise或集成的IDE/SVN工具来实现这一点,因为这是一种罕见的(以我的经验)类型的结算操作。

    您可以在命令行上询问SVN是否存在使用 支持向量机列表 命令。

    然后您可以检查输出(如果找不到目录,它可能返回一个非零值,或者您可以分析输出流),以确定标记是否存在。将包含标记的项目添加到列表中,然后签出这些项目。

    像这样:

    For each project in myProjects:
       exec "svn list " myRepositoryPath + "/" + myProject + "/tags/directory"
    
        2
  •  1
  •   Dan    15 年前

    我们使用脚本来实现您想要的效率。创建一个通用的签出脚本,该脚本查找第二个清单文件,其中包含要为每个模块签出的标记/分支/中继名称。

    我已经玩弄了创建一个包含“项目”目录的模块的想法,该目录的外部对象是项目模块组合的特定标记/分支/主干,但我从未尝试过这样做。

        3
  •  1
  •   JW.    15 年前

    如果您要经常这样做,可以在存储库中创建另一个目录,并将 svn:externals 财产。将所有相关项目列为外部项目。然后,当您签出新目录时,您将在其中签出所有项目。

        4
  •  0
  •   Ramiro González Maciel    15 年前

    为了补充前面的答案,您可以使用脚本创建一个Eclipse团队项目集文件,一次直接导入所有项目。 找不到指向“psf文件格式”的直接引用,但您可以使用 this example 检查Eclipse帮助。