在分支中获取给定目录的所有更改的文件
|
我们的项目最近从SVN切换到了Mercurial。在SVN中,要对css / js文件进行版本控制,我们将从它们所在的目录中获得最新的修订版本,并将其用作打包文件名的前缀。
我们想在Mercurial中使用相同的方法。不幸的是,尽管这可能是由我们的分支方法引起的,但说起来容易做起来难。
简而言之,我们有一个主分支(主干)。每隔两周,我们就会从主干分支创建一个生产测试版,最终将其合并到我们的实时分支中。
现在,我们基本上是在使用
hg log -b live some_folder/js
hg log -b live some_folder/css
获取这些目录中最近更改过的文件的变更集。
我们遇到的问题是,使用此方法无法检测到我们的合并变更集。因此,如果我们合并一个在some_folder / css中修改文件的变更集,则hg不会将其视为已更改,因为该文件实际上并未在合并变更集中进行修改,而是在正在修改的变更集中之一合并。
我们还尝试了revsets来尝试解析日志,但是似乎有相同的问题。使hg日志列出更改后的文件的唯一方法似乎是使用--stat选项,但是
hg log -b live --stat some_folder/css
也不显示变更集。
我正考虑只使用
hg log -b live --stat
获取整个分支的日志,然后对其进行解析以查找最近修改目录的更改集,但我不希望这样做,因为随着分支的增大,它看起来会越来越慢。
有什么更好的方法来解决我的问题吗?
没有找到相关结果
已邀请:
2 个回复
朗排谎纷瘟
指定
选项来获取两个修订之间的更改列表,因此使用修订符号可以执行以下操作:
从理论上讲(这是我弄错了的地方:)),这些选项表示:
选择工作目录的父目录(假设合并后您仍在该目录中),并将其与自己的父目录进行比较(
)。指定“ 8”将有望在该分支中选择父级,但是正如我已经指出的那样,我现在无法对此进行测试。
捅瓶啡
然后对于每个变更集
当它返回任何不为空的值时,我停止循环并返回变更集ID。希望在某些时候,修订集将支持通过合并更改进行迭代。