假设hg版本控制下有一个文件.我有该文件的特定版本,我想知道此文件在此版本中的修订版本.
我怀疑有两种可能的方法可以做到这一点.
不要hg update在一个循环,并针对diff的后续版本文件(sloooow,但应该工作).
Make Mercurial在提交之前将转号放在文件的第二行中,例如注释中.从我所读到的,precommit钩子可能是有用的.然后我不必比较任何东西,只看文件本身(我假设没有人会改变这个,当然,但在我的情况下这是相当安全的假设).
我的用例是一篇用LaTeX编写的联合论文,有两位共同作者根本不知道版本控制,但我更喜欢使用它(出于显而易见的原因).我们通过电子邮件进行沟通,并且实际上有一个基于人的锁系统("在你发给我下一个版本之前,我不会对这个文件起作用,好吗?").这产生唯一的问题是,我要送X版本,以笔者B到校对,然后笔者C发送我一个修正版本,Y和我犯到我的回购,那么笔者B发送他改正Z(到版本X)和我我开始迷路 - 但是我可以检查发送给B的电子邮件中的附件,我只需要找出它是哪个版本.
所以,我的问题是:上面两个想法中的哪一个会更好,或者还有另外一个可以帮我处理这个烂摊子?
hg archive是一个很好的方法,未来的工作,但我可以建议至少3种替代工作方式和1修复find-correct-version更新
未来的工作
您可以使用的合着者和默认单独命名为分支合并的结果,发送合着者总是把头从他的分支,得到修正后更新自己的分支(你永远知道,那你派)和合并分支为默认
一个分支,标有书签的同事修订版,您稍后会转到下一个点
Mercurial关键字在某种程度上被视为" 最后的特征 ",但在您的情况下,它是明显且可用的解决方案:只需在文件中添加带有hash-id的关键字(默认扩展而不是挂钩 - 更容易,更可靠)
当前状态
要查找带有文件源的变更集,您可以尝试使用bisect(示例)并在test-script,fe,文件的CRC中测试(您需要无版本文件的CRC,检查历史记录中的版本化文件)