我试图建立svn:externals
与TortoiseSNV在Windows计算机上。 我有两个项目,这两个仓库都在同一个本地机器上已经创建成功了。
目前的结构看起来是这样的。 我创建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
文件夹,但它们被省略,以保持这个问题很简单。)
我想达成的目标下的文件(S)是workA\trunk\lib\
在这种情况下lib01.php
被自动复制到workB\trunk\lib\
目录下。
为了对此进行设置,我做了什么如下:
- 经过了
workA
并将其分配给repoA
和签出workB
并分配它repoB
- Comitted的
workA\trunk
文件夹,以便在repoA
是最新的。 - 在oreder指定为导入位置
workB\trunk\lib
,右击的workB
文件夹,选择TortoiseSVN -> Properties
。 - 点击
New -> Externals
并单击New...
键入
./trunk/lib
在Local path
表单字段。 对于URL
字段中,键入file:///Z:/repos/repoA/trunk/lib
。 按下...
按钮,回购浏览器中打开,并有助于选择目标文件夹。点击
Ok
几次关闭设置窗口。 我担任的外部设置已完成。- 创建一个文件,
Z:\Projects\workB\trunk\core_mod.php
- 右键点击
Z:\Projects\workB\trunk\
和选择SVN Comit
到COMIT的workB
到repoB
。
我预计将在这一点上,lib01.php将在自动导入Z:\Projects\workB\trunk\lib
夹,但没有被拷贝。 我也试过SVN Update
在右侧点击workB\trunk
文件夹。 但workB\trunk\lib
夹保持为空。
我怀疑的相对路径./trunk/lib
一定是搞错了。 我不知道。 如果你能指出我在做什么错,我们将不胜感激。
更新
6A - 提交更改工作副本WorkB到回购
这对我是一个盲点。 我右键点击Z:\Projects\workB
和选择SVN Commit...
,它给了以下错误。
单击确定按钮后我得到了一个对话窗口,询问是否要更新的文件夹,我点击确定。 这样TortoiseSVN开始更新Z:\Projects\workB
,我得到这个错误。 但在此之后,当我重新COMMITED Z:\Projects\workB
,它经历了没有一个错误。
(“行李箱/ lib目录”,在你的情况会更加防弹,我想)。
谢谢你,当我重新选择Property
的的workB
文件夹,点击了Edit
的按钮svn:externals
,TortoiseSVN的自动调整./trunk/lib
到trunk/lib
。 现在,它被设置成这样的。
6B - 与RepoB(只是最快的方式)repobrowser测试,这个定义是正确的
我右键点击Z:\repos\repoB
和选择TortoiseSVN -> repo-browser
和浏览到trunk文件夹。 它看起来如下。 这是否正确? 我真的不知道,因为我从来没有在这项任务的工作。 行李箱文件夹下的lib文件夹是在库浏览器空。
该Z:\Projects\workB\trunk\lib
夹仍然是空的。 该错误信息显示搬迁“Z:\项目\ workB”,但我不知道这意味着什么。