3

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

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

我想检查任何标记rel-1为该项目的项目。在这种情况下,我会得到project1andproject3在我的工作区中,但不是project2.

都是projectNEclipse Java 项目。

我正在使用 Eclipse/Subversive,但如果需要,我愿意使用 Tortoise 或命令行(Windows)。

编辑:目前,要做到这一点,我必须完成我的 30 多个项目并单独检查每个标签。有没有办法在不单独检查每个项目的情况下做到这一点?

4

4 回答 4

2

我认为您需要编写一个命令行脚本才能执行此操作。我不知道使用 Tortoise 或集成的 IDE/SVN 工具来执行此操作,因为这是一种不常见的(根据我的经验)结帐操作类型。

您可以使用svn list命令在命令行上询问 svn 目录是否存在。

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

像这样的东西:

For each project in myProjects:
   exec "svn list " myRepositoryPath + "/" + myProject + "/tags/directory"
于 2010-01-22T17:12:53.543 回答
1

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

我玩弄了创建一个包含“项目”目录的模块的想法,其中包含项目模块组合的特定标签/分支/主干的外部,但我从来没有这样做过。

于 2010-01-22T17:12:28.717 回答
1

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

于 2010-01-23T21:27:54.047 回答
0

为了补充前面的答案,您可以使用脚本创建一个 Eclipse Team Project Set 文件,一次直接导入所有项目。找不到对“psf 文件格式”的直接引用,但您将通过此示例了解想法并检查 eclipse 帮助。

于 2010-01-23T21:25:18.403 回答