紫云网站建设,山东省城乡建设网站,动漫网站建设赚钱吗,网站建设服务器技术有哪些聊一聊 svn merge 命令。 svn 是啥就不用介绍了吧#xff0c;谁用谁知道。有了 svn#xff0c;开发者只要把代码提交上去#xff0c;无论山崩地裂、电脑进水、硬盘格式化#xff0c;哪怕换了一台电脑#xff0c;都能随时把代码找回来。不过从自己工作中看到的现象来说谁用谁知道。有了 svn开发者只要把代码提交上去无论山崩地裂、电脑进水、硬盘格式化哪怕换了一台电脑都能随时把代码找回来。不过从自己工作中看到的现象来说可能还有很多人并不了解 svn 真正的便捷之处。这里我们就聊一聊代码合并、回滚必备的利器——svn merge 命令。 一说到回滚可能很多人立马先想到了 svn revert。其实非也svn revert 只能把未提交的本地修改撤销对于已经提交的代码就无能为力了。要把已经提交上去的代码回滚掉非 svn merge 莫属。 PS我们这里以 Linux shell 下的 svn 命令行工具为例进行介绍。Windows 图形界面版本其实原理一样只是把命令转移到 GUI 里面去了。 在 shell 里输入 svn help merge 可以看到大片的帮助文档新手看了真是无从下手。不急且看为首的几行 merge: Apply the differences between two sources to a working copy path.usage: 1. merge sourceURL1[N] sourceURL2[M] [WCPATH]2. merge sourceWCPATH1N sourceWCPATH2M [WCPATH]3. merge [-c M[,N...] | -r N:M ...] SOURCE[REV] [WCPATH] 其实只要看明白这 4 行svn merge 命令就搞定了。 svn merge 能干啥 我们都知道svn 上面保存了一份代码的所有历史版本。随着开发过程中不短提交新的代码版本只会越来越多而已存在的版本又无法删除。所以如果某个版本的代码提交错了、不想要了怎么办 这种情况其实只要把最后一次提交里新增的代码删掉、删掉的代码加回来、修改的代码改回去然后 svn ci 一下就好。虽然这样好像又多了一个版本但其实代码是回到前面一个版本的状态了。 而要把新增的代码删掉、删掉的代码加回来、修改的代码改回去手工修改无疑太笨也太容易出错。这就轮到 svn merge 命令出场了。 merge: Apply the differences between two sources to a working copy path. help 文档告诉我们merge 就是把两套代码之间的 diff 生效到本地的一个路径上。 比如上面的例子我们假设有一套代码维护在 svn 上一开始的版本号是 r1后来提交了一次版本就是 r2然后发现 r2 写错了、想撤销这次修改。这次修改做的变化就是 r1 - r2 两个版本的 diff那么想撤销修改只要把 r2 - r1 的 diff 再提交上去虽然生成了新的版本号 r3但其实 r3 里的代码跟 r1 是完全一样的。 svn merge 怎么用 说了这么多虚的那怎么操作呢我们继续跟着 help 往下看。 1. 在同一个 URL 上做 merge 3. merge [-c M[,N...] | -r N:M ...] SOURCE[REV] [WCPATH] 前面的例子其实是第 3 种用法我们先看这个。假设 shell 里面当前路径就对应着 svn 上代码最上层目录要实现上面的例子可以直接这么写 svn merge -r r2:r1 . 注意结尾有个“.”表示将 diff 生效到当前路径。然后提交代码即可。 svn ci -m rollback r2 - r1 2. 在不同的 URL 上做 merge 前面的例子要求远程代码 URL 跟本地代码对应的 URL 必须一致即都在 trunk 上或者都在同一个 branch 或者 tag 上。一般情况需要回滚代码、撤销某次修改上面的命令足矣。而如果涉及到多个 branch 合并到 trunk 之类的问题还需要继续往下看 To be continued ... 有时间再接着写 转载于:https://www.cnblogs.com/jiangzhaowei/p/5671484.html