subversion 으로 작업하다가
find .
요렇게 리스트를 볼라면 .svn 디렉토리가 귀찮을 때가 있다. 그렇다고,
find . -name .svn -prune -o -print
이런 아름다운 명령을 쓸 수도 있지만,
svn ls -R
로 버전관리 대상들만 정확히 하이킥 해주자.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

Subversion으로 개발하는 개발팀이 늘어나고 있습니다. 기존의 CVS를 쓰던 사람들에게는 같은 명령어로 이관하고 있고, 상용제품만큼 쓸만한 기능들은 모두 제공되기 때문입니다. 특히 MS Windows를 사용하는 사람들은 그 클라이언트 프로그램으로 TortoiseSVN을 사용합니다.

TortoiseSVN은 subversion의 client 라이브러리를 응용하여 Shell extension으로 만들어지는 것이며, 큰 버전과 중간 버전을 subversion과 일치시켜가며 릴리즈를 하고 있습니다. 그리고 매일 밤 빌드를 통하여 현재 들어 있는 소스 트리의 스냅샷을 만들어 내기 때문에 버그가 수집되어 고쳐지는 대로 중간 릴리즈를 매일 받아 볼 수 있습니다.

http://nightlybuilds.tortoisesvn.net/latest/win32/

또한, TortoiseSVN은 다국어 기반이 잘되어 있어서, 많은 번역가들이 자국어로 번역을 하고 있습니다. TortoiseSVN을 설치하면 기본으로 영문판이 설치되며 랭귀지 팩을 설치하면 영어와 추가된 팩 중 선택할 수 있게 됩니다. 물론 여러개의 언어를 설치하는 것도 가능합니다.

여러분, 한글 팩을 설치해서 사용해주십시오. 그리고, 번역상의 오류가 있거나 전체적인 느낌이 좋지 않은 번역이 있으면 말씀해주십시오. 현재 tdkim 씨가 저를 괴롭히다시피(?) 애정을 가지고 봐주시고 계십니다. 많은 분들이 사용하고 계시지만, 피드백 할만한 곳이 없어서 인지 답변이 없으시더군요. 저에게 메일을 주셔도 좋고, 본 글에 답변을 주셔도 좋습니다.

hojin.choi@gmail.com 으로 주시면 좋겠습니다.

사용하고 계시는 여러분 모두 감사합니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. 큰돌 2006.08.02 20:26 신고

    감사합니다. 덕분에 한글 버전을 잘 쓰고 있습니다. TortoiseSVN으로 개인 저장소를 만들어서 사용 중인데 이전 로그를 바꾸려고 하니 pre-revprop-change hook에 관련된 에러가 나오고 바꿀 수가 없네요. 어떻게 하면 되는지 혹시 알려주실 수 있을까요?

    • 최호진 2006.08.03 11:44 신고

      hooks/post-revprop-change 파일에서 오류가 나는 것 같습니다. 그 파일 내부에 있는 행들을 모두 주석 처리해주세요.

  2. 큰돌 2006.08.03 12:07 신고

    문제는요... 저장소가 있는 pc가 윈도 2003이라 셀 스크립트를 사용할 수가 없네요.

    • 최호진 2006.08.03 14:47 신고

      그런데.. hooks/post-revprop-change 파일이 있습니까? 일부러 hooks/post-revprop-change.tmpl 파일을 바꿔놓지 않으면 없는데요. 있다면 일단 이름을 바꿔서 없는 것 처럼 해놓고 다시 시도 보세요

  3. 큰돌 2006.08.09 21:59 신고

    hooks/post-revprop-change 파일은 없습니다. .tmpl만 있구요.

    • 최호진 2006.08.10 15:45 신고

      테스트 안하고 답변하니.. 제대로된 답변이 안나오는군요..
      테스트 해보니..
      pre-revprop-change.bat 라는 비어 있는 파일을 만들어 주세요. .bat 로 되어야하는군요. ;)

  4. 큰돌 2006.08.11 11:52 신고

    감사합니다. 인터넷에서 구한 bat 파일로도 잘 안 됐는데, 그냥 비어있는 배치 파일로 하니 되네요. ^^

  5. 감사 2007.02.16 02:07 신고

    한글판 정말 잘 사용하고있습니다.
    감사의 마음 전합니다.
    새해 복도 많이 받으시구요~

  6. 부비 2007.04.16 17:24 신고

    아직 사용해보지는 않았지만.. 호기심에.. 링크를 따라갔습니다..
    'http://mapcar.org/tsvn-snapshots/latest/win32/'
    의 url 이 변경되었습니다.
    http://nightlybuilds.tortoisesvn.net/latest/win32/

  7. dalmagi 2009.02.08 19:29 신고

    안냐세요
    한글팩을 설치했는데 적용이 안됩니다.
    언어선택에서 한국어가 없는데
    운영체제는 윈도2000 이고
    특이사항으로는 시스템드라이브가 E: 입니다.
    tortoisesvn 사이트에도 윈도2000에 관련한 버그레포팅은 없는데 왜 그럴까요

  8. dalmagi 2009.02.08 19:33 신고

    프로그램 폴더를 보면 \Language\ko 만 생성되어 있습니다. 안에 mo 파일 하나 있구요. 원래 이런건지 뭔진 모르겠네요.
    언어팩 1.5.7.xx 과 1.5.99.15204, 15904 세개다 안되네요.

