如何让Mercurial识别Git文件重命名:hg-git重命名检测配置完整指南
如何让Mercurial识别Git文件重命名hg-git重命名检测配置完整指南【免费下载链接】hg-gitmercurial to git bridge, pushed to directly from the hg-git plugin in Hg项目地址: https://gitcode.com/gh_mirrors/hg/hg-githg-git是一款让MercurialMercurial / Hg与Git双向桥接的插件装上它你就能用hg push/hg pull直接和 Git 仓库协作。但有一个隐形坑——重命名检测默认是关闭的从 Git 拉取提交后一次git mv在 Mercurial 里会变成删除旧文件 新增新文件文件历史就此断裂。本文带你用 3 个核心配置项完成Mercurial 文件重命名检测调优让重命名、拷贝在hg log中完整呈现。为什么 Mercurial 默认看不见Git 重命名Git 的提交对象里其实不存储重命名信息——git mv在提交时只是一次普通的删旧 加新重命名是git diff显示时靠内容相似度临时算出来的。而 Mercurial 会把重命名作为提交的一等公民记录下来。所以 hg-git 在把 Git 提交翻译成 Mercurial 变更集时需要自己做一次相似度计算。为了避免性能意外大仓库全量比对非常慢这个检测默认关闭similarity 0。 换句话说不是识别不了而是需要你先在 hgrc 里打开开关。检测器在 hggit/git_handler.py 中构建完整文档见 README.md。重命名检测调优hg-git 三大配置项所有配置都写在 hgrc仓库级.hg/hgrc或用户级~/.hgrc的[git]段下。1️⃣ git.similarity重命名相似度阈值核心开关取值0100表示两个文件一对删除/新增内容相同多少百分比才算重命名。默认0即关闭检测。取值效果0关闭检测默认最安全50宽松改动超过一半也认作重命名适合小幅重构90保守文件需保持 90% 以上相同误判极少100最严格内容完全一致才算重命名[git] similarity 50 官方测试 tests/test-renames.t 用的就是similarity 50能正确识别alpha → beta的重命名和beta → gamma的拷贝。2️⃣ git.renamelimit单次检测的文件数上限重命名检测的复杂度是 O(N²)——一次提交改动 1000 个文件比对量就是百万级。git.renamelimit规定当一次提交修改的文件数超过该值时直接跳过检测。默认400与 Git 的diff.renameLimit保持一致小仓库保持默认即可不要盲目调大否则hg pull会明显变慢。3️⃣ git.findcopiesharder深度拷贝检测谨慎开启开启后未修改的旧文件也能作为拷贝的来源类似git diff --find-copies-harder。代价是大项目上非常昂贵默认False除非你明确需要找回从老文件复制出来的历史否则不建议开。[git] similarity 50 renamelimit 400 # findcopiesharder True ; 大项目慎用三步快速启用重命名检测配置步骤第 1 步安装 hg-git 插件git clone https://gitcode.com/gh_mirrors/hg/hg-git在~/.hgrc中注册扩展路径按实际克隆位置填写[extensions] hggit /path/to/hg-git/hggit第 2 步在[git]段添加重命名检测配置[git] similarity 50第 3 步重新拉取并验证对已有仓库删除本地 Git 缓存后重新导入即可看到效果hg gclear hg pull提示重命名检测发生在Git → Mercurial 导入方向。反方向hg → git则相反——Mercurial 提交中的重命名会被写成HG:rename/HG:rename-source元数据存入 Git 提交保证双向转换无损。如何选择合理的 similarity 值调参思路很简单值越大越保守越小越宽松。日常协作仓库推荐50能覆盖绝大多数改了名字顺手改几行的场景重构频繁、文件大量搬家的仓库可降到40接受少量误判对精确性要求高如生成 changelog设90以上宁可漏报不误报⚠️ 改完配置后已导入的历史提交不会自动重新识别——如需重建历史需hg gclear后重新导入。如何验证重命名检测已生效拉取后用hg log -p查看提交详情✅ 识别成功diff 中出现rename from alpha/rename to beta拷贝为copy from/copy to❌ 未识别同一提交里旧文件显示deleted file新文件显示new file。提交元数据里还应带有hg-git-rename-sourcegit标记表明该提交的重命名信息由 Git 侧推断而来。常见问题FAQQ1为什么不直接跟随 Git 默认的 50%Git 的重命名是显示期计算不影响数据hg-git 的重命名会写入 Mercurial 历史属于数据级决策所以默认关闭把选择权交给你。Q2开启后 hg pull 变慢了调低renamelimit如200或临时把similarity设回0。Q3在 Mercurial 里hg mv的文件名会被 Git 侧识别吗会被记录。hg-git 在推送时把重命名写入HG:rename元数据Git 用户通过工具读取这些标记即可获得准确的文件历史。小结配置项默认值一句话建议git.similarity0关闭设50快速启用重命名检测git.renamelimit400保持默认防止大提交卡顿git.findcopiesharderFalse大项目不要开只需在 hgrc 中加一行similarity 50Mercurial 就能看懂Git 提交里的文件重命名与拷贝hg log的历史视图从此完整清晰。更多配置作者映射、分支后缀等可继续查阅 README.md 的 Configuration 章节。【免费下载链接】hg-gitmercurial to git bridge, pushed to directly from the hg-git plugin in Hg项目地址: https://gitcode.com/gh_mirrors/hg/hg-git创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

