2010-08-26 26 views
22

Lệnh hg log thông thường cung cấp đầu ra có ít nhất 4 dòng cho mỗi changeset. Ví dụ:Nhật ký Mercurial với một lớp lót

changeset: 238:03a214f2a1cf 
user:  My Name <[email protected]> 
date:  Thu Aug 26 09:49:32 2010 +0200 
summary:  Added tag v1.1 for changeset f22fd3974361 

Tôi muốn nhớ rằng có một lệnh để in nhật ký một cách gọn gàng hơn chỉ có một dòng cho mỗi thay đổi. Một định dạng mà bạn về cơ bản có thể dính vào một tập tin changelog.txt và nó sẽ trông đẹp.

Điều đó có tồn tại không? Hay tôi trộn cái này với thứ gì đó tôi đã thấy bằng git hay cái gì khác?

+1

cho kiểu thay đổi, hãy thử 'nhật ký - kiểu thay đổi' :) – tonfa

+0

Hãy thử cách này: nhật ký hg-" \ t {date | shortdate} \ t [{rev}] \ t {tác giả | người dùng} \ t {desc} \ n " –

Trả lời

24
hg log --style compact 

Bạn cũng có thể sử dụng các mẫu để hiển thị đăng xuất trong các định dạng khác nhau

hg help templates 

Trong trường hợp của bạn nếu bạn muốn hiển thị chỉ id nút làm điều gì đó như thế này

hg log --template "{node}\n" 
42

Bạn có thể sử dụng hg log với tùy chọn --template, ví dụ:

hg log --template '{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n' 

này sẽ hiển thị một cái gì đó như thế này (ví dụ từ thân cây GNU Emacs tôi chuyển địa phương đến một kho hg):

$ hg log --limit 5 --template '{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n' 
36ab2e3f8ebd | 2010-09-08 16:54:00 +0200 | agustin: textmodes/ispell.el (ispell-valid-dictionary-list): Simplify logic. 
9f3ac6d4a645 | 2010-09-08 16:42:54 +0200 | michael: Migrate to Tramp 2.2. Rearrange load dependencies. 
8c696d2a7695 | 2010-09-07 20:01:23 +0200 | agustin: Make sure original ispell arg list is initialized in (ispell-start-process). 
b5f110747072 | 2010-09-07 06:23:16 +0000 | yamaoka: gnus-html.el (gnus-html-wash-tags, gnus-html-put-image): Mark cid and internal images as deletable by `W D D'. 
b53cfb7d099e | 2010-09-07 01:20:19 +0000 | yamaoka: gnus-async.el (gnus-html-prefetch-images): Autoload it when compiling; (gnus-async-article-callback): Fix typo. 
$ 

Một khi bạn có một khuôn mẫu tốt đẹp cho bản tóm tắt một dòng của changesets, bạn có thể thêm một lệnh alias trong tập tin ~/.hgrc của bạn như thế này:

[alias] 
shortlog = log --template '{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n' 

với bí danh được cài đặt bây giờ bạn có thể gõ hg shortlog, hg short hoặc thậm chí hg shor (để nhận dạng duy nhất hg shortlog thay vì hg showconfig) và tất cả các tùy chọn lệnh 'nhật ký' thông thường. Ví dụ bây giờ ta có thể gõ:

$ hg short -r 100:103 
db9f8efcf689 | 1990-09-14 19:07:14 +0000 | jimb: *** empty log message *** 
5874bf15e07d | 1990-09-19 18:22:41 +0000 | gnulists: Initial revision 
797d304414fd | 1990-09-27 21:17:59 +0000 | mtr: Initial revision 
b2656b7830e4 | 1990-10-09 02:52:33 +0000 | rms: *** empty log message *** 
$ 

hoặc thậm chí những điều mà sử dụng tên thẻ (ví dụ từ kho phi hành đoàn lanh lợi riêng của mình):

[email protected]:/hg/mercurial/crew$ hg short -r 1.4 -r 1.5 -r 1.6 
31ec469f9b55 | 2009-11-16 21:25:36 +0100 | mg: i18n-ja: fixed bad indentation 
ff2704a8ded3 | 2010-03-05 17:24:52 -0600 | mpm: mq: drop -Q in favor of --mq only 
f786fc4b8764 | 2010-06-29 12:12:34 +0200 | mads: log: follow filenames through renames (issue647) 
[email protected]:/hg/mercurial/crew$ 
+0

Để biết thêm thông tin, hãy xem [hướng dẫn này] (http://hgbook.red-bean.com/read/customizing-the-output-of-mercurial.html), và cũng có' hg giúp mẫu'. – congusbongus

+0

Trong lệnh được đề cập đầu tiên, thay thế 'bằng' trong cửa sổ. – Peteter

2

Để có được mô tả trên một dòng ngay cả khi bình luận ban đầu có chứa nhiều đường kết hợp một splitlines và tham gia chức năng như dưới đây:

{join(splitlines(desc), ' ')} 

dưới đây là một ví dụ tôi đang sử dụng để trích xuất dữ liệu như CSV:

012.
hg log --template "{node};{date|shortdate};{branch};{author};{join(splitlines(desc), ' ')};{diffstat};files: {join(files, ', ')}\n" 
Các vấn đề liên quan