摆脱所有目录中的.svn文件

时间:2009-08-26 14:18:29

标签: svn version-control

有没有办法使用subversion或任何其他VCS,我可以将.svn目录中的签出文件保存在与其“归属”的目录不同的位置。例如,有一些toplevel / work / my-source-tree和/ work / my-source-tree-svn目录?

我知道为什么文件在.svn目录中重复(快速检测签入时更改的文件和简单的工具支持)。但我经常想要在USB记忆棒上备份文件,并且传输双倍数量的文件是一个显而易见的。

6 个答案:

答案 0 :(得分:10)

使用svn export将文件复制到干净的目录(即USB记忆棒)。它不会复制.svn目录。这也适用于工作副本:

svn export <path-to-working-copy> <destination-directory>

答案 1 :(得分:8)

使用CVS,SVN和其他版本控制系统,您可以进行导出。这允许您获得没有.svn或其他隐藏目录的代码副本。

SVN Export documentation

答案 2 :(得分:5)

svk是一个在subversion之上的图层,它添加了一些额外的功能。一个关键特性是元数据保存在$ HOME / .svk /而不是每个工作副本中。这将两者分开,使备份更容易,工作副本更小。

另外,它还提供了一些分布式版本控制功能,如git和其他功能 - 但仍然使用svn作为后端。可能值得一试。

答案 3 :(得分:3)

您可以使用rsync备份到USB记忆棒,并使用--cvs-exclude选项。根据您的版本,这可能不适用于subversion文件,因此请尝试--exclude ='。svn / *'

答案 4 :(得分:1)

cd svn-local-dir
find . -name .svn | xargs rm -rf

答案 5 :(得分:0)

FWIW,这在Subversion 1.7中不再是一个问题。

  

Subversion 1.7工作副本在工作副本的根目录中只有一个.svn目录,而不是工作副本中每个目录中的.svn目录。 (Subversion 1.7 Release Notes