hg log -G 옵션을 사용하면 콘솔에서도 GUI 프로그램처럼 리비전 그래프를 볼 수 있음.
원래는 graphlog 라는 extension이었으며 hg glog 라는 명령어로 동작했으나,
Mercurial 2.3 부터 기본 탑재되어 hg log -G 옵션으로 동작함.
참고: http://mercurial.selenic.com/wiki/GraphlogExtension
그냥 전체 그래프를 5개만 출력해보는 예제.
@ 으로 표시되는 노드가 working directory의 parent임.
// 그냥 전체 그래프 출력 5개만
C:\rep> hg log -G -l 5
@ changeset: 46606:25a0544568b8
| branch: default
| parent: 46600:e1340b4945ae
| parent: 46605:264ba2e62709
| user: lu bu feng xian
| date: Fri Aug 01 09:57:25 2014 +0900
| summary: Merge with X
|
o changeset: 46600:e1340b4945ae
|\ branch: default
| | parent: 46531:43f93c470105
| | parent: 46599:1d5415dbc639
| | user: lu bu feng xian
| | date: Thu Jul 31 14:38:11 2014 +0900
| | summary: Merge with Y
| |
| | @ changeset: 46585:3084bae78a21
| | | branch: task-661
| | | parent: 46563:bd94531ebaa9
| | | user: cdbaek
| | | date: Tue Aug 05 11:56:41 2014 +0900
| | | summary: 나머지 작업
| | |
| | o changeset: 46563:bd94531ebaa9
| | | branch: task-661
| | | user: cdbaek
| | | date: Mon Aug 04 11:41:08 2014 +0900
| | | summary: close branch
| | |
| | o changeset: 46562:fb02058aaef1
| | | branch: task-661
| | | user: cdbaek
| | | date: Mon Aug 04 11:40:40 2014 +0900
| | | summary: 6558 처리
| | |
일반적인 log의 옵션들이 다 먹음.
아래는 현재 브랜치의 그래프 5개 출력. merge가 2회 일어났음을 알 수 있음.
C:\rep> hg log -G -b . -l 5
@ changeset: 46616:30241b35069a
|\ branch: task-664
| | tag: tip
| | parent: 46610:bdd75077a06d
| | parent: 46615:c8defd6f3f22
| | user: cdbaek
| | date: Wed Aug 06 14:50:24 2014 +0900
| | summary: Merge
| |
| o changeset: 46611:e48cc03d2a0d
| | branch: task-664
| | parent: 46609:8bb5cba78001
| | user: lu bu feng xian
| | date: Wed Aug 06 11:25:04 2014 +0900
| | summary: 8017 처리
| |
o | changeset: 46610:bdd75077a06d
|/ branch: task-664
| user: cdbaek
| date: Wed Aug 06 14:47:46 2014 +0900
| summary: 8010 처리
|
o changeset: 46609:8bb5cba78001
|\ branch: task-664
| | parent: 46607:40b4f5f62d2c
| | parent: 46608:7ad518e728e5
| | user: cdbaek
| | date: Wed Aug 06 11:03:54 2014 +0900
| | summary: Merge
| |
o | changeset: 46607:40b4f5f62d2c
|/ branch: task-664
| parent: 46591:016a4b24b63f
| user: cdbaek
| date: Wed Aug 06 11:02:47 2014 +0900
| summary: 이상한 짓을 했다..
|
style 지정으로 좀 더 간략한 모양새로 보는게 더 좋음.
C:\rep> hg log -G -b . -l 5 --style compact
@ 46616[tip]:46610,46615 30241b35069a 2014-08-06 14:50 +0900 cdbaek
|\ Merge
| |
| o 46611:46609 e48cc03d2a0d 2014-08-06 11:25 +0900 lu bu feng xian
| | 8017 처리
| |
o | 46610 bdd75077a06d 2014-08-06 14:47 +0900 cdbaek
|/ 8010 처리
|
o 46609:46607,46608 8bb5cba78001 2014-08-06 11:03 +0900 cdbaek
|\ Merge
| |
o | 46607:46591 40b4f5f62d2c 2014-08-06 11:02 +0900 cdbaek
|/ 이상한 짓을 했다..
|
template 옵션을 이용하여 나만의 출력형식 지정가능.
C:\rep> hg log -G -b . -l 5 --template "{rev}:[{branch}] {author|user}: \"{desc}\"\n"
@ 46616:[task-664] cdbaek: "Merge"
|\
| o 46611:[task-664] lu bu feng xian: "8017 처리"
| |
o | 46610:[task-664] cdbaek: "8101 처리"
|/
o 46609:[task-664] cdbaek: "Merge"
|\
| |
| o 46607:[task-664] cdbaek: "이상한 짓을 했다.."
|/
아예 alias 를 하나 만들어서 쓰는 것도 편함.
아래는 hgrc 파일에 glog 라는 alias를 지정.
콘솔에서 hg glog 라고 입력하면 graphlog 형식의 로그가 지정한 template 모양대로 20개 출력됨.
[alias]
glog = log -G -l 20 --template "{rev}:[{branch}] {author|user}: \"{desc}\"\n"
'버전관리' 카테고리의 다른 글
[Mercurial] shelve된 데이터 삭제 (delete, shelf) (0) | 2014.08.13 |
---|---|
[Mercurial] 콘솔 출력 꾸미기 (style, template, color) (0) | 2014.08.07 |
[Mercurial] commit 덮어쓰기 (hg commit --amend) (0) | 2014.08.05 |
[Mercurial] hg color extension (콘솔출력에 색깔 입히기) (0) | 2014.08.05 |
[Mercurial] hg bisect, hg annotate 를 이용한 범인, 범행기록 색출법 (0) | 2014.08.01 |