现在我已经适应了 Mercurial,有点回顾。忘记忘记文件与hg remove
. 这是疯狂的和低音的。hg remove
一旦您确定某个忘记文件中的某些内容不会忘记,您就可以使用该文件,因为在创建原始存储库之前已跟踪相关项目。注意hg remove
有效地清除跟踪状态,但它还会安排文件删除从您的存储库中获得更改的任何内容。如果被忽略,但是跟踪停用仍然会发生,但删除我的更改集将永远不会到达另一个 repo,并且由于某种原因永远不会删除你的 IMO 是违反直觉的。这是一个非常确定的迹象,表明有人和我不认识这些人,不愿意在 DUH 设计问题上妥协。要理解的重要一点是,你不能确定什么是重要的,Mercurial 会。当然,除非您合并拉动。那么这完全合理。但我离题了...
Ignore-file/remove 对于已经跟踪但非常具体的文件来说是一个很好的组合,但如果您要处理大量使用更广泛模式确定的构建文件,则不值得冒险。只需使用双重存储库,然后pull -u
从远程存储库到同步存储库,然后pull -u
从您的工作仓库提交并合并到一个仓库中,其唯一目的是合并更改并将它们传递到您不完全跟踪或未跟踪的文件的地方(拉动而不是推送时的行为当然是不同的,因为嘿,为什么要保持一致?) 不会引起挫败感。相信我。你应该有两个回购才能完成的想法是有充分理由的,而且我们这么多人正在这样做应该表明一个严重的设计问题!@#$ing 设计问题,但它比其他所有问题都少得多可怕的事情会让你后悔寻找一个明智的选择。
并使用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
语境:
我在 node.js 中编写了一个自动配置实用程序。我只想更改它更改的文件以被忽略。我们有两个团队,并且两者都不在同一个页面上,使这成为一个通用的东西,所以它现在需要特定于用户。
配置文件已到位并由我的 ini 文件指向。我克隆。我运行配置实用程序并更改文件,stat 显示每个文件的列表,旁边有一个 M。我认为这是 utf-8 的东西,并明确地将文件设置为 utf-16 little endian。我不认为我正在使用 regEx,任何值得实际调用 regEx 的现代风格的 regEx 都不支持。