- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用带有中央存储库的 mercurial。当我们中的两个或更多人致力于我们在本地提交的更改时。在某个时候,我们将这些更改推送回中央存储库。
当我拉动时,问题就来了。通常会有其他开发人员修改和推送的文件,这些文件会通过拉取进入我的存储库。然后我需要 merge ,这显示了我的本地存储库和提交的文件之间的区别。
困扰我的是我必须 merge 和提交。这被推回到中央服务器,它似乎已经提交了两次相同的更改,一次是我作为 merge ,一次是来自其他开发人员的变更集。
在 mercurial 中有没有什么方法可以更新我的存储库并更新我没有接触过的文件,而不是记录两次完全相同的更改,一次来自原始开发人员,一次来 self 的 merge ?
这个问题似乎提出了同样的观点,但没有提供我的问题的答案: Why is mercurial dumb when merging? How can I make pulling/merging changes simpler?
最佳答案
Mercurial 在变更集和修订方面工作。
变更集是进行修订时所做变更的快照。
如果你成功地只更新了被更改的文件,当你拉取时,你的工作文件夹中不会有一个实际的修订,你会有一个 SCSS 修订,只有你和你的机器知道如何那是。在不同时间拉动的其他人会得到不同的 SCSS 修订版,他们不会排队。
所以不,Mercurial 设计为完全按照您所说的那样工作,除了它没有真正显示发生两次的变化,如果它看起来这样做,一定是您做错了什么。
换句话说,如果我更改了某些内容并提交,然后我拉下您的更改,进行 merge ,然后提交, merge 提交将只包含我为解决 merge 而必须执行的任何更改。如果 merge 是自动的,没有需要解决的冲突,看起来您只是在提交一个空的变更集,有两个父变更集。
现在,有很多方法可以减轻所有分支,例如,您可以使用 rebase。
会发生以下情况:
central: 1---2---3---4
local: 1---2---3---4
你改变了什么
central: 1---2---3---4
local: 1---2---3---4---5
其他人改变了一些东西,然后推送:
central: 1---2---3---4---5'--6'
local: 1---2---3---4---5
(我在 5 之后使用 ' 来表明虽然它是该存储库中的修订号 5,但它与其他存储库中的修订号 5 不同。)
然后当你拉的时候,它看起来像这样:
central: 1---2---3---4---5'--6' <-- corresponds to these <--+
|
local: 1---2---3---4---5 |
\ |
6'---7' <-- note that these gets renumbered
然后你将 5 rebase 到 7' 之上,你得到这个:
local: 1---2---3---4---6'--7'--5
如果需要,如果您进行了冲突更改,则在 rebase 时会发生 merge 。 rebase 后,您可以推送。它基本上使您的修订历史看起来像是轮流工作。
关于使用中央存储库时,mercurial 协作会导致多次提交相同的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5793828/
我正在尝试启动一个协作 C++ 项目,该项目需要多线程、网络、MySQL 和 Unicode (UTF-16) 支持(本质上是一个网络应用程序)。 我发现 POCO 库是所有这些功能的来源,它似乎是一
有人可以为我提供 GitHub 协作的备忘单,供两个人组成的团队使用,他们希望对 repo 具有平等的访问权限/权利。我对使用 fork 的必要性感到困惑,这对于具有分散开发人员的大型开源项目似乎很有
public class Testing //main app class { public static void main(String[] args) {
文件“/content/drive/我的驱动器/mask/face-mask-detector/detect_mask_image.py”,第32行,在 净= cv2.dnn.readNet(prot
嘿,我正在合作一个 Trigger.io 项目,我很好奇是否有关于如何最好地做到这一点的文档?我有其他人正在使用 TriggerToolkit(通过 github)将我的项目加载到他们的环境中,但他们
在 Google Collaboratoy (colab) 上作为 Notebook 工作,某些单元格会产生比屏幕分辨率更大的长行文本,因此它会显示一个没有换行的滚动条。 有谁知道如何在不使用滚动条的
我正在 streamlit 中开发用户界面并使用 pyngrok来自 Colab。一切正常,直到几天前隧道未找到错误开始发生。我正在使用下面的代码。我也升级了pyngrok并尝试过,但同样的问题仍然存
我非常喜欢 Android 自动化测试的想法。 我试过 Spoon,它在不同设备上预览 UI 的当前状态时效果很好。 问题是如何有效地与团队(开发人员/UI/UX)共享它。 我想要的是:构建服务器(J
在 Spring Integration 中,我使用了几个 channel 适配器来从服务器套接字发送/接收消息。我总是使用以下适配器创建客户端连接: @Bean public TcpReceivin
我和我的 friend 计划开始一个移动 Phonegap 项目,该项目将涵盖 iOS、Android 和 Window Phone。它将需要访问某些 native 功能,例如照相手机。它还必须进行一
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我有两个类,一个依赖于另一个。它是这样实现的: class myns.ClassA constructor(@serviceB): -> publicFunctionA: -> pri
我需要在 C++ 项目中使用现有的 C 库。我的问题是 C 现有库使用 FILE* 作为流,是否有一种符合标准的方式来使用 FILE* 流来放入或从 C++ 流中获取? 我尝试在 C++11 标准中寻
虽然有很多关于此错误的问题,但所有问题都与出现错误的人创建的应用程序有关,并没有帮助解决我的问题。我已被添加为 heroku 应用程序的合作者。当我尝试通过 克隆 heroku 存储库时 git cl
GitHub 允许其他人(或虚假帐户、垃圾邮件机器人等)将您作为协作者添加到存储库,而无需您自己的任何批准。这导致烦人的长长的 repo 列表充满了半垃圾邮件(不知名的人将我添加到他们的项目中,Git
我们有一个协作网络应用程序,其中在用户 A 的浏览器中执行的操作将对用户 B 的浏览器产生副作用。聊天室是应用程序的一部分,也是我们尝试测试的一个很好的例子。 我们目前的堆栈是: 前端的Angular
我有包含选项卡控件的jsp页面。每个选项卡都有类别名称作为标题,并包含一个表格,其中包含有关所选类别组的信息。单击该选项卡应在数据库中进行查询,并使用类别组列表填充选项卡中的表。所以我在 Contro
我正在学习网络开发,最近 Meteor 引起了我的兴趣。 我完成了创建待办事项的入门教程,并使用保存按钮将列表提交到数据库。它允许打开网站的每个人看到相同的待办事项列表。 我在待办事项中添加了用户登录
我已经使用 Visual Studio 2013 为一个 C++ 学校项目编写了大量代码。现在,在接下来的行程中,我将与另一个使用 Mac 的学生一起工作。 Git 似乎是促进协作的明显选择(我们都有
我和我的 friend 正在尝试通过 GitHub 就一个基本的 Android-Studio 项目进行协作。我知道如何通过网站和 Android-Studio 连接我们的 GitHub 帐户,这不是
我是一名优秀的程序员,十分优秀!