다음과 같은 시나리오를 살펴 보자.

"소스 디렉토리 A 의 a.c의 내용을 복사하여 소스 디렉토리 B의 b.c 로 사용해야할 일이 생겼다. 제품이 늘어 나고 있거든!"

(물론 코드는 되도록 복사해서 사용해서는 안되지만 우리는 그런 완벽한 세상에서 살지 않으므로...)

이 경우.

$ pwd
/work/project_x/src/agent
$ cp a.c ../log
$ cd ../log
$ svn add a.c
$ svn commit
$ svn log a.c
위와 같이 하면, 중대한 것을 잃게 된다. a.c 의 지금까지의 변경기록이다. 다음과 같이 해야 정석이다.

$ pwd
/work/project_x/src/agent
$ svn cp a.c ../log
$ cd ../log
$ svn commit
$ svn log a.c


위에 연출된 두 명령의 마지막 svn log는 다르기 마련이며, 전자는 꽤 겸손한 로그가 출력된다.

마찬가지로 이름을 바꿔야할 경우에도 command line의 mv를 사용하는 것이 아니라 svn mv 를 사용해야 변경기록을 모두 유지 할 수 있게 된다.

만약 svn log를 사용하여 복사한 다음 수정된 기록만 보고 싶을 때는

svn log --stop-on-copy a.c

라는 명령으로 보면 된다.

한 줄 한 줄 커밋된 과정을 소중하게 생각하는 것이 변경 기록 관리의 기본자세이다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
최근들어 사내 Subversion 커밋요건이 강화되었다.
외부에 공개되어도 괜찮을 것이라 생각하여 간단히 기술하고 그 생각을 적어보고자 한다.

2월 21일 공지

1단계는 SVN 로그 입력이 전혀 안되어 있을 경우 Commit을 불허 합니다. 즉, 로그 입력을 안하면, Commit이 실패하게 됩니다.

2단계는 SVN 로그 입력시 리뷰자가 없을시에 Commit을 불허합니다. 리뷰는 생활화하셔야 됩니다. 단순히 보여주기 위한 리뷰가 되어서는 안됩니다. 따라서 소스 코드 수정시 리뷰가 반드시 진행되어야 하고, 그 이후에 Commit이 이루어 져야 합니다. 따라서 리뷰자가 로그상에 없다면 Commit을 실패하게 됩니다.

[실행 파일명][실행 파일의 버전][개발자 성명][BT:버그 번호]
[RV:Review 참석자][Review 날짜]


3월 14일 공지

일시 : 2006-03-16(목) 12:00

내용 : SVN 서버상의 BugTrack 번호 입력 여부 필터링

제한 사항 : 입력이 안되었을 시 해당 내용은 로그로 기록되고, 매달 1일 오전 1시를 기준으로 유닛장에게 메일을 이용하여 남겨진 로그 파일을 전송.


워낙 개발자들이 말을 안듣다보니 svn의 commit 훅을 이용하여 이러한 제한을 가하게 되는 것인데, 이것은 비단 말을 안듣기 때문에 이러하는 것이 아니라 습관이 안들어서 습관을 기르기 위한 것이라고 생각하면된다.

어쩌면 늦은 감이 있지만, 정말 잘하였다라고 생각한다.
(조 책임님, 화이팅입니다.)

컴파일러에게는 철저히 오류를 고쳐주듯이 svn에게도 철저히 지키면 된다.
이것이 개인이 일하는 것에서 팀이 일하는 것으로 바꿔가는 것이다. 조직력은 다른데서 나오는 것이 아니라 같은 방법으로 계속 훈련하여 개발 기간을 단축하고 조직을 효율적으로 운영하는데 있다. 그것은 인간적인 훈련보다는 기계화되고 시스템화된 방법으로 훈련하는 것이 가장 빠르다고 생각한다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. wookay 2006.03.16 10:37 신고

    리뷰를 하면서 대화를 많이 할 수 있을거 같아 좋을것 같습니다.^^ 저두 커밋하고 찜찜한게 많더라구요.

    • 주인 2006.03.16 10:50 신고

      습관을 바꾸는 것은 괴로운 것이죠.
      특히나 팀의 습관을 바꾸는 것은 더욱 힘듭니다.
      이 사람들이 계속 같이 있는 것이라는 보장이 없으므로 그렇죠..

+ Recent posts