如何通过SVN命令获取稀疏检出的路径详情
如何在SVN中查看稀疏检出的路径
SVN没有像Git那样专门的sparse-checkout文件来统一存储稀疏检出路径,它是通过目录的svn:depth属性来控制每个路径的检出深度的。要查看本地工作区中已拉取的非空路径,可以用以下方法:
方法1:查询目录的svn:depth属性
在工作区根目录执行以下命令,会列出所有已拉取(深度不为empty)的路径:
svn propget svn:depth -R . | grep -v '^.$' | grep -v 'empty'
命令解释:
svn propget svn:depth -R .:递归查询当前目录下所有子目录的svn:depth属性(该属性控制目录的检出深度)grep -v '^.$':过滤掉根目录本身的条目grep -v 'empty':过滤掉仍为empty(未拉取)的目录
对应你给出的场景,执行后会输出:
Parent/Children1/Children2/Children3
方法2:通过状态命令筛选
如果需要同时看到已拉取的文件和目录,可以用svn status结合过滤:
svn status --depth infinity | grep '^[ADMR?]' | awk '{print $2}'
这个命令会列出所有在本地工作区存在的版本控制下的路径(包括已修改、新增的),适合快速查看已拉取的内容。
补充说明
和Git的稀疏检出逻辑不同,SVN的稀疏检出是基于每个目录单独配置的,没有全局的配置文件记录所有拉取路径。上述命令通过查询目录属性或状态,间接获取已拉取的路径集合。
内容的提问来源于stack exchange,提问作者raj_acharya
相关产品推荐
相关产品推荐

