大家好: 我正在使用SVNant来检查存储库,整个存储库内容是如此之大,我只对几个文件和目录感兴趣,存储库结构如下:
project
folder1
folder2
largefolder
largefile1
largefile2
folder3
fileilike1.txt
fileilike2.txt
file.txt
file2.txt
etc...
我只对项目/文件夹下的文件感兴趣,例如file.txt和file2.txt,以及文件夹3下的所有文件。我不想签出largefolder /因为它有超大文件。
如何编写svnant脚本?我使用忽略但似乎不起作用。
答案 0 :(得分:1)
如果您的结帐必须如此复杂,也许您可以重新设计项目结构。这些实际上是多个项目吗?我希望你在布局中有分支,标签和主干文件夹但是为了简洁而选择不列出它们?
答案 1 :(得分:0)
我没有使用'svnant',但我认为它应该类似'svn'
以下是在svn
中执行此操作的方法svn co project -N
-N强制只检出顶级文件(即仅项目目录中的文件)
然后查看个别目录
svn up dir1 dir2 dir3
如果要更新代码库,请分两步完成
svn up -N
svn up
虽然您可以配置为在更新时避免上述步骤1,但上述内容对您来说应该完全正常。
答案 2 :(得分:0)
您可以使用各种深度的组合在工作目录中选择所需内容:
#
# First checkout your URL with the immediate files and directories in it
#
$ svn co --depth immediates $URL mydir
A folder1
A folder2
A file.txt
A file2.txt
#
# Let's Update All Folders to infinity except folder2
#
$ shopt -s extglob
$ svn update --set-depth infinity !(folder2)
A folder1/...
A folder3/...
$ cd mydir
#
# Now We'll get immediates under folder2
#
$ cd folder2
$ svn update --set-depth immediates
A largefolder
A folder3
#
# Now we'll exclude largefolder
#
$ svn update --set-depth exclude largefolder
D largefolder
#
# And get everything else in the view
#
$ svn update --set-depth infinity * # Large Folder Excluded
A [...]
$ cd ..
--depth
和--set-depth
开关相当新,取代了停止递归的-N
开关。
您可以简单地保留largefolder
而不是保留largefolder
,而只需对svn update <file>
执行您可能需要更新的特定文件。一旦某些内容出现在您的工作目录中,svn up
将保持更新。但是,您必须要小心,因为除非您执行svn up --set-depth
,否则将不会添加新文件和目录。