作为一名顾问,我通常可以访问客户端的svn存储库,以便签出,处理并最终提交项目。
最优(是客户端请求)将仅在客户端svn上提交稳定版本并避免中间(即不可构建)提交但我也希望保持开发过程的跟踪并享受到版本控制系统......
然后做一些像这样的事情会很棒:
我能够使用一些脚本完成这项任务(自动执行结账,删除.svn的东西,提交等等),但这远远不是一个平稳的过程。
我试图寻找解决方案,但我还没有找到任何有用的东西。
有没有人知道一种简单而富有成效的方法呢?
提前谢谢。
答案 0 :(得分:1)
最好和最简单的解决方案是使用你身边的另一个SCM +桥接到SVN(Mercurial + HGSubversion, not Git )
但即使使用纯SVN,您至少还有两个可行的解决方案:供应商分支和共享UUID
供应商分支
共享UUID
您可以通过干净,合法的方式(svn help relocate
)更改(对于现有WC)相关SVN-repository的URL,该方式主要用于基础架构管理,但可以为您使用。
用于重新定位的FROM和TO存储库假定为相同的存储库,通过检查存储库的UUID来验证身份,因此:对于两个不同的存储库(客户端和您),您必须提供相同的UUID。
通过加载|转储循环(svnadmin dump
客户端的repo /或只需要它/ svnadmin load ... --force-uuid
的节点到您的空存储库中)可以很容易地实现它,之后你可以执行存储库中的任何作业。 "准备发布"如果您:
PS :"供应商分支"以我的POV更安全的方式,代价是Subversion的合并可能存在问题(它们仍然不像DVCS世界那么漂亮)
答案 1 :(得分:0)
对不起,我的回答意味着使用另一个VCS,但这对git-svn来说很容易。在开发期间提交git,在单个“干净”提交中压缩提交,然后将dcommit
提交到SVN服务器。
如果您不是git用户,这可能会过于复杂。