我们使用Kiln作为我们的mercurial服务器,我有三个开发人员在同一个repo上工作,我经常遇到这个问题,我不太确定发生了什么。
每隔一段时间,我会做一次hg pull
然后,当我向上运行时,我收到以下消息
abort:跨越分支(使用'hg merge'合并或使用'hg update -C' 放弃更改)
好的,所以我运行hg merge
,然后我
abort:未完成的未提交更改(使用'hg status'列出 改变)
好的,所以我运行hg status
,我得到类似的东西
! Safemail 3.0\CSM3.0\AddinSetup\Release\AddinSetup.tmp
! Safemail 3.0\CSM3.0\Outlook2007Addin\Outlook2007Addin_TemporaryKey.pfx
不知道该怎么做。
如果我再次运行hg commit
,则说明没有变化
最后如果我运行hg heads
我得到
changeset: 51:daea74a29d5c
tag: tip
parent: 49:b88e6e522672
user: Rahul Chandran
date: Mon Jan 23 13:30:54 2012 -0800
summary: added login code
changeset: 50:cb6f6e1eec5e
parent: 46:d83431c322ad
user: dthompson@Jabberwock.lan
date: Mon Jan 16 22:10:11 2012 -0600
summary: Adjusted Email-PDF formatting
显然,我不是来自DSCS背景,而且我可能错过了对正在发生的事情的一些基本了解。任何帮助表示赞赏 我所知道的是,我的同事通过推送检查的代码与我的更改没有共同的文件。我不希望在非分布式源代码控制系统中出现合并冲突等问题。基本上我在理解这里发生的事情时遇到了一些麻烦
答案 0 :(得分:7)
查看hg status
的帮助。它会告诉您!
表示:
! = missing (deleted by non-hg command, but still tracked)
因此,您删除了存储库中跟踪的一些文件。如果您不想首先跟踪它们(它们看起来像是好.hgignore
个候选者),您可以hg forget FILENAMES; hg commit
它们。相反,如果你想跟踪它们,你可以hg revert FILENAMES
它们(让它们从你的存储库中回到你的工作目录。
一旦hg status
同意您没有未提交的更改,您就可以hg merge
。
考虑花一点时间阅读(免费)Mercurial书的前几章。这些基本概念在呈现良好且有序的情况下很容易,但是当您尝试从谷歌搜索和Stack Overflow问题逐个挑选时,这些概念非常令人沮丧。值得花30分钟来节省你的时间。