在 Tortoise 论坛上提问,但尚未收到回复 :/
我已经使用 Tortoise SVN 1.6 一段时间了,现在决定升级。但是,我注意到升级后,在尝试提交更改时,外部信息根本不显示。
在 1.6 版本中,如果我对外部文件进行了更改,则无法提交它,但是我可以查看我所做的更改,如果它们是合理的,则将它们提交到外部存储库(我的意思是 - 将给定的文件/更改复制到外部存储库中的相应文件,然后提交给定的存储库)。
回顾一下:
A - repo
-a.file
-B:external folder
--b.file - made changes
-C:external folder
--c.file - made changes
尝试提交 A 不会显示在 b.file 和 c.file 中所做的更改,尽管这些文件夹在资源管理器中显示为已更改。我也可以通过右键单击每个文件夹然后查看更改来提交它们。如果我有一个外部文件夹,情况就不会那么糟糕,但是使用 10> 并右键单击每个文件夹会变得很麻烦。
是否有一个选项可以启用,使提交行为与 1.6 版本一样?
答案1
这是因为你的共享文件夹(B 和 C)缺失的部分回购协议A. A 的目录列表应如下所示。
A 的内容
a.file -> file
B -> link to external folder
C -> link to external folder
您可能已经为 B 创建了以下外部链接,
A/B/b.file which links to <B_repo_path>/b.file
A/B/bdir1 which links to <B_repo_path>/bdir1
A/B/bdir2 which links to <B_repo_path>/bdir2
这里缺少的是目录 B 本身的链接。因此,应该有一个指向
/A/B link to <B_repo_path>
但有时,这并不是我们所期望的行为,因为上面的链接会从回购B到/A/B(但你只需要一部分回购B在...之下/A/B)。您可以通过在 repo A 中创建目录 (B) 来避免这种情况并为 B 的每个子级创建单独的链接(您已在上面完成此操作)。请记住,此目录 B 只是回购协议A,它不链接到回购B。
例子:
下图中,有指向以下子目录的链接:共享文件夹。但没有实际链接到共享文件夹本身。
当您第一次尝试签出主存储库时,此目录会自动在您的文件系统中创建。您需要做的就是签入未受子版本控制的共享目录。