是否可以使用 SVN 属性来标记编译和运行较大项目的一部分所需的文件/文件夹。例如“config1:used”“config2:unused”。我想做类似(伪命令)的事情:
svn checkout URL[@REV] PATH .where "property:config1==used"
svn update PATH .where "property:config1==used"
我知道使用 svn 进行稀疏结帐,但是使用此功能似乎相当复杂。我已经阅读了按文件扩展名过滤的 svn checkout。但这并没有真正得到回答,而且是一样的。
我可以递归地从 svn 中获取所有属性,过滤并仅签出条件为真的文件。但这很慢。与正常结帐相比,更新将非常慢,因为我找不到如何仅获取 proplist 的更新。如果我检出单个文件,更新将无法正常工作。带有 --set-depth=exclude 选项的稀疏目录似乎会删除本地文件,但不会删除 .svn 目录中的数据。所以使用了大量的磁盘空间。