VS2013 中的 Ankhsvn "update solution" 还会检索与 VS 项目无关的所有同级文件夹
Ankhsvn "update solution" in VS2013 also retrieves all sibling folders not associated with the VS project
我在 Ankhsvn 中看到了一些意外的行为,我想知道这是否可能是一个错误,或者是设计使然,我误会了什么。
我正在使用在线颠覆存储库,并使用以下文件结构设置了一些存储库:
"Browser URL": https://www.zzzzz.com/code/mememe/subversion-2/nodes/HEAD/trunk
"Checkout URL": https://subversion.zzzzz.com/svn/abc.MyMiscProjects/
SqlScripts1
SqlScripts2
SomeOtherStuff1
SomeOtherStuff2
VS2013_Solution1
VS2013_Solution2
到目前为止,我一直在使用所有这些不同的 svn 存储库文件夹和不同的本地主文件夹,没有任何问题(使用 TortoiseSVN)。
我还在 VisualStudio 中安装了 AnkhSVN 插件,但主要是将它与其他 SVN 存储库(在同一在线提供商处)一起使用。
昨天在 VS2013 中,我创建了 VS2013_Solution2,当它询问我是否要将它添加到 Subversion 源代码管理时,我说是。我检查了我所有的文件,但是当我去我家的 PC 并从 Visual Studio 做了一个 "File, Open Subversion Project",并在 /VS2013_Solution2 中选择了 .sln 文件时,它不仅得到了选定的解决方案,还有该存储库中的所有其他同级文件夹,即使它们与解决方案没有关联。
同样,今天早上上班时我在 VS2013 中做了一个 "Update solution to latest version",它还将所有文件夹作为同级文件夹从该存储库中拉到本地文件夹中的 VS2013_Solution2。
现在,如果这只是 svn 作为一个整体的默认预期行为,我希望当我在 Windows 资源管理器中右键单击我的本地 VS2013_Solution2 文件夹时会发生完全相同的事情,然后选择 TortoiseSVN "SVN Update",但在这种情况下它只会更新单个文件夹。
关于 Ankhsvn 对单个 SVN 存储库中所有文件的行为,我是否遗漏了一些要点?它是否根本无法像 TortoiseSVN 似乎能够处理存储库的 子集(单个子文件夹)?
在谷歌搜索之后....
在 VS2013 中,文件、颠覆、更改源代码管理,我看到:
Repository: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/
SCC Binding: ^/trunk/
SCC Binding URL: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk
"SCC Binding Path" 旁边有一个“...”按钮,将解决方案根显示为:
"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk"
...but in the dropdown I am also able to choose:
"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk/VS2013_Solution2"
(有趣的是,显示了 none 个其他文件夹。)所以在我的例子中,选择直接指向我的项目文件夹的路径清除了不需要的行为。
因此,我得出结论,Ankhsvn 的 default 行为始终假定 entire 存储库。虽然这显然可以被覆盖,但在我看来这不是一个好主意。
可能最实用的方法是:在硬盘驱动器上为每个单独的 Subversion 存储库使用一个本地根文件夹 - 不要尝试将一个存储库中的单个文件夹微管理到不同的本地文件夹,如果您确实需要能够只检查一个单独的文件夹,可能有一个非常特定的步骤顺序来执行此操作(如果从 Visual Studio 中执行,而不是 TortoiseSVN,例如)。
我在 Ankhsvn 中看到了一些意外的行为,我想知道这是否可能是一个错误,或者是设计使然,我误会了什么。
我正在使用在线颠覆存储库,并使用以下文件结构设置了一些存储库:
"Browser URL": https://www.zzzzz.com/code/mememe/subversion-2/nodes/HEAD/trunk
"Checkout URL": https://subversion.zzzzz.com/svn/abc.MyMiscProjects/
SqlScripts1
SqlScripts2
SomeOtherStuff1
SomeOtherStuff2
VS2013_Solution1
VS2013_Solution2
到目前为止,我一直在使用所有这些不同的 svn 存储库文件夹和不同的本地主文件夹,没有任何问题(使用 TortoiseSVN)。
我还在 VisualStudio 中安装了 AnkhSVN 插件,但主要是将它与其他 SVN 存储库(在同一在线提供商处)一起使用。
昨天在 VS2013 中,我创建了 VS2013_Solution2,当它询问我是否要将它添加到 Subversion 源代码管理时,我说是。我检查了我所有的文件,但是当我去我家的 PC 并从 Visual Studio 做了一个 "File, Open Subversion Project",并在 /VS2013_Solution2 中选择了 .sln 文件时,它不仅得到了选定的解决方案,还有该存储库中的所有其他同级文件夹,即使它们与解决方案没有关联。
同样,今天早上上班时我在 VS2013 中做了一个 "Update solution to latest version",它还将所有文件夹作为同级文件夹从该存储库中拉到本地文件夹中的 VS2013_Solution2。
现在,如果这只是 svn 作为一个整体的默认预期行为,我希望当我在 Windows 资源管理器中右键单击我的本地 VS2013_Solution2 文件夹时会发生完全相同的事情,然后选择 TortoiseSVN "SVN Update",但在这种情况下它只会更新单个文件夹。
关于 Ankhsvn 对单个 SVN 存储库中所有文件的行为,我是否遗漏了一些要点?它是否根本无法像 TortoiseSVN 似乎能够处理存储库的 子集(单个子文件夹)?
在谷歌搜索之后....
在 VS2013 中,文件、颠覆、更改源代码管理,我看到:
Repository: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/
SCC Binding: ^/trunk/
SCC Binding URL: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk
"SCC Binding Path" 旁边有一个“...”按钮,将解决方案根显示为:
"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk"
...but in the dropdown I am also able to choose:
"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk/VS2013_Solution2"
(有趣的是,显示了 none 个其他文件夹。)所以在我的例子中,选择直接指向我的项目文件夹的路径清除了不需要的行为。
因此,我得出结论,Ankhsvn 的 default 行为始终假定 entire 存储库。虽然这显然可以被覆盖,但在我看来这不是一个好主意。
可能最实用的方法是:在硬盘驱动器上为每个单独的 Subversion 存储库使用一个本地根文件夹 - 不要尝试将一个存储库中的单个文件夹微管理到不同的本地文件夹,如果您确实需要能够只检查一个单独的文件夹,可能有一个非常特定的步骤顺序来执行此操作(如果从 Visual Studio 中执行,而不是 TortoiseSVN,例如)。