AnknSvn은 비주얼 스튜디오의 애드인으로 작동하는 서브버전(Subversion) 클라이언트다. 꽤 오래된 오픈 소스 프로젝트인데 불과 1년 전만 해도 버그가 많았다. 참기 힘들 정도여서 사용하지 않았다. 그러다가 서브버전 최신 릴리즈를 다운로드 받으러 갔다가 AnknSvn 프로젝트 링크를 보고 따라 들어갔다. 그런데 이게 웬일? 프로젝트 홈페이지가 COLLABNET에 연결되어 있었다. 이 회사로 말하자면 서브버전이 지금의 모습을 갖추는데 지대한 공헌을 한 회사가 아닌가? 도메인을 봐선 COLLABNET 사가 이 프로젝트를 지원하는 게 틀림 없었다.
일주일 간 AnknSvn을 Visual Studio 2008에 설치해 써 본 감상은 “매우 만족스럽다”. 새 소스코드는 Add해주고, 소스코드를 지우면 delete해 준다. 여기까진 이전에도 큰 문제 없었다. 그러나 소스코드의 경로를 바꿨을 때 기존 경로를 delete하고 새 경로를 Add하는 기능은 예전에 제대로 작동하지 않았던 것이다. Commit이나 Revert야 당연한 기능이겠지만, Pending Changes는 매우 단순하면서 유용한 기능이다. 여태까지 변경한 파일을 한눈에 볼 수 있으니 말이다.
설정하기
매뉴얼을 보면 TortoiseMerge.exe와 TortoiseDiff.exe를 연동하는 법이 나와 있다. 그러니 이에 대해선 언급하지 않고 WinMerge를 외부 Diff 도구로 쓰는 법만 적는다.
"C:\Program Files (x86)\WinMerge\WinMergeU.exe" -e -x -ub -dl "%bname" -dr "%yname" "%base" "%mine"
위의 코드를 [비주얼 스튜디오 – 도구 – 옵션 – Source Control – Subversion]에 적으면 된다.
문제점
안타깝게도 Visual Assist X과 AnknSvn이 충돌을 일으키는 기능이 하나 있다. 바로 커밋! 커밋할 때 Visual Assist X이 커밋 로그 창에 함수 목록을 보여 주려 하고 이 때문에 글자가 안 써 진다. Visual Assist를 끄던가, 메모장에 로그를 써서 커밋 로그 창에 붙여넣어야 한다.
이게 처음에는 아주 만족스러웠는데, 쓰다 보니 상당히 문제가 있었습니다. 제 경우는 기존 프로젝트를 임포트할 때 저장소에 폴더가 2중으로 생성되는 버그(라고 하긴 좀 그렇지만 오리지널 SVN과 달라서 혼동 유발)와 솔루션 파일이 프로젝트 폴더 내에 있으면 그 프로젝트 파일들만 임포트되는 버그, VS 자체를 엄청 느려지게 만드는 버그등을 피할 길이 없어서 결국은 지우게 되더군요. 🙁 해결하거나 우회하는 방법이 있으면 알려주시면 감사…
일단 저나 제가 속한 팀은 솔루션 파일을 프로젝트 폴더에 두지 않습니다. 그러니 그 문제는 잘 모르겠습니다.
VS가 느려지는 현상은 전혀 없습니다. Visual Assist와 Visual Studio 2008, 그리고 AkhnSVN 이렇게 세 개를 쓰는데 AkhnSVN 을 쓰기 전이나 그 후의 차이는 없습니다.
“저장소에 폴더가 2중으로 생성되는 버그”는 정확히 어떤 일인지 모르겠습니다.
혹시 예전 버전은 아니지요? 어쩌면 제 개발 환경이 AkhnSvn과 잘 맞는 건지도 모르겠네요. 빌드 자동화다 뭐다 해서 꾸준히 정리해왔거든요. 다른 건 몰라도 느려지는 현상은 심각한데, 혹시 Visual Assist 같은 외부 플러그인을 쓴다면 그것과 궁합이 안 맞는 건 아닐까요?
VS 빌드를 지원하는 오픈 소스 프로젝트들이 대개 솔루션 파일과 프로젝트 파일들을 한 폴더 밑으로 몰아두고 있습니다. 이런 프로젝트는 AnkhSVN에서 임포트하면 엉망이 되기 때문에 TortoiseSVN이나 svn.exe를 써야 합니다.
VS가 느려지는 현상은 Ankh를 지우자마자 원상복구가 되었기 때문에 Ankh가 원인인 것은 분명한데 처음 깔았을 때는 안그랬거든요. 저도 왜 그런지는 모르겠지만 일단 VS 초기 로드 시간이 원래보다 몇배 이상 오래 걸리고, 솔루션 익스플로러가 엄청 굼떠집니다.
폴더가 2중으로 생성되는 버그는 예를 들어 오리지널 SVN의 경우 foo라는 프로젝트를 trunk 폴더로 임포트하면 foo 폴더안의 내용이 trunk 밑에 바로 들어갑니다. 반면 Ankh는 trunk 밑에 foo를 만들고 그 안에 집어 넣습니다. 그래서 나중에 저장소 trunk를 로컬의 foo 폴더로 체크아웃하면 foo 밑에 또 foo가 있고 그 안에 실제 파일들이 들어있게 되는 거죠. 그렇다고 trunk/foo를 체크아웃하려니 이건 뭔가 아니다싶고…
제가 사용한 버전은 오늘자 콜랩넷에 떠있는 버전(2.0.5250) 그대로입니다. 이게 아직도 여름에 나온 버전 그대로 있네요. 같이 사용한 애드인은 CodeRush for C#, VMware Debugger, TestDriven.NET, 그 외 자잘한 애드인 몇가지 등입니다.
아, 그렇군요. VS가 느려지는 현상은 아무래도 CodeRush나 VMware Debugger와의 문제일지도 모르겠네요. 저도 TestDriven.NET을 집에서 쓰는데 별 문제 없었거든요.
TortoiseSvn과 AnkhSvn 중 하나만 골라쓰는 게 아니라 둘다 써야 하는 듯 합니다. 사실 TortoiseSvn이 기능 자체는 더 나으니까요. ^^
ankh관련해서 문서를 찾다가 좋은글이 있어 질문드려봅니다. 저는 이쪽은 첨이라..모르는부분이 많습니다.
이해부탁드립니다.우선 세팅은 완료하였고,
닷넷(c#으루) 솔루션파일및 프로젝트 만든후 추가하면 잘되는데요. 이상하게 파일들이 읽기전용으로 되어 버리네요. 그래서 폼을 수정후 저장하면 읽기전용이라는 메세지가 뜸니다. 아직 사용방법을 잘몰라서 그러는거 같은데.. 어떻게 해야 하는지요.
제가 겪어본 일이 아니라서 확실히 모르겠고, 단지 토론 포럼에 이와 똑같은 증상을 호소한 사람이 있네요.
http://ankhsvn.open.collab.net/ds/viewMessage.do?dsForumId=582&dsMessageId=122179
이 사람은 자기가 쓰던 다른 SVN 클라이언트와 AkhnSvn이 충돌을 일으켰다고 하네요.
아.. 감사드립니다.. 덕분에 해결되었습니다
파워빌더용 프러그인 프로그램인 PUSHOK플러그인도 같이 설치가 되어있었는데 삭제하니 잘되네요..
pushok도 사용을 해야 하는데..우선 더 알아봐야겠습니다..
닷넷 형상관리 VS2010 AnkhSVN with VisualSVN 팀파운데이션서버 없이 오픈소스로!
비주얼스튜디오 2010 프로페셔널 버전 이상에서 프로젝트 및 소스 파일의 형상관리를 할 경우 제일 기본은 역시 팀 파운데이션 서버다. 하지만 모든 VS2010 에디션에 TFS2010이 기본 제공되는 것이 아니기에, 가난한 우리는 무료 사용을 생각해야 한다. ASP.NET, C# 등을 섞어 쓸 때는 cs 파일을 dll로 병합하지 않고 웹서버에 그대로 놓고 수정하는 경우도 있지만 소스가 바뀔 때마다 IIS가 생성하는…
저는 몇 일 전부터 설치해서 아직까지는 잘 쓰고 있는데요.. 나름 많은 버그 속에서 지금까지 성장한 거 였군요. 1년 이상 지난 지금은 기능이 단순하긴 하지만 꽤 안정성이 향상된 것 같아요.
많이 좋아졌지요. 참고로 [도구 – Source Control – Subversion Environment]로 가서 ‘Directly add new files to subversion’ 을 선택하면 TortoiseSVN과 함께 쓰기 편합니다.