Mercurial执行hg log css/命令输出含js文件变更的异常咨询
问题原因与存储位置说明
为什么会出现无关的变更记录?
Mercurial的hg log css/命令逻辑是展示所有包含css目录下文件变更的完整变更集,而非只提取变更集中css相关的内容。如果某个提交同时修改了css目录内的文件和js/main.js,那么这个变更集的全部信息(包括js文件的变更描述)都会被完整展示出来——只要该变更集涉及css目录的修改,就会被纳入查询结果。
比如:若有一个提交既修改了css/main.css,又修改了js/main.js,提交摘要写的是"js/main.js changed",当你执行hg log css/时,这个变更集会因为包含css的修改被筛选出来,摘要里的js相关描述自然也会随之显示。
这些信息在仓库中的存储位置
Mercurial仓库的所有变更集数据都存储在.hg/store/目录下:
- 变更集的核心元数据(提交者、日期、提交摘要、文件变更列表等)主要存放在
.hg/store/00changelog.i(索引文件)和.hg/store/00changelog.d(数据文件)中。 - 每个文件的不同版本内容,会以哈希命名的路径结构存储在
.hg/store/data/目录下。
内容的提问来源于stack exchange,提问作者Ilya
相关产品推荐
相关产品推荐

