转载这里 http://www.iusesvn.com/bbs/archiver/tid-942.html
做个备忘
关于主线同分支合并的概念及如何使用的误区
此问题是在netbuddy的问题上研究而成,走出误区的过程中得到了pcplayer指点迷津。
一、我的合并需求
在主线的第54个版本上作了分支,在接下来的日子里,主线和分支同时都有修改,此时需要将分支上的改动合并到主线上,合并前主线和分支都已经提交,截至到合并前,主线的修改达到了版本号66,而分支的修改达到了68。主线和分支修改的文件不同。
二、我最初的错误操作
我当时的想法是合并,就是简单的把主线的最新版本和分支的最新版本合在一起就成了,而且这也是符合我们的手工习惯。于是我就作出了一个错误的操作:
1、在分支的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择主线的最新版本,在结束路径中选择分支的最新版本,然后单击合并,合并后,提示框内没有任何合并的内容。
2、上个操作不成功,于是胡乱进行这个操作,在主线的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择分支的最新版本,在结束路径中选择主线的最新版本,然后单击合并,合并后,提示框内没有任何合并的内容。
3、发现第2个操作仍没有结果,更晕,于是进行下面的操作,在主线的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择主线的最新版本,在结束路径中选择分支的最新版本,然后单击合并,合并后,提示框内提示有文件更新,打开更新的文件一看,原来是分支上的内容把主线上的工作副本覆盖了。于是进行下一个实验。
4、在分支的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择分支的最新版本,在结束路径中选择主线的最新版本,然后单击合并,合并后,提示框内提示有文件更新,打开更新的文件一看,原来是主线上的内容把分支上的覆盖了。
总结操作问题:合并的起始和结束路径不是同一路径,而是主线和分支两个不同的路径
三、我把这个问题发到论坛,pcplayer指出了我的错误,即“起始选择主线的最新版本,结束使用分支的最新版本”,并指明“应该选择一条线上的两个版本,这两个版本间的改动会以打补丁的形式合并到另外一条线上”,于是看了一遍subversion中文手册svnbook1.2版中第4章分支与合并,终于理解了合并的使用:
1、如果是需要将主线的改动合并到分支上,需要在分支的工作副本下进行合并,合并的范围是需要从主线上上次合并的版本到当前主线上最新的版本,如果主线和分支都修改了相同的文件,合并后会出现冲突,然后解决冲突,如果主线修改但是分支没有修改,则主线上合并的变更内容会增加到当前副本中,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号
2、相反,如果是需要将分支的改动合并到主线上,需要在主线的工作副本下进行合并,合并的范围是需要从分支上上次合并的版本到当前分支上最新的版本,合并后会出现冲突(冲突的前提如上种情况),然后解决冲突,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号
3、正确的操作(对应我的需求,将分支上的改动合并到主线上):在主线的工作副本下单击右键,合并,在起始范围中选择分支的54版本,结束范围中选择分支的最新版本(当然也可以修改到中间的其他版本,例如65等),然后单击合并即可。由于我的需求中主线和分支修改的是不同的文件,所以不会存在冲突,合并完后直接提交即可。
四、合并的工作是把主线或者分支上合并范围内的所有改动列出,并对比当前副本的内容,由合并者手工修改冲突。如果当前工作副本是主线的,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主线上的改动
啰里啰唆的写了一堆,不知道大家能否看明白?呵呵
分享到:
相关推荐
centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...
是否遇到过公司里的sx向svn提交了不该提交的文件?.sdf debug release 等等,是否对此感到崩溃?!是否svn仓库已经占用了大量的磁盘空间? 使用本图形化工具帮助你将这些文件彻底地从svn中删除。 先导出svn仓库 ...
rapidsvn安装所需的全部资源包,可离线安装(gtk2和openssl的rpm包只上传了centos7版本) apr-1.5.2.tar.gz apr-util-1.5.4.tar.bz2 neon-0.29.6.tar.gz(可选,neon是subversion解析web http协议的包,视subversion...
下面简单介绍下PLSQL developer工具的SVN版本控制 1, 下载pl/sql-svn插件。 2, 关闭你打开的所有pl/sql窗口。 3,将插件里的SVN_Plugin.dll文件复制到PLSQL DeveloperPlugIns目录下。 4,重新打开pl/sql,...
这是最好的SVN右键清除。中文。不分版本。我下载了好多别人的,没一个能很好的用。有些根本就清 不了,有些要清两次。这个是最好用的,本人测试完全保证没问题。 我们建立SVN时经常遇到新建新的SVN项目后但是里面带...
SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在...
方法一:双击WINsvnlog2excel.bat,即可在当前文件夹下生成SVNLog的excel文件,默认导出bat文件第二行中SVNPATH所定义的SVN路径的LOG。可以修改bat文件中第二行的SVNPATH,导出指定SVN路径的log 方法二:在CMD...
svn
svnadmin dump /data/svn/repository > /data/repository-backup.dump #全局备份,包括数据和历史记录,repository为例,实际为库名 2、 导入新库 svnadmin create /data/svn/repos/newproject #在新的服务器上新建...
VS2008的SVN插件AnkhSVN。 1.下载完毕后,进行安装,安装向导安装即可。 2.打开VisualStudio2008,单击菜单“工具”-“选项”,然后选择SourceControl下的插件选择,选择我们刚刚安装的插件。 3.新建项目,勾选...
AnkhSVN 2.4 released!(Thursday, August 23, 2012) AnkhSVN is a Subversion Source Control Provider for Microsoft Visual Studio 2005, 2008, 2010 and 2012. AnkhSVN provides Apache™ Subversion® source ...
svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn...
Versions for mac可以说是MAC下最好用的svn客户端了,对于Mac用户来说,SVN的知名客户端TortoiseSVN只支持Windows系统,让人不免失望,因此Versions就是目前Mac OS最好的SVN客户端。 Versions在使用上非常的简单,...
这是一遍比较完整的linux下svn+apche+ldap安装配置手册,根据本人实际安装整理后的文档,目前都算是最新版本。其中ldap使用sun的opends,个人感觉比openldap要方便,当然重点不是用什么ldap而是如何配置。 主要包括...
1. 安装SVN apt-get install subversion 2. 建立svn仓库 1). 建立svn目录:mkdir /home/.svn(使用隐藏目录) 2). cd /home/.svn 3). mkdir astar 4). 创建仓库astar:svnadmin create /home/.svn/astar,...
svn插件svn插件
将文件解压缩到 C:\ 下,将解压缩后的 svn-win32-1.7.2 文件夹名改为 svn,然后将 C:\svn\bin 加入到系统的 PATH 环境变量中,即可开始使用。 将 svnserve.exe 设置为系统服务: sc create svn binpath= "C:\svn\...
svn客户端svn客户端svn客户端svn客户端svn客户端
SVN服务端、客户端、VS简体中文插件打包下载(2013-10-24) 内含: VisualSVN-Server-2.7.1.msi 服务端 TortoiseSVN-1.8.2.24708-x64-svn-1.8.3.msi 64位客户端 LanguagePack_1.8.2.24708-x64-zh_CN.msi 64位客户端...
SVN演示 SVN演示 SVN演示 SVN演示 SVN演示 SVN演示