向SVN提交二进制文件

Tom*_*ens 9 svn tags

我搜索了一下,但没有找到满意的答案,所以我想听听你对此的看法.

我有几个工具,我必须不时更新和部署到几个服务器.源在SVN存储库中管理.

为了省去通过ftp或类似手段将二进制文件复制到生产服务器的麻烦(我无法在服务器上构建项目),我正在考虑在存储库中创建一个区域来提交它们.然后,我可以在需要时从svn服务器中简单地检索最新版本的可执行文件.

由于我不一定要在每次处理源代码时更新/提交二进制文件,因此我不会将二进制文件的文件夹创建为项目的子文件夹.然后(并且应该)承诺二进制文件是一个单独的,有意识的行为.

--- trunk
    --- project1
    --- project2
--- built
    --- project1
    --- project2
Run Code Online (Sandbox Code Playgroud)

据我所知,这个设置应该没有问题.我真正喜欢的是然后为源修订版和二进制文件提供单个标记,以便能够一次性检索所有属于一起的内容.

--- tags/project1/release2/ 
         includes files from 
--- trunk/project1/ revision 487 and
--- built/project1/ revision 488 
Run Code Online (Sandbox Code Playgroud)

我能追求的是什么,我将如何实现它?我应该改为寻找解决这个问题的其他方法吗?

Mih*_*șan 9

你的设置没有什么奇怪的(当我需要保留确切的位时,我正在使用构建工具和构建工件做类似的事情.)你想要的布局肯定是可能的 - "包括"其他分支或标签的特定版本你的tags/project1/release2,你需要做的就是在tags/project1/release2上设置svn:externals属性,引用你想要引入的源和修订版的URL,然后你就可以了.


Ore*_*ost 5

虽然我无法直接回答您的问题,但我将介绍另一种方法。

我们有一个单独的二进制发布文件服务器,其备份策略类似于 SVN 服务器的备份策略,每个项目都有一个目录,其中包含不在 SVN 中的任何属于该项目的内容,包括一个发布目录。二进制版本的整个历史都存储在这个目录中,所以你可以从任何地方(嗯,从我们的网络内)获取二进制文件,而不需要 SVN,即复制到某个生产服务器,发送给客户或下载在虚拟机中测试。无需结帐或重建。

我发现这个设置比将二进制文件提交到 SVN 更容易管理。如果您需要一个具有特定版本的精确二进制文件,它就在那里,只要该版本已提供给客户端(但是,为什么您需要一个从未见过阳光的二进制文件?)。