mr 사용기
mr은 저장소 관리 시스템입니다.
여러 오픈 소스 프로젝트에 참여하고 있거나, 아니면 큰 오픈 소스 프로젝트에 참여하고 있는 경우, 여러 개의 소스 저장소를 같이 관리해야 할 경우가 있습니다.
예를 들어 Mono 프로젝트의 SVN 버전을 컴파일하면서 쓸만한 개발 환경을 갖추려면 적어도 세 개의 저장소를 체크아웃 해야 합니다. (순서대로 런타임, 컴파일러, 디버거입니다.)
svn co <a href="//anonsvn.mono-project.com/source/trunk/mono" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/mono</a> mono svn co <a href="//anonsvn.mono-project.com/source/trunk/mcs" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/mcs</a> mcs svn co <a href="//anonsvn.mono-project.com/source/trunk/debugger" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/debugger</a> debugger
이 세 저장소를 홈 디렉토리 아래 $HOME/mono에 체크아웃 했다고 하면, 다음과 같은 명령을 주기적으로 반복하게 됩니다. (up이 아니라 st, diff 다 마찬가지입니다.)
cd mono svn up mono svn up mcs svn up debugger
제가 원하는 것은 Mono를 업데이트 하는 것이지 Mono의 런타임, 컴파일러, 디버거를 따로 업데이트하는 (상태를 보는, 차이점을 보는) 것이 아닙니다. mr은 위 작업을
cd mono mr up
으로 할 수 있게 해 줍니다.
mr은 CVS, SVN, git, hg, bzr, darcs 등을 모두 지원합니다. 이것은 mr 명령을 쓰면 저장소 상태를 보는 명령이 SVN에서는 status이고 darcs에서는 whatsnew라는 식의 차이점을 기억하지 않아도 된다는 뜻입니다.
mr은 .mrconfig 라는 파일로 설정합니다. 다음과 같이 되어 있습니다.
[mono/mono] checkout = svn co <a href="//anonsvn.mono-project.com/source/trunk/mono" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/mono</a> mono [mono/mcs] checkout = svn co <a href="//anonsvn.mono-project.com/source/trunk/mcs" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/mcs</a> mcs [mono/debugger] checkout = svn co <a href="//anonsvn.mono-project.com/source/trunk/debugger" rel="nofollow">svn://anonsvn.mono-project.com/source/trunk/debugger</a> debugger
mr은 버전 관리 시스템들에 대해 알고 있기 때문에, checkout만 써 주면 나머지 명령들은 자동으로 자기가 생성합니다. 그러나 예를 들어 어떤 프로젝트가 SVN의 기본값인 unified diff 대신 context diff로 패치를 받는다면, 그에 필요한 diff 명령을 .mrconfig의 해당 저장소란에 넣어주면 그 명령이 자동으로 생성된 명령보다 우선해서 실행됩니다.
그러면 .mrconfig 파일을 손으로 만들어 주어야 하느냐? 아닙니다.
cd mono mr register mono mr register mcs mr register debugger
위와 같이 mr register 명령을 쓰면 mr이 CVS, .svn, .git, .hg, .bzr, _darcs 디렉토리에서 메타데이타를 읽어서 알아서 .mrconfig 파일에 추가해 줍니다.
데비안 개발자인 Joey Hess가 만들었고, 물론 데비안 패키지가 있습니다.
사소한 것처럼 보이지만 mr을 쓴 이후로 오픈 소스 생활이 많이 편리해졌습니다. 다른 분들께도 도움이 되었으면 좋겠습니다.
댓글
좋은 툴
좋은 툴 소개해주셔서 감사합니다 ^^
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
좋은 툴
좋은 툴 감사합니다.
--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu
-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
DEBIAN TESTING, KDE...
debpolaris.blogspot.kr
댓글 달기