我的问题类似于this问题,但我没有使用git。
我也正在研究一个庞大的遗留项目,我需要查看几个项目。
我想要检查所有项目的父目录。但是当我这样做时,它会为每个目录提取分支和标签以及主干。我只想要每个项目的主干。
如何在不拉动分支和标签的情况下查看多个项目的单个父目录?
答案 0 :(得分:2)
使用Subversion的Sparse Directories功能获取基本目录结构,然后更新trunk
目录的深度以充实它们。
svn checkout --depth immediates URL_TO_COMMON_PARENT LOCAL_DIR
svn update --set-depth infinity project1/trunk
svn update --set-depth infinity project2/trunk
为每个项目进行泡沫,冲洗,重复。
我现在远离svn存储库所以我没有证实这是100%正确的,但我认为是。
答案 1 :(得分:1)
出于类似的目的,我编写了一个bash脚本。我需要检查子项目中深度不均匀的大型项目中的主干。该脚本使用上面提到的稀疏目录功能alroc,并递归地遍历子项目,直到找到中继文件夹。然后以无穷大的深度检出树干。
#!/bin/bash
function svn_trunk()
{
SUBDIRS=$(find "$1" -not -path '*/\.*' -not -path "$1" -type d)
if [[ $SUBDIRS =~ "trunk" ]]; then
svn up --set-depth infinity "$1/trunk"
else
for DIR in $SUBDIRS; do
svn up --set-depth immediates "$DIR"
svn_trunk "$DIR"
done
fi
}
if [ -d "$1" ]; then
svn_trunk $1
else
svn co --depth immediates "$1"
svn_trunk .
fi
您可以将脚本与存储库URL或本地工作副本文件夹一起使用。它不处理第二个参数来设置本地工作副本文件夹的名称,但这很容易添加...