我是如何使用Subversion的?

时间:2021-12-24 19:10:09

Subversion 简称 SVN 。

最初,使用 SVN 时,仅仅使用了它的 checkout(检出)、update(更新)、提交(commit)。

然后,想通过 SVN 来解决多个版本同时开发后,代码最终性完整性问题,那就需要使用 SVN 的合并功能。

做法如下:

从主干拉一个分支 — dev ,用作新功能的开发;

上线前,将分支 dev 的代码合并到主干,然后创建 tag ,标记版本号;

上线后,有 bug 需要修复时,从主干拉一个分支 — bug ,bug 修复后,将代码合并到主干,创建 tag ,标记版本号;

分支 dev 继续开发新功能;

这时,有其他新功能要提前上线,分支 dev 的代码已经比主干的代码新了,肯定不能直接在分支 dev 上提交代码,所以就从主干再拉一个分支 — activity(活动),提交代码然后合并到主干,创建 tag ,标记版本号,上线;

分支 dev 的新功能开发之后,再将分支 dev 的代码合并到主干,这样,代码就是完整的。
想法是好的,只是考虑的还不够。实际情况是,提前上线的情况经常出现,这样就导致有些代码在分支 dev 中已经删除,但在分支 activity 中还在使用,而且还添加了新代码。这时,使用 SVN 的合并功能时,冲突很多且出现有些文件未合成功。最后采用文件对比工具才勉强将代码合并,只说明所勉强,是因为后面发现还有遗漏,耗时耗力,准确度还不高。

最后,准备做如下改进,看是否能够适用,将分支 dev 之外,需要提前上线的版本,合并到主干后,再合并到分支 dev 。这样分支 dev 的代码就会是最全、最新的,等分支 dev 开发完成后,再合并到主干。