본문 바로가기

도구의발견

cvs diff 출력 형식 보기

cvs의 diff 명령을 사용하면 두 버전간의 차이를 비교 할 수 있다. 하지만 텍스트 기반으로 보다 보니 오랜만에 cvs diff 를 보면 복잡하기만 할 뿐 뭐가 뭔소린지 하나도 모르는 경우가 종종 있다. 그래서 오늘은 그 내용들을 간단하게 정리 하고자 한다.

'a' Append
Index: SomeFile.c
===================================================================
RCS file: /SomeWhere/SomeFile.cc,v
retrieving revision 1.143
diff -r1.143 SomeFile.cc
340a341
>         close(sockfd);
위의 예제에서 파랗게 되어 있는 '340a341' 부분을 보자. 가운데 있는 'a'라는 알파벳이 의미하는 것이 과연 무엇인가 싶으신 분들이 있을 것이다. 눈치 빠른 사람들은 이미 알겠지만 'a'는 append, 추가를 의미한다. 한글로 해석하자면 'SomeFile.c 의 1.143버젼에 340라인 아래, 341라인에 한줄이 추가 추가 되었고, 그 내용은 close(sockfd); 다' 정도로 해석 할 수 있다. 참고로 '>'라고 되어 있는 것은 추가 된 라인. '<'은 이전 버젼의 라인이다.

'c' Change
Index: SomeFile.h
===================================================================
RCS file: /SomeWhere/SomeFile.h,v
retrieving revision 1.1
diff -r1.1 SomeFile.h.h
48c48,49
<     virtual MacroExpandPeerGroup::~MacroExpandPeerGroup();
---
> //    virtual MacroExpandPeerGroup::~MacroExpandPeerGroup();
>     virtual ~MacroExpandPeerGroup();
역시 파랗게 되어 있는 부분을 주목하자. 이번에는 알파벳 'c'가 있다. 이번에도 눈치 빠르신 분들은 다 알 것이다. 'c'는 change의 앞글자다. 48 라인의 내용이 48, 49 라인에 걸쳐 변경 되었음을 알려준다.

'd' Delete
Index: FileHandler.cpp
===================================================================
RCS file: /SomeWhere/FileHandler.cpp,v
retrieving revision 1.1
diff -r1.1 FileHandler.cpp
11,12d10
< ExternalDataHandler::RESULT update(const Key_T& key, const Value_T& value);
< ExternalDataHandler::RESULT del(const Key_T& key);
'd'는 delete의 약자다. 11, 12라인의 내용이 지워 졌음을 알려 준다. 이번에 주목 할 것은 이전 버젼의 내용에 대한 '<' 는 있지만, 현재 버전의 내용을 나타내는 '>'는 없다는 것이다. 지워 졌으니 당연한 것인가?

이상으로 cvs diff에 대한 간단한 정리를 마치겠다.

관련 글 보기 :
 * cvs 파일 상태 기호
 * cvs 사용법
 * CVS Command Line Reference
유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!