2013-02-15 38 views
0

现在我已经进入了Mercurial的一个小回顾。忘记与hg remove结合的忘记文件。这是疯狂的和低音呐喊。一旦确定遗忘文件中的东西不会遗漏,您可以使用hg remove,因为在创建原始回购之前跟踪了该疑问项。请注意0​​可以有效地清除跟踪状态,但它也会安排文件在任何从您的存储库中获取更改的文件中删除。如果被忽略,但是跟踪停用仍然发生,但是这个删除 - 更改集不会再到达另一个回购站,并且出于某种原因决不会删除您的IMO违反直觉。这是一个非常肯定的迹象,有人和我不认识这些家伙,是不愿意妥协的设计问题。重要的是要明白,你不确定什么是重要的,Mercurial。除了当然你正在合并拉。那是完全合理的。但我离题...此用户忽略Mercurial的文件有什么问题?

忽略文件/删除是一个很好的组合已经跟踪,但非常具体的文件,你想忘记,但如果你处理大量的内置文件确定与更广泛的模式,这是不值得风险。从一个双重回购和pull -u从远程回购到您的同步回购,然后pull -u提交从您的工作回购和合并在一个回购,其唯一目的是合并更改并将它们传递到一个地方,其中你不完全跟踪或未跟踪的文件(当然,因为嘿,为什么要一致,拉动而不是推动行为是不同的),不会导致挫败感。相信我。你应该有两个回购的想法,只是为了让他们有充分的理由冒犯,而且我们很多人都在做这个事情,这应该说明一个重要的问题,但它比其他所有的问题都要痛苦得多可怕的事情,会让你后悔寻求一个明智的选择。

并使用hg help。这实际上是Mercurial的最佳功能,并且通常比因特网(我并不认为在所有事情上存在混淆之处)都要好得多,以便获得对此VCS中令人困惑和反直觉的所有问题的答案。

/追溯

# switch to regexp syntax. 
syntax: regexp 


#Config Files 

#.Net 
^somecompany\.Net[\\/]MasterSolution[\\/]SomeSolution[\\/]SomeApp[\\/]app\.config 
^somecompany\.Net[\\/]MasterSolution[\\/]SomeSolution[\\/]SomeApp_test[\\/]App\.config 

#and more of the same following 

而在我在我的用户目录的根mercurial.ini

[ui] 
username = ereppen 
merge = bcomp 
ignore = C:\<path to user ignore file>\.hgignore-config 

语境:

我在写节点的自动配置实用程序。我只想对其更改的文件进行更改以被忽略。我们有两个团队,两者都不在同一页面上,因此将其作为一个普遍的事物,因此它现在需要是用户特定的。

配置文件就位并指向我的ini文件。我克隆。我运行配置实用程序并更改文件,stat显示每个单独文件的旁边都有一个M的列表。我认为这是utf-8的事情,并明确地将文件设置为utf-16小端。我不认为我正在用regEx做任何现代风格的regEx值得真正调用regEx不会支持。

回答

2

.hgignore文件对跟踪的文件没有影响。它的功能是阻止你看到你想忽略的文件列为“未跟踪”。如果你看到“M”,那么他们已经被添加(你得到了他们与克隆),所以.hgignore什么都不做。

,从机而异机通常使用的方法配置文件的处理是把一个app.config.sample的源代码控制,在.hgignoreapp.config,让人们做副本的时候,他们正在做他们的配置编辑。

或者,如果您的配置文件允许包含和覆盖,则以include app-local.config结束它们,并覆盖app-local.config中的任何设置,但您不添加该设置并在.hgignore中包含该设置。

+0

因此,没有办法建立本地的东西来确定哪些东西不需要从克隆中进行跟踪? – 2013-02-18 00:30:15

+0

这是正确的。您可以将“其他所有”作为参数传递给'hg commit',并且可以使用'--exclude thing/to/exclude'命令,甚至可以创建别名(shell或in-mercurial),这样'hg mycommit '对这些排除事项做了承诺,但没有配置文件的方式来说“我对文件进行了更改,我告诉过你是重要的,但我不在乎”。 'whatever.sample'这是大多数你会找到的项目。 – 2013-02-18 01:39:59

+0

很酷。对于为什么Mercurial希望您添加所有这些步骤来完成这样简单的事情感到困惑,但感谢您的帮助。 – 2013-02-18 15:44:59

相关问题