Windows의 cmd.exe 기본 인코딩은 cp949이며 이 상태에서 mercurial 명령어를 입력했을 경우,

diff는 한글이 깨지고, log는 한글이 제대로 나옴.

 

cmd.exe의 인코딩을 변경했을 경우엔 반대로,

diff는 한글이 제대로 나오는데 log는 한글이 깨져서 나옴.

 

저장소 파일이 전부 UTF-8이고, cmd.exe의 인코딩 세팅이 chcp 65001 명령어를 통해 UTF-8로 되어있다고 가정할 때,

log에서 한글이 제대로 나오게 하려면 --encoding 옵션을 통해 인코딩을 지정해주면 됨.

C:\Rep> hg log -l 10 --encoding=utf-8

 

혹은 C:\사용자\사용자이름\mercurial.ini 에서 alias를 지정하는 방법도 있음.

[alias]
logs = log --encoding=utf-8

mercurial.ini 파일에 alias로 logs 라는 명령어를 지정하고 아래처럼 실행하면 로그에 한글이 깨지지 않고 나옴.

C:\Rep> hg logs -l 10 -G

 

(cmd.exe의 기본 인코딩 세팅을 UTF-8로 지정하는 방법은 다음 페이지 참조: https://bloodguy.tistory.com/entry/Windows-cmdexe-UTF-8-%EC%84%A4%EC%A0%95%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-open-cmdexe-with-UTF-8?category=205993)

// 인코딩을 UTF-8로 변경 
C:\Rep> chcp 65001 

// 로그를 출력해보면 한글이 깨짐 
C:\Rep> hg log -l 3 
changeset: 331:e86b762bcc6d 
tag: tip 
user: ����� 
date: Tue Jul 02 16:55:12 2019 +0900 
summary: �α��� ��ư disabled ���׼��� 

changeset: 330:53c5d7cd9429 
user: ����� 
date: Thu Jun 20 13:46:12 2019 +0900 
summary: ���ǹ� ���׼��� 

changeset: 329:65c14787efe0 
user: ����� 
date: Thu Jun 20 10:56:08 2019 +0900 
summary: ���� Ÿ�̹� ���� 

// 인코딩을 UTF-8로 지정하면 안깨짐 
C:\Rep> hg log -l 3 --encoding=utf8 
changeset: 331:e86b762bcc6d 
tag: tip 
user: 백충덕 
date: Tue Jul 02 16:55:12 2019 +0900 
summary: 로그인 버튼 disabled 버그수정 

changeset: 330:53c5d7cd9429 
user: 백충덕 
date: Thu Jun 20 13:46:12 2019 +0900 
summary: 조건문 버그수정 

changeset: 329:65c14787efe0 
user: 백충덕 
date: Thu Jun 20 10:56:08 2019 +0900 
summary: 변경 타이밍 조절
Posted by bloodguy
,