소스관리 및 자료관리에 관한 좋은 방법

mycluster의 이미지

CVS나 위키등을 사용하는 여러사람들을 보면서 나도 자료관리를 좀 하고, 소스관리를 해야하겠다는 생각이 무릇싹트고 있읍니다.

그런데, 팀별로 일하는 여러분들에게 몇가지 궁금한 사항이 있는데, 해당되시는분은 답 좀 해주세요.

일단 제가 관련되어 있는 프로젝트는 주로 코드를 개발하고 이를 사용하여 결과를 내는 일들입니다. 그런데, 다른 분들과는 달리 대부분의 코드는 Fortran으로 작성되고, 보통 몇년이전부터 수많은 사람들이 덕지덕지 가져다 붙여놓은 subroutine들이 추가되어 있으며, 사용법 및 작성방법이 완전히 도제식으로 전수되는 그런 것들입니다. 그리고, 이에 관련된 자료는 매년 보고서 형태로 여기저기 산재해 있고, 대충 FTP서버 같은 것을 만들거나, 각자의 PC에 흩어져 있읍니다.

이런상황에서 아시다시피 CVS같은 것을 이용한 버전관리는 꿈도 꿀수 없고, 위키같은것을 만들어서 자료를 저장한다는 것도 현재로서는 요원한 일입니다.

이러한 상황에서, 제가 CVS서버와 자료공유를 위한 위키같은 서비스를 구축한다고 했을때, 100% 컴맹들인 프로젝트 인간들에게 이것을 사용해서 협업이 가능하도록 만드는 것이 과연 가능할까요? 그리고 가능하다면 얼마나 걸릴까요?

CVS가 필요한 시점에 걸려버렸읍니다. 4년째 진행하고 있는 프로젝트(그래봐야 일년에 하루이틀 날밤까는 정도지만 ㅋㅋㅋ)에서 참여인원이 총 4명인데 전부 원본코드에서 자기가 맡은부분을 맘대로 고친다음에 그걸 다시 합쳐야만한다는 상황입니다. 자기가 맡은부분만을 서브루틴으로 달수 있는 상황은 아니고, 보통 새로운 논문을 보고 나름대로 뜯어고치면서 전체 인풋부터 아웃풋까지 다 맘대로 만들어놓고 다들 도망갈 궁리만 하고 있지요.

과연 이런 상황에서 이 엄청난 컴맹들로 구성된 fortran coder들을 과연 CVS시스템으로 엮어서 일을 하는 것이 가능할까요?

추신) 음 남걱정하기전에 내꺼부터 일단 CVS를 쓰던지 해서 어떻게던 버전관리를 해야할거 같군요.

bh의 이미지

CVS라..
슬며시,, 저두 욕심이 생기네요,,

--
이 아이디는 이제 쓰이지 않습니다.

verotas의 이미지

간단합니다. 다른 사람들에게 CVS를 쓰게 할 수 있는 공식적인 권한이 있다면 잔소리하지 말고 그렇게 하라고 시키면 됩니다. :-)

그렇지 않다면 한 사람씩 밥 사줘가면서 설득을 해야겠지요. 단, 그렇게 시간과 돈과 노력을 들여서 결과적으로 사흘 밤 샐거 하루 밤 새는 걸로 줄일 수 있다는 확신이 들 때만 그렇게 하세요. 아무리 좋은 도구와 프로세스가 있다고 해도 사람들하테 그걸 납득시키고 쓰게 만드는 건 절대 쉬운 일이 아닙니다.

The good is the enemy of the best.

pynoos의 이미지

cvs 가 진입장벽이 있는 것은 사실입니다.
좋은 방법은, 먼저 한달간 써본뒤에 소개하는 것이 좋을 것 같습니다.
(보아하니 한달정도는 급한마음안가지셔도.. 좋겠군요 :D)
팀원중에 cvs 하나 잘 쓰는 사람이 있어야 모든 사람이 쉽게 따라오거든요.
모두 배워가는 입장이면 아마 포기할지도 모릅니다.

saxboy의 이미지

Quote:
일단 제가 관련되어 있는 프로젝트는 주로 코드를 개발하고 이를 사용하여 결과를 내는 일들입니다. 그런데, 다른 분들과는 달리 대부분의 코드는 Fortran으로 작성되고, 보통 몇년이전부터 수많은 사람들이 덕지덕지 가져다 붙여놓은 subroutine들이 추가되어 있으며, 사용법 및 작성방법이 완전히 도제식으로 전수되는 그런 것들입니다. 그리고, 이에 관련된 자료는 매년 보고서 형태로 여기저기 산재해 있고, 대충 FTP서버 같은 것을 만들거나, 각자의 PC에 흩어져 있읍니다.

so called... 대학원코드군요. :D

Quote:

과연 이런 상황에서 이 엄청난 컴맹들로 구성된 fortran coder들을 과연 CVS시스템으로 엮어서 일을 하는 것이 가능할까요?

컴맹과는 크게 관련이 없을것 같습니다. MyCluster님께서 박사 몇년차정도 되는 실질적인 랩짱이라고 가정할때 그냥 하라고 시키면 되겠지요. 하하...
전에 있던 회사에서 프로젝트를 하나 시작하면서 없던 cvs를 도입해 시작했는데, 다른 분들은 cvs를 처음 접하시는 분들이었지요. import 같은 것은 MyCluster님께서 직접 하시는 것이 안전할 것 같고, 다른 사용자분들께는... checkout과 commit의 개념만을 숙지시켜 사용할 수 있도록 하시는 것이 좋겠지요. 하지만 repository구조를 잘 만들어 import 하는 일 자체도 굉장한 스트레스가 됩니다. 특히 이렇게 몇년동안 개인 하드이곳저곳에 산재되어 있는 코드들이라면 aggeregator역할을 해야 하는 한명은 지독하게 골머리를 썩어야하겠지요.

나머지 팀원들이 전부 컴맹에 가깝다고 하시니 아마도 W2k나 Xp를 사용하시는 분들이 많을것이고, tortoisecvs 같은 gui 툴들을 사용하시면 좀 더 편리하지 않을까 합니다.

처음에 저희 팀에 도입했을 때에는 실질적으로 제가 대부분의 권한을 가질 수 있었기 때문에, 팀원들에게 cvs 세미나를 준비시키고, 레퍼지토리 구조를 짜거나 cvs서버를 셋업하는 일은 제가 다 마쳐놓고 시작했습니다. w2k에서 대부분 작업을 하는 팀원들이어서 wincvs와 tortoisecvs 를 편한대로 사용하라고 했었지요. 시간이 조금 지나가니 다들 컴맹들은 아니어서 vc++의 툴바로 올려서 알아서 잘 사용하더군요. 하지만 역시 cvs와 unix에 익숙하지 않다보니 몇가지 문제는 생깁니다. 예를 들면... 전통적인 commit시의 CR/LF문제나, *.o와 *.obj, 또는 빌드시에 생긴 .dep 따위를 전부 넣어버리는 일이 생긴다거나 하지요. cvsignore같은 것도 정책에 맞게 잘 정해주시는 것이 좋습니다.

mycluster의 이미지

Quote:
특히 이렇게 몇년동안 개인 하드이곳저곳에 산재되어 있는 코드들이라면 aggeregator역할을 해야 하는 한명은 지독하게 골머리를 썩어야하겠지요.

ㅎㅎㅎ 이걸 제가 해야된다면, ㅎㅎㅎ 혼자서 조용히 쓰다가 도망가는게 상책이라고 보이네요 ㅋㅋㅋ

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러