3 步快速复活老 Flash 游戏:Ruffle 免费 Rust 版 Flash Player 模拟器

3 步快速复活老 Flash 游戏:Ruffle 免费 Rust 版 Flash Player 模拟器

3 步快速复活老 Flash 游戏:Ruffle 免费 Rust 版 Flash Player 模拟器 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle 十多年前收藏的迷你游戏站,今天点进去只剩一个…

2026/8/25 8:50:55 阅读更多 →
Roblox创作者奖励与计划全解析:Roblox创作者文档中的分成、扶持与IP授权体系

Roblox创作者奖励与计划全解析:Roblox创作者文档中的分成、扶持与IP授权体系

Roblox创作者奖励与计划全解析:Roblox创作者文档中的分成、扶持与IP授权体系 【免费下载链接】creator-docs Open Source Creator Documentation 项目地址: https://gitcode.com/gh_mirrors/cr/creator-docs 想了解 Roblox 创作者奖励、收入分成与扶持计划&a…

2026/8/25 8:50:55 阅读更多 →
Linux下Common Lisp开发环境搭建:sbcl+emacs+slime硬核实践

Linux下Common Lisp开发环境搭建:sbcl+emacs+slime硬核实践

1. 为什么这套组合至今仍是Lisp开发者的“硬核标配”在Linux下搭一个能真正干活的Lisp环境,不是装几个包就完事的事。我从2012年开始用Common Lisp写工业级配置引擎,中间换过三套IDE——EclipseCDT改造成Lisp插件、AtomParinfer、VS CodeCalva&#xff0…

2026/8/25 8:49:55 阅读更多 →

最新新闻

不点击鼠标也能通过MouseEvent实现点击事件

不点击鼠标也能通过MouseEvent实现点击事件

文章目录事件系统的本质:发布-订阅模式为什么可以“伪造”点击事件?1. 统一的事件处理接口2. Event 对象的标准化3. 事件流的确定性深入 MouseEvent 的实现细节构造函数参数解析与 element.click() 的差异对比真实模拟完整点击序列在一个普通的网页上&am…

2026/8/25 10:22:56 阅读更多 →
前端常用加密方式使用

前端常用加密方式使用

文章目录1、Base64 编码2、MD5 加密3、SHA-256 加密4、AES 对称加密(常用)5、RSA 非对称加密(常用)6、什么是对称和非对称加密7、什么是哈希算法1. 核心特征2. 常见算法3. 前端/网络中的典型用途4. 不是加密1、Base64 编码 Base6…

2026/8/25 10:22:56 阅读更多 →
量化交易数据源选型指南:从Tushare到QMT的OpenClaw实战

量化交易数据源选型指南:从Tushare到QMT的OpenClaw实战

1. 项目概述:量化交易的数据基石之战做量化交易,第一步也是最关键的一步,就是“找数据”。这就像盖房子打地基,地基不牢,后面无论策略模型多精妙,回测曲线多漂亮,都可能是空中楼阁。最近在折腾O…

2026/8/25 10:22:56 阅读更多 →
量化交易数据源选型与混合架构实战:从Tushare到QMT的OpenClaw集成

量化交易数据源选型与混合架构实战:从Tushare到QMT的OpenClaw集成

1. 项目概述:量化交易的数据基石之战做量化交易,第一步也是最关键的一步,就是搞定数据。没有高质量、稳定、及时的数据,再精妙的策略也只是空中楼阁。最近在折腾OpenClaw这个开源量化智能体框架,想用它来搭建一个自动化…

2026/8/25 10:22:56 阅读更多 →
微信小程序webview postmessage通信指南

微信小程序webview postmessage通信指南

需求概述 在微信小程序中使用 web-view 组件与内嵌网页通信时,网页可以通过 wx.miniProgram.postMessage 向小程序发送消息,小程序通过 web-view 的 bindmessage 接收。该接口仅支持网页向小程序发送消息;小程序向网页传参通常使用 URL 参数…

2026/8/25 10:22:56 阅读更多 →
AI Agent混合集群路由器的设计与实现:统一调度OpenClaw与Hermes

AI Agent混合集群路由器的设计与实现:统一调度OpenClaw与Hermes

1. 项目缘起:当两个AI Agent“军团”需要协同作战时最近在折腾AI Agent的落地应用,很多团队都面临一个现实问题:手头可能同时运行着不止一套Agent系统。比如,我们团队内部就同时维护着基于OpenClaw和基于Hermes的两套Agent集群。O…

2026/8/25 10:21:50 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →