2009.08.12 09:59

Ankh 버젼업


요즘들어 아주 유용하게 사용하고 있는 Ankh... 컬럽넷으로 옮기고 나서 프로젝트가 활기차진 듯...

Merge 문제 수정을 했다고는 하는데 winMerge 만 사용해오던터라...뭐 이래 저래 크게 관심이 가는 부분은
VS2010 Beta1 를 지원 부분이 군요...앞으로도 유용하게 잘 사용될 듯 싶습니다...참여하시는 많은 분들에게 고마움을 느끼며 감사를 전합니다.
Ankh-2.1.6941
Changes:

  • Subversion 1.6 support
  • Annotate(blame) now shows log messages
  • Enable relocating when switching can't work
  • New feature to auto-add newly created files
  • Multiple working copy explorer and repository explorer fixes
  • Fixed multiple merge wizard problems
  • Files that are/have been marked as binary can now be annotated
  • Better support for customizing AnkhSVN context menus
  • Visual Studio 2010 beta1 support
  • Fixed svn export command
  • Better detection of edited (not yet saved) project files


저작자 표시
신고

'뭐하는데 > Dot 4(넷)' 카테고리의 다른 글

C# 관련 좋은 글  (0) 2009.09.23
Visual studio 2010 에서는 어떻게 바뀔까  (0) 2009.08.25
Ankh 버젼업  (0) 2009.08.12
닷넷을 위한 API Code Pack  (0) 2009.08.10
ASP.NET MVC Version 2  (0) 2009.08.03
Chart 어떻게 그리세요  (0) 2009.07.22
Trackback 0 Comment 0
2009.06.27 16:14

visual studio 와 형상관리, 운영 배포에 대한 모델...(1)


소스 세이프를 벗어나 보자.
소스 제어 형상관리라는 단어들이 이제는 그리 어색하지 않으리라 생각한다. 여러명이 개발을 하게되던, 혼자 개발을하게되던 원본 소스에 대한 유지와 관리를 위해서는 제공해주는 툴이 필요하다는 것은 개발하는 누구에게나 공감하는 일이라 생각한다. 컴파일이 필요없는 스크립트 언어든 참조와 빌드가 복잡하고 얽혀 있는 프로젝트든 원본을 관리하고 특정 시점 이전으로 소스를 되돌리는(이하 롤백)방법에 대한 필요는 누구나 공감하라고 강요해본다...뭐 두세명이 작업하다 덮어쓰기 몇번 당하면 급 공감하게되는 일이니 아직 공감 못하는 분들은 없어진 소스, 누군가에게 덮어써져 없어진 자신의 코드가 나올때까지... 혹은 열심히 작업하던 하드가 망가질 때까지...공감하지 말고 살길 바란다 다만 개인적인 입장으로는 조그마한 오류나 실패로 즉 복구 비용이 적은 시점에서 필요를 느끼게 되길 바란다.

소스 제어를 위한 여러가지 방법이 있지만, 일반적으로 visual studio 를 사용하게 되면 형상관리 툴은 VSS(소스세이프 이하  VSS)를 사용하게 된다. (개인적으로 visual studio 를 이용하며 사용했던 형상관리 툴은 VSS, SVN, ClearCase 가 있지만, 이번에 SVN 을 중심으로...) VSS 의 경우 체크인, 체크아웃을 통해서  특정 사용자의 소스 수정을 막아 주거나 VSS2005 이상에서는 자동 Merge 기능을 통해 수정본들을 통합해 주기도 하는 기본적인 기능을 제공한다. 아마도 개인이나 4명 이하의 프로젝트에서는 서로간의 협의를 바탕으로 사용에 문제가 없을 것으로 생각이 된다. 다만, 프로젝트 자체가 복잡해 지거나 더 많은 사람들이 사용하게될 경우 운영상의 많은 어려움이 발생하게 된다. 
첫번째 문제로 파일 단위로 관리되기 때문에 "최신버젼 받기"를 통하지 않은 경우 현재 소스의 상태를 알기 어렵다. 더구나 "최신버젼 받기"가 강제 되는 것이 아니라 더욱 더 그렇다. 내가 특정 소스를 고치려고 할때 내 로컬의 소스가 서버에서 관리되는 소스로 치환된다. 파일 단위기 때문에 그 파일과 같이 변경된 모든 것이 치환되지 않고 고치려 했던 그 파일만 치환된다. 즉 참조하고 있던 다른 코드에서 변경된 사항이 받아지지가 않는다. 더구나 참조하고 있는 코드가 아직 체크아웃 상태라면 받을 수도 없다. "**** 파일 체크인 좀 부탁드려요....!!!!!" 사무실에서 소리 쳐야 한다. VSS 클라이언트를 열어서 누가 잡고 있는지 확인하고 정중히 메시지를 보낼 수도 있겠지만, 이 무슨 짓인가....ㅋㅋㅋㅋ 더구나 개별 파일로는 롤백이 가능하지만, 그 영향받은 파일에 대한 롤백은 어렵다. 어제 오전과 같은 상태로 만드릭 어렵다는 이야기다.
두번째 클라언트 시간을 기준으로 최신버젼을 결정한다. 이 클라이언트 시간(로컬 컴퓨터의 시간)으로 인해 다양한 문제가 발생한다. 누군가 자신의 컴퓨터의 시간을 잘못 설정하고 최신버젼 받기 혹은 체크아웃, 체크인을 한 경우 골치아픈 문제가 발생한다. 고쳐도 고쳐도 고쳐지지 않는...
세째로 Export 기능이 없다. Export 의 경우 꼭 필요한 기능이다. 내가 만든 프로그램에 소스세이프에서 사용할 파일을 추가할 필요는 없는 것이다. 그리고 폴더째 카피된 것이 기존 VSS 정보를 물고 있어서 원치 않는 체크아웃, 체크인이 일어날 수 있으며, 심한 경우 작업 디렉토리가 침범 당할 소지도 가지고 있다.  디렉토리 별로 소스세이프에 관련된 파일을 지우는게 누구에게도 유쾌한 일일 수 없다고 생각한다. 축출(Export) 가 없는 것처럼 특정 파일에 대한 소스 제어 제외 기능이 없다. 디렉토리에서 보이는 모든 것은 visual studio 의 솔루션 탐색기에 나타나게 되고 체크인을 강요한다. 설정 파일들의 경우 개발자 개인별로 다른 경우가 발생하게되는데 그런 통제가 어렵다.
네번째 Auto Merge(자동병합)의 약점. 자동 병합은 겉으로는 쉽고 편리해 보이나 막상 적용하고 나면 많은 문제를 불러 일으키는 부분이다. 단지 VSS 만 자동 병합의 문제점을 안고 있다는 이야기가 아니다. 어쨌거나 VSS 자동 병합에 대한 인식 부족 기능 부족의 이유로 인해 체크인, 체크아웃 모델을 이용하다 보면 개발자가 많아지는 경우 이래 저래 귀찮은 문제들이 많이 발생한다. 체크인 체크아웃 모델을 사용하게된다면  Visual Studio 에서 자동 체크아웃에 대한 옵션의 기본값이 무조건 체크아웃으로 되어있어 원치 않게 파일을 잠그는(다른사람이 수정 못하게 하는) 경우도 발생하고 그 옵션 수정하는 것도 귀찮아서 서버쪽에서 자동 병합을 허용하면 애매한 오류를 발생시키기도 한다. 옵션 변경에 대한 문제도 개발자마다 자신의 개성이 있는 편이라 많은 문제를 가지게 한다.
이래 저래  VSS 운영 배포 상에 여러가지 주의사항이 발생하기 마련이고 주의 사항이 많은 만큼 관리가 어렵다...

