mercurial - 如何在 Mercurial 存储库中搜索文件名?
问题描述
我想在所有提交/分支中搜索文件名,并找出哪些提交/分支包含该文件名。我不知道文件将在 repo 的哪个子目录/子目录中。
我试过hg grep <filename>
了,但这似乎只显示包含“ filename
”的文件。
我还查看了Mercurial - 确定文件被删除的位置?,但如果文件是在不同的分支上创建的,那真的对我有帮助。问这个问题的人建议hg log myfile -v
,这似乎可以工作,但没有。我知道在我的 repo 中某处该文件存在,因为当我这样做时我得到了一些东西find .hg | grep <filename>
,但这并没有告诉我(至少不清楚)哪些提交/分支。
解决方案
- 您必须阅读
hg help patterns
并且可能hg help filesets
为了为文件编写正确的模式(很可能您会对模式感到满意) - 如果文件现在存在于工作目录中(即后来添加但未删除),您将找到它
hg file <PATTERN>
并通过输出确定完整路径,见上文(使用的模式)
>hg file **/test-extra.t
tests\test-extra.t
并hg log
使用完整文件名调用
- 在任何情况下(
hg file
对于已删除的文件或仍在 WD 中的文件返回 0),您也可以调用hg log <FILESET>
并获取历史记录。现有日志太长,将显示已删除的唯一文件名示例
>hg log set:**/dulwich/tests/__init__.py -Tcompact
223 0b6c08800d16 2009-07-23 08:48 +0100 a
delete the dulwich fork we have
2 c43c02cc803a 2009-04-22 16:59 -0700 schacon
added dulwich library and got the script to call it for clone
- 如果您的设置太宽并且(可能)在不同文件夹中包含具有相同名称的文件,您必须通过调用 log 来验证文件名,其中包含有关文件的更多详细信息,fe 与
-Tstatus
推荐阅读
- c# - 设置 OxyPlot 图表标题
- javascript - JavaScript FileReader 正在复制 onload 回调
- python - Django celery beat 在 Elastic Beanstalk 上看不到周期性任务
- git - 'git commit' 和 'git status' 矛盾
- javascript - 引导日期选择器位置
- android - LinearLayout getChildAt 在 Nougat 中的工作方式不同
- quotations - 使用由另一个单词计算的引用会导致编译错误
- angularjs - AngularJS 中的摩纳哥编辑器
- asp.net-mvc - INSERT 语句与 FOREIGN KEY 约束冲突:需要将数据同时保存到两个数据库中
- python - Python nameerror:未定义名称权重