Translate

2024/05/23

Vim RCS

Vim RCS

리눅스의 가장 기본적인 에디터 Vim(vi improved)에서 리비전 컨트롤 시스템(Revision Control System, RCS)을 사용할 수 있도록 하는 플러긴이다. RCS는 버전 관리 시스템(version control system, VCS)의 초기 형태로, 처음에는 프로그램을 위해 개발되었으나 텍스트 문서나 소스코드 변경사항 관리에 주로 사용한다. 로컬 VCS와 비슷하다고 보면 된다.

$ ls
main.c main.c,v

main.c라는 소스코드 수정 시 자동으로 main.c,v라는 변경사항이 저장된 파일을 생성하여 언제든지 어떤 내용이 변경되었는지 확인이 가능하다. (단순히 확인 뿐만 아니라 이전 버전으로 되돌리는 기능 등을 제공한다.)



설치방법

rcs를 설치한 다음 홈디렉토리에서 vim 플러그인을 추가한다.

$ sudo apt install rcs
$ mkdir -p $HOME/.vim/plugin/
$ cd $HOME/.vim/plugin/
$ wget https://raw.githubusercontent.com/vim-scripts/rcsvers.vim/master/plugin/rcsvers.vim


설정

.vimrc파일에 아래 내용을 추가한다.
rcs의 기본값은 파일히스토리가 동일 디렉토리 안의 RCS라는 디렉토리 안에 저장되는 방식이지만, 설정을 통해 같은 위치에 저장되도록 변경하였다. (rvSaveDirectoryType옵션)

""======== RCS ========
let g:rvSaveIfPreviousRCSFileExists = 0
let g:rvSaveSuffixType=1
let g:rvSaveDirectoryType=2
let g:rvDirSeparator = '/'
"setting timezone
let $TZ = 'KST-9'
"show the log using the local timezone
let g:rvRlogOptions= '-zLT'

"re-map rcsvers.vim keys
map <F8> \rci
map <F9> \rlog
map <F5> \older
map <F6> \newer

vim에서 F6~F8키를 사용하여 변경사항을 관리할 수 있다.



활용

RCS를 사용하면 소스코드나 시스템 설정파일의 변경사항을 관리하기 쉽고 원복까지도 빠르게 가능하다. 하지만 문제는 명령어로 이전 버전을 저장하는 단계가 필요한데 vimrcs를 사용하면 저장시 자동으로 변경사항을 기록해 주기 때문에 자동 관리가 가능해 진다. (단점이라면 저장할 때 마다 모든 내용이 기록되기 때문에 파일 히스토리는 지저분해 질 수 있다.)
읽어보기) Sys Admin File Revision Control with RCS



비슷한 무른모

CS-RCS
RCS Browser
WinRCS : 상용 프로그램, 소스 제공했지만 최신화가 안되고 현재 링크 끊김.
WinRCS
RCS Integration for VSCode



결론

rcsvers.vim플러그인을 통해 Vim에서 RCS(Revision Control System)를 사용할 수 있습니다. RCS는 파일의 변경 내역을 추적하고 관리하는 기능을 제공합니다. 이를 활용하면 코드나 문서의 이전 버전을 확인하고 복원할 수 있습니다.
설치 과정에서는 먼저 rcs 패키지를 설치하고, 홈 디렉터리에 .vim/plugin 폴더를 만든 후 rcsvers.vim 파일을 다운로드합니다. 그 다음 .vimrc 파일에 플러그인 설정을 추가하면 됩니다.
rcsvers.vim플러그인을 사용하면 F8, F9 등의 단축키로 커밋, 로그 확인, 이전/이후 버전 이동 등의 기능을 쉽게 사용할 수 있습니다. 이를 통해 Vim에서도 버전 관리가 가능해집니다.
물론 RCS는 로컬 VCS이므로 협업 환경에서는 한계가 있습니다. 하지만 개인 프로젝트나 코드 연습 용도로는 rcsvers.vim플러그인을 활용하면 유용할 것입니다.



참고

버전 관리 시스템 - 나무위키
rcs.vim : Automatically handle RCS files SourceCode
RCS manual

댓글 없음:

댓글 쓰기

Template by Aliya H.