如何在Clearcase中合并两个目录


  • 1目录有2个文件:test1.ctest2.c
  • 2目录有0个文件

如何使用"merge"仅将test1.c复制到第二个目录。

首先,目录需要相同,在两个不同的分支中(或者在这种情况下,您不会谈论合并,只是复制文件(

第二,如果您将该目录合并到两个分支之间的所述目录的两个版本之间,您将得到test1.ctest2.c。。。空的
这是因为合并一个文件夹是不够的:只更新文件的列表,而不更新该文件夹中文件的内容

递归合并(文件夹和里面的所有内容(的最简单方法是使用命令cleartool findmerge(对于ClearCase7.x,在ClearTeam8.x之前(。
请参阅"Clearcase:findmerge用法"。

合并总是在目标视图中执行,因此转到在右侧目标分支中选择文件夹的视图(以及该文件夹目前仍为空的位置(:

cd /path/to/view/avob/yourFolder
cleartool findmerge . -nc -fver .../sourceBranch/LATEST -merge

注意:如果您正在使用ClearCase UCM,那么在启动合并之前,您必须首先设置一个活动。

在完成合并之前(即在签入所有内容之前(,您可以删除(cleartool rmname test2.c(您不想要的文件。

这里有一个快速&在linux(bash(中合并两个目录的肮脏解决方案

merge.sh:

#!/bin/bash
# params
source="$1"
target="$2"
# prog
IFS="
"
if [[ ! -d $source ]]; then
  echo "sourcedir not exists!"
  exit 1
fi
[[ ! -d $target ]] && mkdir -p $target
cutlength=${#source}
for o in `find $source -type d`; do
  dir="${o:$cutlength}"
  newdir="$target$dir"
  [[ ! -d "$newdir" ]] && mkdir -p ${newdir}
done
for o in `find $source -type f`; do
  file="${o:$cutlength}"
  newfile="$target$file"
  [[ ! -f "$newfile" ]] && cp ${o} ${newfile}
done

我写它只是为了把两个目录合并在一起,它很好用。它真的很脏,几乎没有安全代码。所以要小心复制&粘贴

最新更新