我们的 Subversion 存储库有几个包含共享文件的子目录以及每个项目的子目录。项目设置与相关svn:externals
属性以从存储库中提取共享目录并将它们设置为子目录。
因此,例如,我们的存储库看起来像这样:
客户
共享
便携的
应用程序1
应用程序2
和 app1
已作为其 svn:externals
../shared 共享
../便携便携
以便在结帐时,portable
和 shared
可用作 app1
的子目录.
TortoiseSVN 具有在 app1
上进行提交的漂亮功能。将自动检测 externals
子目录,意识到它们都是同一个存储库的一部分,并且
提交所有更改作为同一提交的一部分。但是,我无法弄清楚如何从命令行客户端中获得相同的行为。有什么建议?
最佳答案
此功能尚未实现。以下内容摘自SVN ver. 1.5 book :
Perhaps most disappointingly, the working copies created via the externals definition support are still disconnected from the primary working copy (on whose versioned directories the svn:externals property was actually set). And Subversion still truly operates only on nondisjoint working copies. So, for example, if you want to commit changes that you've made in one or more of those external working copies, you must run svn commit explicitly on those working copies—committing on the primary working copy will not recurse into any external ones.
我也查了SVN 1.6 release notes并且只有两个改进
已经制作了与 svn:externals 相关的内容。它们是:支持 svn:externals 中的文件和支持 externals 定义中的常用 shell 引用规则。
也许,这不是值得实现的功能(这也是我的观点)。通常,svn:externals 用于将相对稳定的头文件/文件包含到某些依赖于它们的项目/应用程序中。通常他们引用某些修订的标签或路径。这是一个大问题,在这种情况下 svn 客户端应该做什么没有特别的答案。
关于svn - 从 Subversion 提交相关的外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2921686/