1

我们有一个 svn 存储库。

我想将此存储库中的一些文件夹签出到我的本地机器。具体来说,我想将 7 个文件夹从 svn 签出到位于 C:/workspace 的工作区。(因此结帐后结构变为 C:/workspace/(所有 7 个文件夹))。

问题是:在 7 个文件夹中,4 个在 path1 上,其他 3 个文件夹在 path2 上。

这是我尝试过的,

  1. 去C。
  2. 右键单击工作区,
  3. 结帐,然后我给出 path1 并得到 4 个文件夹。(现在结构变为 C:/workspace/(4folders from path1))。一切都好,直到这里。4.现在,如果我再次右键单击工作区(从路径 2 获取其他 3 个文件夹),我找不到结帐选项。
  4. 我已经尝试在工作空间内手动创建文件夹(使用新文件夹选项),并从 svn 签出内容,但这会使文件夹与 svn 不同步(工作空间上没有绿色勾号)。

    我正在使用 svn tortoise windows shell 实用程序。

    请建议需要做什么来获得结构 C:/workspace/( 来自 svn 的所有 7 个文件夹)。

4

4 回答 4

0

要获得您想要的布局,请检查下七个文件夹中每个文件夹的根c:/Workspace- 7 个不同的检查也是如此。

在您询问有关标记/分支的评论中 - 不要对c:/Workspace. 相反,要么;

  1. 使用命令在 repobrowser 中执行此操作copy to...,或者
  2. 在不同位置检出每个项目的主干并将其用于分支/标记。无论如何,您可能需要这些来进行合并(同样,也不要在 c:workspace 上这样做!)。

...然后 svn 根据需要切换 c:/workspace 中的文件夹/s。

由于这当然容易出错,因此请考虑编写重复部分的脚本。一个 ant build.xml 对于结帐和开关来说很容易。

于 2013-06-04T14:36:38.863 回答
0

选项4是一种正确的方法。但是您是对的,该workspace目录不会被版本控制。那是因为您从未检查过它 - 您只检查过它下面的目录。相反,您将得到的是 7 个目录中的每一个都有自己的.svn目录,而不仅仅是一个workspace级别的目录。在这种情况下,我认为您无法将更改提交到多个根目录中的文件。

您可能会考虑的另一个选择是将所需的文件夹标记或分支到存储库的另一部分,然后将其签出。

于 2013-06-04T03:48:33.537 回答
0

如果这是经常一起检出的文件夹组合,您可以考虑使用svn:externals:在path1上,设置svn:externals -property 以从path2获取 4 个文件夹。

或者,您可以在任一存储库中创建一个全新的文件夹并设置 _svn_externals_ 以便检出所有 7 个文件夹。(请注意,从 Subversion 1.5 开始,您还可以对同一存储库中的路径使用相对定义。)

于 2013-06-04T20:46:21.130 回答
0

您可以将其他三个文件夹从第二个存储库签出到一个单独的文件夹,然后将这些文件夹移动到第一个签出处。有用。

  1. 去C。
  2. 右键单击工作区,
  3. 结帐 path1,我得到 4 个文件夹。(现在结构变为 C:/workspace/(4folders from path1))。
  4. C下新建文件夹path2
  5. 右键单击并检查路径2(现在结构为path2 /(3个文件夹)
  6. 将三个文件夹移动到上一个结帐文件夹(现在结构是 C:/workpace/(7folders)\
  7. 第二组 3 个文件夹是版本化的(它们显示绿色勾号)。这些文件夹中的任何签入都将转到第二个 SVN 路径)
于 2013-06-04T05:25:41.443 回答