如何从本地svn副本(而不是svn服务器)签出子文件夹?

时间:2012-06-27 13:41:35

标签: windows svn

对于某些简单的Windows批处理脚本,我想在某个版本的svn存储库的本地工作副本中临时创建某个文件夹的副本。我不想直接从svn服务器签出(因为那时我的脚本需要知道服务器地址是什么,可能我需要进行身份验证等) 我不能只复制子文件夹,因为隐藏的.svn文件夹更高。

我一直在尝试使用包含repo隐藏文件夹的.svn文件夹的一些变体:

svn co file:///E:/repo/paper@48 E:/temprepo

但这不起作用。我的Windows 7命令提示符以

回答
svn: E180001: Unable to connect to a repository at URL 'file:///E:/repo/paper'
svn: E180001: Unable to open an ra_local session to URL
svn: E180001: Unable to open repository 'file:///E:/repo/paper'

我做错了什么,或者我不想做什么?

2 个答案:

答案 0 :(得分:2)

你的问题似乎有些含糊不清。我可以想到两种看待它的方法。

  1. 假设您只想要svn工作副本中没有.svn文件夹的子文件夹的副本。 您可以使用svn export复制此类工作副本的指定子文件夹 - svn export E:\repo\paper E:\temprepo

  2. 引用:

      

    我不能像隐藏的.svn文件夹一样复制子文件夹   更高。

    编辑:此文件结构仅在subversion v 1.7中可用。在版本为1.6.x的subversion客户端中,工作副本中的子文件夹应该是自包含的。这意味着您可以将其复制到另一个地方,并在其中执行诸如svn update等的颠覆操作。

答案 1 :(得分:1)

正如您在问题中正确提到的那样,您拥有subversion存储库的工作副本,而不是它自己的存储库。

您只能检出恰好是您的subversion服务器的存储库。

当您签出存储库时,存储库内容的原始版本位于“.svn”文件夹中。

这就是当你的工作副本与原始内容不同而没有将它的请求路由到服务器时,svn如何向你展示差异。

它还会保留您的服务器地址的元数据以及执行svn info时可以看到的其他信息。这也包含您的服务器地址svn url。

您的工作副本和“.svn”文件夹完全识别检出它的存储库。

我希望你明白为什么你不能从自己的工作副本中结账。