我正在尝试在Windows机器上使用TortoiseSVN设置svn:externals
。我有两个项目,并且已经在同一台本地计算机上创建了两个存储库。
目前的结构如下所示。我为存储库创建了repoA
,repoB
,为工作目录(结帐)创建了workA
和workB
。
存储库
Z:\回购\ repoA
Z:\回购\ repoB
工作目录
Z:\项目\ workA \树干\ core.php中
Z:\项目\ workA \树干\ lib中\ lib01.php
Z:\项目\ workB \树干\ core_mod.php
Z:\项目\ workB \树干\ lib中\
(有tags
和branches
个文件夹,但省略它们以使问题变得简单。)
我想要实现的是workA\trunk\lib\
下的文件lib01.php
自动复制到workB\trunk\lib\
目录。
为了做到这一点,我所做的如下:
workA
并将其分配到repoA
并签出workB
并将其分配给repoB
workA\trunk
文件夹,以便repoA
是最新的。workB\trunk\lib
分配导入位置的过程中,右键单击workB
文件夹并选择TortoiseSVN -> Properties
。New -> Externals
,然后点击New...
在./trunk/lib
表单字段中输入Local path
。对于URL
字段,请键入file:///Z:/repos/repoA/trunk/lib
。按下...
按钮,repo-browser打开并帮助选择目标文件夹。
点击Ok
几次以关闭设置窗口。我认为外部设置已经完成。
Z:\Projects\workB\trunk\core_mod.php
Z:\Projects\workB\trunk\
并选择SVN Comit
将workB
推荐给repoB
。我希望此时,lib01.php会自动导入Z:\Projects\workB\trunk\lib
文件夹,但不会复制任何内容。我还通过右键单击SVN Update
文件夹尝试workB\trunk
。但workB\trunk\lib
文件夹保持空白。
我怀疑相对路径./trunk/lib
一定是错的。我不知道。如果你能指出我做错了什么,我们将不胜感激。
更新
6a - 提交将Work Copy WorkB更改为repo
这对我来说是一个盲点。我右键点击了Z:\Projects\workB
并选择了SVN Commit...
,它出现了以下错误。
立即单击“确定”按钮后,我出现了一个对话窗口,询问是否更新文件夹,然后单击“确定”。然后TortoiseSVN开始更新Z:\Projects\workB
,我收到了这个错误。但在此之后,当我重新提交Z:\Projects\workB
时,它没有出现错误。
(在你的情况下,“trunk / lib”会更加防弹,我猜)。
谢谢,当我重新选择Property
workB
文件夹并点击Edit
的{{1}}按钮时,TortoiseSVN自动将svn:externals
调整为{{ 1}}。现在它已经确定了。
6b - 使用RepoB上的repobrowser进行测试(只是最快的方式),该定义是正确的
我右键单击./trunk/lib
并选择trunk/lib
并浏览到行李箱文件夹。它看起来如下。看起来不错吗?我真的不知道,因为我从未参与过这项任务。在repo-browser中,trunk文件夹下的lib文件夹为空。
Z:\repos\repoB
文件夹仍为空。错误消息建议重新定位'Z:\ Projects \ workB',但我不确定它的含义。
答案 0 :(得分:3)
您忘记了至少一项强制措施
6a - 提交将Work Copy WorkB更改为repo
和一个可选的检查点
6b - 使用RepoB上的repobrowser进行测试(只是最快的方式),该定义是正确的
不记得为什么,但我从来没有在TSVN中使用路径规范中的./(在你的情况下,“trunk / lib”会更加防弹,我想)。纯粹的个人习惯 - 我在mount时定义外部,即使结果我在repo中得到多个定义而不是在root中聚合
在树中显示外部的repo-browser并显示定义
答案 1 :(得分:0)
对于遇到此问题的任何人,workB的工作目录不需要导入文件夹。
Z:\项目\ workA \树干\ core.php中
Z:\项目\ workA \树干\ lib中\ lib01.php
Z:\项目\ workB \树干\ core_mod.php
Z:\项目\ workB \树干\ lib中\
必须是
Z:\项目\ workA \树干\ core.php中
Z:\项目\ workA \树干\ lib中\ lib01.php
Z:\项目\ workB \树干\ core_mod.php
Z:\项目\ workB \树干\
(没有Z:\ Projects \ workB \ trunk \ lib)