0

我的想法是,从具有多个 revs 的 repo 开始,获取修订列表,以及每个修订的 {matching-file-patterns}。

目标是使用该数据获取每个 .CPP 和 .H 文件更改的次数,以及日期、更改文件的用户等其他数据,以更彻底地跟踪项目的进度。

hg log --template "revision:{rev}\nfiles:\n{files % '  {file}\n'}"

以上将部分完成我的要求(以及将输出传递到 .txt 文件并在外部解析它),但我仍然发现对结果进行预过滤很有趣,即 hg 日志仅显示 .CPP 和 .H文件,例如。

我已经调查过了,选项“set: * .cpp or * .h”可以,但是

hg log "set: **.cpp or **.h" --template "revision:{rev}\nfiles:\n{files % '  {file}\n'}"

不会进行任何类型的过滤。

在此任务中欢迎任何建议/解决方案,即使是在自动化报告的主要任务中!(我完全确定有更简单的方法来完成它)

谢谢你。

4

1 回答 1

0
  1. 在 log 命令中使用 revsets,而不是文件集
  2. 使用更简单的模板:您的模板在我的测试中不输出任何内容(在对条件进行相关编辑之后),但--template "{rev} {author}\n"显示修订列表

Revset 将是-r "file('**.cpp') + file('**.h')"

编辑

使用文件集实现日志,用于我的存储库和文件

>hg log "set: **.txt or **.png" --template "{rev}:{node|short} {author|user} {date|isodate}\n{files % '  {file}\n'"

由于某种原因,构造\nfiles:\n{files % ' {file}\n'不起作用,但可以使用没有静态文本。

日志输出

6:e0670b3704b4 lazybadger 2012-06-24 15:20 +0600
  functions.php
  readme.txt
  screenshot.png
  style.css
5:1c722f4facda lazybadger 2012-02-07 07:56 +0600
  readme.txt
  sidebar.php
  style.css
4:630f5c2e836a lazybadger 2012-01-09 22:33 +0600
  comments.php
  functions.php
  header.php
  readme.txt
  sidebar.php
  style.css
3:168c55fc758d lazybadger 2011-12-14 04:01 +0600
  footer.php
  functions.php
  header.php
  readme.txt
  search.php
  style.css
0:f4413f649a23 lazybadger 2011-08-06 01:13 +0600
  404.php
  archive.php
  archives.php
  comments.php
  footer.php
  functions.php
  header.php
  html5.js
  image.php
  index.php
  license.txt
  links.php
  page.php
  screenshot.png
  search.php
  sidebar.php
  single.php
  style.css

注意变更集的文件列表——它们包括所有类型的文件,而不仅仅是需要的类型

于 2013-06-19T12:04:19.960 回答