Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“的实际使用示例是什么?”;hg复制文件文件2“;使用Mercurial?_Mercurial_Dvcs - Fatal编程技术网

“的实际使用示例是什么?”;hg复制文件文件2“;使用Mercurial?

“的实际使用示例是什么?”;hg复制文件文件2“;使用Mercurial?,mercurial,dvcs,Mercurial,Dvcs,Mercurial有一个 hg copy file file2 命令和更改可以在第一次合并时传播更改。O'Reilly Mercurial的书中说Mercurial是唯一一个这样做的源代码控制系统 这有什么实际用途?这本书提到制作文件的副本并进行bug修复,因此bug修复可以传播回原始文件,但是通过版本控制,我们不是通常直接编辑文件吗?如果bug修复有效,那么直接提交该文件?或者,即使出于某种原因我们需要复制,我们也可以cp file file2,测试修复,然后mv file2 file将该文

Mercurial有一个

hg copy file file2
命令和更改可以在第一次合并时传播更改。O'Reilly Mercurial的书中说Mercurial是唯一一个这样做的源代码控制系统


这有什么实际用途?这本书提到制作文件的副本并进行bug修复,因此bug修复可以传播回原始文件,但是通过版本控制,我们不是通常直接编辑文件吗?如果bug修复有效,那么直接提交该文件?或者,即使出于某种原因我们需要复制,我们也可以
cp file file2
,测试修复,然后
mv file2 file
将该文件移回原始文件,并提交该文件。使用
hg copy
功能的一个好例子是什么?

假设文件中有一个基类。您希望创建一个派生类,因此可以执行
hg copy
,并通过删除某些方法并对其他方法进行更改来自定义派生类。现在,您在另一个分支的同事修复了基类中的一个bug。当您进行合并时,该错误修复将合并到派生类以及基类中。

以下是我个人使用的一个示例。带有复杂配置文件的软件包有时会提供名为
universe wsgi.ini.sample
(嗨,galaxy)的示例,作为安装的一部分,您应该将
.ini.sample
文件复制为
.ini
文件。如果您这样做,请使用:

hg copy universe-wsgi.ini.sample universe-wsgi.ini

然后,每当您使用
hg pull更新软件时;hg update
示例中提供的新设置将添加到您的自定义版本中,默认设置。

我在这个主题上看到了很多困惑,诚然,一开始我也很困惑。根据我的理解,这个用例如下所示

如果您正在复制一个文件,而其他人可能在同一时间处理同一个文件,或者以轻量级或实际的分支方式从与正在复制并可能修改该文件的变更集重叠的时间点开始分支/分支,则这是hg copy的候选

它解决了在该文件中有一个从未来更改到分支的其他“头”知道它存在的回归的问题

它似乎不用于以下用途:

  • 定期同步和更新从原始文件复制的文件
问题变得复杂了,尤其是当你进入重新分解时。对很久以前复制的文件应用更改是不可取的。似乎只有当您将复制文件的开发放在一个完全独立的分支中时,才可以这样做,但一旦这两个分支再次合并在一起,hg copy将不再执行您所期望的操作


我的参考资料:

时间必须正确,这是真的吗?如果我创建派生类并签入代码,他修复了bug、pull、merge和commit,那么修复程序就不存在了?顺便说一下,它还可以中断派生类?现在,如果我们要复制的是一个配置文件,那么我们可能不想使用
hg copy
,因为我们不想将一个更改传播到另一个。我很确定,无论是谁进行合并,它都会起作用。是的,它可能会破坏派生类或产生另一个不必要的副作用。这就是为什么你可以禁用传播,如果你愿意的话。我们的makefiles现在可以为我们自己的一些文件这样做,很高兴知道hg可以很好地处理它。这是有道理的,但我仍然觉得它真的很酷:)嗯,你确定是这样吗?从我读到的内容来看,hgcp只会将更改传播到第一个没有看到复制文件的合并。(). 也就是说,它似乎只处理同时进行更改的情况,而不像您描述的sample.ini那样是一个连续更新。例如,据我所知,如果你复制了文件,你提交了更改,然后修改了原始文件,副本就不会被修改。我一直在想同样的事情。然后我看到有人用它将大文件拆分成小文件: