SVN:仅签出/导出目录结构

pet*_* k. 35 svn directory-structure

有没有办法执行SVN签出(或导出),这将获取目录结构 ; 也就是说,没有档案?

Dav*_*ein 13

svn ls -R {svnrepo} | grep "/$" | xargs -n 1 mkdir -p
Run Code Online (Sandbox Code Playgroud)

出口,而非结账.

[更新]

结帐时:

env REPO={repo} sh -c 'svn ls -R $REPO | grep "/\$" | xargs -n 1 svn co --depth=empty $REPO'
Run Code Online (Sandbox Code Playgroud)

任何太大的东西都会很慢.

  • @architectonic 评论的一个变体,也可以处理带引号的文件名等: `svn ls -R {svnrepo} | grep“/$”| tr '\n' '\0' | xargs -0 -n 1 mkdir -p` (2认同)

小智 9

您可以为checkout命令指定--non-recursive,可能会帮助您获得所需内容.

  • 我不明白这会有什么帮助.`--non-recursive`,它说的是:它不会递归树.所以这只会给你顶级对象,这不是OP想要的,除非它们有一个平面目录结构(灌木而不是树). (2认同)

小智 5

subversion的contrib工具中有一个python脚本,它使用空文件创建目录结构.有了一点python知识,根本不应该很难跳过创建文件.


Mik*_*ton 0

简单看一下,我看不出有什么办法可以做到这一点svn help co。我之前从下载的库的新版本(即供应商分支)更新存储库时所做的事情是删除不是 .svn 文件夹的所有内容:

#!/bin/sh
find ./ -type f | grep -v .svn | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

如果您试图避免首先检查这些文件,那么它并不是特别有效,但它应该具有相同的结果。