我有一个像这样配置的存储库:
+---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个项目并分别检查每个标签。有没有办法在不经过每个项目的情况下这样做?
答案 0 :(得分:2)
我认为您需要编写命令行脚本才能执行此操作。使用Tortoise或集成的IDE / SVN工具我无法做到这一点,因为这是一种不常见的(根据我的经验)类型的结账操作。
您可以在命令行上询问svn是否存在使用 svn list 命令存在的目录。
然后你可以检查输出(如果找不到目录,它可能返回一个非零值,或者你可以解析输出流)以确定标记是否存在。将包含标记的项目添加到列表中,然后签出这些项目。
这样的事情:
For each project in myProjects:
exec "svn list " myRepositoryPath + "/" + myProject + "/tags/directory"
答案 1 :(得分:1)
我们使用脚本来实现您正在寻找的效率。创建一个通用签出脚本,该脚本查找包含要为每个模块签出的标记/分支/主干名称的第二个清单文件。
我已经玩弄了创建一个包含“项目”目录的模块的想法,这个目录带有项目模块组合的特定标签/分支/中继的外部,但我从来没有去做过。
答案 2 :(得分:1)
如果您打算这么做,可以在存储库中创建另一个目录,并为其提供svn:externals
属性。将所有相关项目列为外部。然后,当您签出新目录时,您将在其中检出所有项目。
答案 3 :(得分:0)
为了补充以前的答案,您可以使用脚本创建Eclipse Team Project Set文件,以便一次直接导入所有项目。 无法找到对“psf文件格式”的直接引用,但您将获得this example的想法并检查eclipse帮助。