将svn:externals设置为当前本地目录

将svn:externals设置为当前本地目录,svn,tortoisesvn,svn-externals,Svn,Tortoisesvn,Svn Externals,我有以下本地文件夹结构: Top-Level Checkout |-Project1 | -Project Specific Files | |-Project2 | -Project Specific Files 我想为存储库中的某些.dll文件将svn:externals属性添加到Project1 我使用OtteroiseSVN设置属性(如果有关系,我不认为有关系)。我试图在Project1文件夹中添加svn:externals定义,以便将我的.dll文件下载到该文件夹中,形成

我有以下本地文件夹结构:

Top-Level Checkout
|-Project1
|    -Project Specific Files
|
|-Project2
|    -Project Specific Files
我想为存储库中的某些.dll文件将svn:externals属性添加到
Project1

我使用OtteroiseSVN设置属性(如果有关系,我不认为有关系)。我试图在
Project1
文件夹中添加svn:externals定义,以便将我的.dll文件下载到该文件夹中,形成以下结构

Top-Level Checkout
|-Project1
|    -Project Specific Files
|    -.dll1
|    -.dll2
|    -.dll3
|    -.dll4
|
|-Project2
|    -Project Specific Files
但是externals属性拒绝让我指定要将它们下载到当前设置externals属性的文件夹中

例如,如果我的属性如下所示:

^/Some/Repository/Url "SomeFolder"
它将在
Project1
下创建
SomeFolder
,并将.dll放在那里

如果我这样做

^/Some/Repository/Url ""
它抱怨它无效。这:

^/Some/Repository/Url "\"
将允许我保存它,但当我尝试更新并获取外部时,它会与

无法创建目录“
顶级签出\Project1\
”:文件名, 目录名或卷标语法不正确

我如何告诉它将.dll下载到我正在将externals设置为的本地文件夹,而不让它每次都创建子文件夹

最后,我还没有尝试在
顶级签出
上设置externals属性,部分原因是我认为它仍然会告诉我它无法创建目录,但主要是因为这对于这个项目来说不是一个可行的解决方案


有人知道怎么做吗?

如果这些DLL文件位于同一个存储库中,您可以指定每个文件的全名,而不是放置它们的目录。这称为“外部文件”

因此,您的规则如下所示:

^/Some/Repository/URL/file1.dll file1.dll
^/Some/Repository/URL/file2.dll file2.dll
# ...
# etc.

我忘了在这个问题上添加注释和内容

我读了一些关于
svn:externals
文档的深入资料,发现它必须创建一个子文件夹。这是荒谬的限制,有国际海事组织,但它是什么

在本例中,我最终将外部文件放在顶层文件夹中。据我所知,这并没有破坏任何东西,但我也已经有一段时间没有参与那个特定的项目了。其他开发者没有抱怨


另外,我没有回答这个问题,因为这个问题还没有解决办法。

如果你不想修补NTFS的高级功能,只想使用SVN提供的功能,那么你必须要么带上完整的目录(你说你不想要),要么把每个文件分开(根据Ben的回答).那是过时的信息。可以使用文件外部命令逐个文件执行外部命令。目录外部必须创建一个子目录,因为目录外部基本上创建一个全新的独立工作副本。这也类似于Mercurial和Git等系统中子存储库的工作方式。我不想单独指定每个文件。这将要求我在每次添加新文件时对外部文件进行更改。无论如何,你都应该这样做,除非你忽略了SVN文档中的强烈建议,告诉你在外部文件中使用明确的修订号。