메뉴 닫기

멜드(Meld)를 이용한 디렉토리 비교

멜드 로고

최근 멜드(meld)를 이용하여 파일을 비교하는 방법에 대한 아름다운 글(!?)을 작성했다는 자부심으로 멍청히 있었는데, 멜드를 처음 사용해보는 사람에게는 디렉토리 비교가 어려울 수도 있겠다는 생각이 들어 멜드를 이용하여 디렉토리를 비교하는 방법에 대해서 추가적으로 설명하고자 한다.

멜드의 설치와 환경설정, 그리고 파일을 비교하는 방법에 대한 내용은 이전 글(멜드(Meld)를 이용한 파일 비교)을 참고하여 주기를 바란다. 뿐마 아니라 검색을 통해 이 글을 먼저 접한 사람도 이전에 작성한 글을 먼저 읽고 난 뒤에 이 글을 읽는 것이 멜드를 이해하는 것에 조금더 도움이 될 것이다.

 

디렉토리 비교

먼저 디렉토리를 비교하기 위해서는 멜드를 실행해야 한다. 멜드에서 제공되는 3가지의 비교 기능 중에서 가운데의 [Directory comparison] 버튼을 클릭한다. 

시작

 

디렉토리 비교도 파일 비교와 마찬가지로 비교 대상을 선택해야 한다. 각 선택 항목에 비교 대상 디렉토리를 선택하고 [Compare] 버튼을 클릭한다. 만약, 비교해야 하는 대상 디렉토리가 2개 이상인 경우에는 [3-way comparison]에 체크하여 3번째 디렉토리를 선택하도록 한다.

디렉토리 선택

 

디렉토리 비교 화면은 비교 대상 디렉토리에 포함된 모든 서브 디렉토리와 파일을 동시에 비교하여 각각의 다른 부분을 시각적으로 표현한다. 그러므로 비교 대상 디렉토리에 너무 많은 파일이 들어 있는 경우에는 다소 느려 질 수 있겠으나, 필자가 실무에서 사용해본 경험상 결코 느리지 않았다. 실 예로 두 서버를 네트워크로 연결하여 /etc 디렉토리를 통체로 비교해도 몇 초 걸리지 않고 비교 결과를 확인 할 수 있었다.

만약, 비교 대상 디렉토리에 파일이나 서브 디렉토리가 많아서 스크롤이 생기는 경우에는 파일 비교와 마찬가지로 서로 다른 부분을 한 눈에 파악 할 수 있도록 좌/우측 스크롤 영역에 일치되지 않는 부분을 색상으로 표시해주고 있다.

또한, 캡쳐 이미지에서 보는 바와 같이 표시되는 색상만으로도 변경된 부분이 수정(파란색)된 것인지 삭제(녹색)된 것인지 바로 알 수 있다. 이러한 색상 설정은 파일 비교에서도 동일하게 적용된다. 그러나, 아쉽게도 색상에 대한 설정은 자유롭게 변경이 불가능하다.

디렉토리 비교

 

디렉토리 비교는 파일 비교와 달리 적용 버튼([←], [→])이 존재하지 않는다. 그렇다고 변경된 부분을 상대측에 적용 할 수 있는 기능이 없는 것은 아니다. 적용을 원하는 대상에서 마우스 우측 버튼을 클릭하여 호출되는 콘텍스트 메뉴(Context menu)에서 [→ Copy right]나 [← Copy Left]를 실행 할 수 있다.

디렉토리나 파일을 너무 쉽게 상대측에 적용하면 문제가 될 수 있으니, 프로그램의 안정성을 높이고자 하는 개발자의 의지가 작동하여 적용 버튼을 제거한 것이 아닐까 하는 생각을 해본다.

적용 방법

 

참고로, 멜드를 비롯하여 윈머지(WinMerge)등의 비교 프로그램을 오래 사용하다보면 적용 버튼을 클릭하는 것 보다 단축키를 이용하는 것이 더욱 편리하고 빠르다. 필자 역시 윈도우즈(Windows) 환경에서 오래동안 윈머지를 사용하다가 리눅스 기반으로 이관한하여 멜드를 처음 사용 할 때도 적용 버튼을 이용해본 적이 단 한번도 없다.

하지만, 멜드는 윈머지보다 단축키가 조금은 불편하다. 윈머지는 커서의 포커스가 어디에 있든지 상관없이 우측으로의 적용은 [ALT + Right] 이지만, 멜드는 포커스가 어디에 있느냐에 따라 단축키가 달라지거나 혹은 아예 없는 경우도 있다. 아마도 이에 대한 부분은 멜드의 사용자가 많아지면 자연스럽게 해결 될 것으로 보고 있다.

커서가 좌측일때 단축키

커서가 우측일때 단축키

 

비교 결과에서 수정된 파일을 더블 클릭하면 디렉토리 비교 탭 옆에 파일 비교 탭이 하나 추가되면서 변경된 파일을 바로 비교해 볼 수 있다. 물론, 삭제된 파일도 – 심지어 디렉토리도 – 더블 클릭하면 비교 할 수 있다.

디렉토리 비교에서 파일 비교로 변경

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다