因此,它是这一轮时间相反的方式 - 我需要迁移基于SVN项目到ClearCase中。 是否有任何工具,有会做的过程中更容易一点(而不是组建一个自定义脚本)以及是否有任何人谁拥有了经验,这样做的任何陷阱?
谢谢!
因此,它是这一轮时间相反的方式 - 我需要迁移基于SVN项目到ClearCase中。 是否有任何工具,有会做的过程中更容易一点(而不是组建一个自定义脚本)以及是否有任何人谁拥有了经验,这样做的任何陷阱?
谢谢!
如前所述此处(IBM)在和这个线程 ,没有直接的工具来导入SVN数据的ClearCase。
这意味着自定义脚本您的工作空间SVN设置相关的里程碑,然后clearfsimport那些与一个“正确”的配置规格(即“配置规范”)ClearCase视图。
通过适当的,我的意思是将其导入到相关的ClearCase分支的定位到“分支目录”颠覆文件的不同副本ClearCase视图。 然后按照正确的顺序导入“标签”在ClearCase进口视图(SVN回购仍然复印件),但那种进口后立即设置标签。
因此,主要的“疑难杂症”是盲目导入所有SVN结构:这将导致实际的目录不应该出现在ClearCase的所有,因为分支和标签都是一等公民使用此工具,而不是“山寨”像SVN。
一个好的剧本与启动(和适应的课程)将svn2git它会侦测SVN分支和标签,并尝试导入这些“目录”到混帐的内容(也可以将它们导入到ClearCase中,通过正确的系统调用“clearfsimport”命令')。
由于单个修订的进口可能相当长,一个现实的做法是将脚本限制为仅导入:
当导入分支,这意味着创建brtype,然后设置一个标签(起点),终于改变了配置规范,以获得下选择规则:
element * .../svnBranch
element * STARTING_LABEL -mkbranch svnBranch
element /main/0 -mkbranch svnBranch
最重要的一点是有没有代表SVN分支和标签出现在目录的最终结果。
从那里,你将能够移动/重命名主目录到任何你想要的结构,就像一个适合UCM组件声明(如果你想使用UCM)。
当使用svn2cc脚本,你会得到一个playall.bat结束。
如果您运行下面的脚本,然后它会修改之间,使他们更容易访问以后标签。
有一点也许是过度的,但有些人可能会觉得它有用。 我不作任何道歉的代码质量:)
# File Name ......................... revision_labeller.pl
# Written By ........................ Stuart Davidson
# Date .............................. 21/07/2009
#
# Description :
# Adds the auto-generation and application of labels to an SVN import.
#
# Usage :
# revision_labeller.pl -label SVN-IMPORT-MYPROJECT -playall playall.bat
use strict;
use warnings;
use Getopt::Long;
use vars qw($label $playall_path);
GetOptions(
'label=s' => \$label,
'playall=s' => \$playall_path,
) or exit 2;
my $revisions = 0;
my $output = "";
# Count how many chout_x there are.
open(PLAY, "<$playall_path");
while(<PLAY>)
{
if($_ =~ /^call chout_\d{1,3}.bat/)
{
$revisions++;
}
$output .= $_;
}
close(PLAY);
# Add the ability to make labels.
$output =~ s/call chin_(\d{1,3}).bat/call chin_$1.bat\ncleartool mklabel -recurse ($label)_$1 ./g;
$output =~ s/\($label\)/$label/g;
# For each revision, at the start, create the label
my $create_labels = "";
for(my $i = 1; $i <= $revisions; $i++)
{
$create_labels .= "cleartool mklbtype -cfile \"comments_" . $i . ".txt\" " . $label . "_" . $i . "\n";
}
$output = $create_labels . $output;
# For each revision, at the end, lock the label
my $lock_labels = "";
for(my $i = 1; $i <= $revisions; $i++)
{
$lock_labels .= "cleartool lock lbtype:" . $label . "_" . $i . "\n";
}
$output = $output . $lock_labels;
print $output;