[英]Using wget to “checkout” svn repository
我有一个非常糟糕的svn存储库,我没有权限重新构建。 有几个子项目分布在存储库根目录不同深度的仓库中。 我想能够检查所有的中继(但不是任何分支或标签文件夹),无论它们的深度是多少。 我认为这对于wget解决来说是一个很好的问题。 我最初使用wget看起来像这样:
wget -r -X 'tags' -I "base/of/repo" "http://www.urlrepo.com/"
我在运行此命令时遇到的一些问题:
思考?
您可以使用稀疏结帐使用bash
和svn
递归执行此操作。
就像是:
svn co --depth immediates svn://repo/trunk
然后在每个子文件夹上,如果是'tags':
svn up --set-depth empty tags
其他:
svn up --set-depth infinity dirName
虽然它可能有用,但它依赖于一些不是100%保证的东西:当你使用httpd作为Subversion存储库服务器时,可以使用浏览器。
您可以在执行svn update
时使用svn co
上的--depth
参数和--set-depth
参数来限制结帐。 这样您就可以只签出所需的文件夹和目录,而无需将所有内容都删除。 这有时被称为稀疏结账 。 作为奖励,这是一个实际的结账。 你可以做提交 - wget
不允许你做的事情:
$ # I want to just checkout the immediate files under the URL:
$ svn co --set-depth=immediates $REPO/trunk/foo
A foo/first
A foo/second
A foo/third
# I want to checkout everything in first and third, but nothing in second:
$ cd foo
$ svn up --set-depth=none second #Removes directory second
$ svn up --set-depth=infinity first third
使用它应该与您的原始示例一起使用:
$ svn co --depth=none http://www.urlrepo.com/ workdir
$ cd workdir
$ svn up --set-depth=none base
$ cd base
$ svn up --set-depth=none of
$ cd of
$ svn up --set-depth=infinity repo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.