소스 세이프에 대안은
VSS 를 않쓴다면 형상관리는 어떻게 해야 하나?
내가 경험해본 형상관리툴은 VSS, SVN, ClearCase 이 세가지다. 그 외 많은 것들이 있겠지만, 이 세가지가 일반적이란 생각이 든다. VSS 의 경우 visual studio 를 사용해본 사람은 누구나 아는 것이고, ClearCase(참고 : http://www-01.ibm.com/software/kr/rational/products/ccase.html)  의 경우도 은행권이나 몇몇 대기업 관련 프로젝트 경험이 있다면 (소스세이프처럼 사용하는 CleareCase 경험 포함) 알것이다. ClearCase 의 경우 비싼 가격이 문제일 뿐 사용에 있어서만큼은 그 어떤 프로그램도 따라오지 못할 막강한 기능을 자랑하고 있다. 오픈 소스로 제공되는 SVN(참조 : http://subversion.tigris.org/) 에 대해서도 형상관리에 대한 최소한의 궁금증이 있었다면, CVS 에 대한 지식이라도 있다면 들어는 봤을 것이다.
VSS 는 위에 제사한 여러 문제를 안고 있고, 지금 그 대안을 찾자는 이야기니...막강한 기능을 가진 CleareCase 를 대안으로 내놓자니...대기업 조차도 CleareCase 관리 인력 없이 VSS 처럼 단순 모델로 적용하여 사용하는걸 보아온 나로써는 별로 매력적이지 못하다고 생각한다. 그렇다면 대안은 SVN 이라 생각한다. 하지만, SVN 에는 또다른 나름의 단점을 가지고 있다. 커밋 단위의 관리를 비롯하여 위에서 열거한 단점을 극복 할 수는 있겠지만, visual studio 와 연동에 있어서 그 기능을 제대로 활용할 수 있을까? visual studio 에서 활용 가능한 형상관리툴을 찾자는 것인데 그게 않된다면 그것은 대안이 될 수 없다. 여기서 글을 마칠까....??????
http://ankhsvn.open.collab.net/

http://ankhsvn.open.collab.net/

그 대답은 ankhSVN 이다. 우리에게 필요했던 것은 visual studio 에 적용 가능한, 가능한 적은 비용으로 구축 가능한 형상관리 솔루션인 것이다. ankhSVN 의 경우 오픈소스로 진행되다 어느 순간 멈춰버린 버림 받은 프로젝트로 느껴지던 것이다. 내가 처엄 SVN 을 접했던 시절 아무 생각없이 설치했다가 피만 봤던 골치아픈 프로그램이었던 것이다. 그런데 지금은 필요한 기능이 적절히 조화된 멋진 프로그램으로 탈바꿈 했다. 콜랩넷 홈페이지에서 관련 정보를 제공하는 것으로 보아 제대로된 지원이 이뤄지는 듯 하다. visual studio 2009 에서도 잘 돌아가는 SVN 클라이언트를 찾았다. 물론 ankhSVN 만으로 원하던 모든 솔루션이 갖춰지는 것은 아니다. 오픈 소스 특성상 필요한 기능을 보충해주는 다른 프로그램들이 더 많이 필요하게 된다. 하지만 비용이란 점에서 만큼은 감수할 만한 내용이라 생각한다. 이번 글에서는 ankhSVN 에 대한 간단한 소개로 글을 마친다. 다음 글을 통해서 ankhSVN 을 적용한 visual studio 와 기능에 대해 좀더 알아보고 개발 환경 구축을 위해 추가로 필요했던 것과 운영(배포)를 위해 추가로 필요했던 툴들에 대해 정보를 나누도록 하자.



저작자 표시
신고

'뭐하는데 > Dot 4(넷)' 카테고리의 다른 글

닷넷을 위한 API Code Pack  (0) 2009.08.10
ASP.NET MVC Version 2  (0) 2009.08.03
Chart 어떻게 그리세요  (0) 2009.07.22
visual studio 와 형상관리, 운영 배포에 대한 모델...(1)  (0) 2009.06.27
Power shell 2.0  (0) 2009.06.22
Visual Studio 2010  (0) 2009.04.21
Trackback 0 Comment 0