首页 / 知识
关于svn:为什么在Mercurial中分支和合并比在Subversion中更容易?
2023-04-14 05:14:00

Why is branching and merging easier in Mercurial than in Subversion?在Subversion或CVS中将多个合并处理到分支上只是必须经历的事情之一。 在Mercurial(以及可能的任何其他分布式系统)中跟踪分支和合并非常容易,但是我不知道为什么。 还有谁知道吗? 我的问题源于以下事实:Mercurial可以采用类似于Subversions / CVS中央存储库的工作方式,并且一切都会正常进行。 您可以在同一个分支上进行多次合并,并且不需要无休止的纸屑,包括提交号和标签名。 我知道最新版本的Subversion具有跟踪合并到分支的能力,因此您不会遇到相同程度的麻烦,但是这对他们来说是一个巨大而重大的发展,并且仍然无法满足开发团队的所有要求 喜欢做。 所有工作方式都必须有根本的区别。
+1
CVS / SVN的麻烦来自于以下事实:
使用图形工具之一
请注意,A和B有两个孩子,而M有两个父母。这些
该工具将自动知道基数为B,因为它
M只是A和B之间发生的所有事情的巨大"压缩"提交,
更糟糕的是,进行第二次合并成为一场噩梦:人们必须弄清楚
一个(相关的)问题是无法回答这个问题:" X
P.-S. -我没有SVN 1.5+合并记录功能的经验,但是工作流程似乎更多 因为Subversion(至少是1.4版及更低版本)无法跟踪已合并的内容。对于Subversion,合并基本上与任何提交相同,而在其他版本控制(如Git)上,将记住已合并的内容。 Hg不受任何已经提供的答案的影响,提供了卓越的合并功能,因为它在合并更改时使用更多信息(hginit.com):
当然,记住最后合并的内容(此处提供的大多数答案都解决了这一点)也是一个巨大的胜利。 但是,由于Subversion 1.5+会以Subversion属性的形式存储其他合并信息,因此这两个改进都值得怀疑:该信息可用,没有明显的理由说明Subversion合并不能像Hg或Git那样成功地实现合并。不过,我不知道是否可以,但是听起来确实像是Subversion开发人员正在解决这个问题。 我想这可能部分是因为Subversion具有中央服务器的想法以及绝对的修订时间线。 Mercurial确实是分布式的,没有对绝对时间线的引用。这确实允许Mercurial项目形成更复杂的分支层次结构,以按子项目添加功能和测试周期,但是团队现在需要更加积极地保持合并的顶部,以保持最新状态,因为他们不能仅仅点击update并完成更新。 。 在Subversion(和CVS)中,存储库是最重要的。在git和mercurial中,实际上并没有以相同的方式定义存储库的概念。这里的变化是中心主题。 我也没有考虑过如何实现,但是我的印象(基于痛苦的经验和大量的阅读)是,这种差异使得在非基于存储库的系统中合并和分支变得如此容易。 我只有Subversion的经验,但我可以告诉您TortoiseSVN中的合并屏幕非常复杂。幸运的是,它们包括一个空转按钮,以便您查看操作是否正确。复杂之处在于您要合并到何处的配置。一旦您为合并设置好,合并通常就可以了。然后,您需要解决所有冲突,然后将合并的工作副本提交到存储库。 如果Mercurial可以简化合并的配置,那么我可以说那将使Subversion的合并变得100%容易。 |
最新内容
相关内容
linux文件夹合并命令?
linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数组,在linux下我有两个文件夹w1,w2,怎样把它们合并到一个文件夹1、linux多个命令输入?
linux多个命令输入?,系统,工具,工作,命令,电脑,地址,信息,软件,服务,连续,Linux多台主机批量执行命令执行命令(记得先对doCommand.s h增加执行使用linux命令合并?
使用linux命令合并?,文件,代码,工作,命令,内容,两个,目录,方法,麻烦事,发现,linux切分文件命令(split)和合并文件1、[root@localhost databaselinux分区合并命令行?
linux分区合并命令行?,系统,管理,地址,电脑,名字,工具,数据,工作,分区,地方,请问,linux如何合并分区?可以试试Acronis Disk,这个软件在windows合并文件的linux命令?
合并文件的linux命令?,文件,代码,位置,系统,命令,内容,两个,文件夹,链接,方法,linux中怎么将文件合并方法一:使用cat命令从文件中读入两个文件,linux启动多个命令?
linux启动多个命令?,密码,工作,对比,设备,标准,代理,第一,命令,参数,脚本,重启服务器的linux命令首先我首要把linux开机, 命令 rebot 这个是linlinux合并命令是什么?
linux合并命令是什么?,文件,代码,位置,系统,命令,两个,内容,文件夹,链接,功能,Linux怎么用命令合并多个文件为一个1、将两个文件filetxt和filelinux杀多个进程命令?
linux杀多个进程命令?,系统,数字,进程,名称,工具,状态,电脑,材料,管理,命令,在Linux系统中使用xkill命令杀掉未响应的进程1、首先,连接相应linuPython列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符Python中字典合并的实现方法
Python中字典合并的实现方法,培训,结果,以上,版本,字典,方法,函数,下面,背景,发现,TableofContents背景Methon1:适用于Python3.5及以上版本呢Mpython中如何使用zip函数将列表合
python中如何使用zip函数将列表合并为字典?,代码,培训,字典,列表,函数,实例,元素,对象,语法,长度,python的作用很强大,列表和字典是两个不同类python如何replace(替换)多个字符?
python如何replace(替换)多个字符?,培训,字符,字符串,方法,正则,括号,数组,函数,定义,以上,python中使用replace替换多个字符的方法:1、使用re