CVS 등에서 개발 도중의 내용 관리는 어떻게 하십니까?

xster의 이미지

현재 3~4명이서 관리하는 프로젝트가 있습니다. 소스 코드는 서로 다른 제품 지원을 위해서 #ifdef 구문이 꽤나 복잡하게 들어가 있습니다. 한 제품에서 새 기능을 추가하기 위해선 열심히 #ifdef로 맞춰줘야 하는 상황입니다.
문제는 상당히 큰 기능 집합을 새로 추가하려고 할 때입니다. 기능이 상당히 커서 변경 사항도 많기 때문에 모든 내용을 변경하고 CVS와 같은 버전 관리 툴에 집어 넣으려고 하면 너무 오랜 기간 버전 관리가 안 되고 바로바로 집어 넣으려고 하면 변경 사항이 너무 자주 발생해서 불필요한 변경 사항에 대한 내용이 많이 들어가게 됩니다.
이렇게 상당한 크기의 기능 변경이 있고 다른 사람과 같이 작업을 하는 경우 버전 관리는 어떻게 하십니까? 혹시 저의 개발이 너무 막무가네라 너무 자주 바뀌는 것일까요?

익명 사용자의 이미지

1. 변경사항이 너무 자주 발생 -> 그냥 commit하세요. 그게 바로 CVS가 있는 이유 아닐까요? 기록이 많이 남으면 실적도 올라가는?
2. 모듈화를 고려해보심은?: 적당한 수준의 refactoring으로..
3. 다른 버전관리 시스템은 어떨까요? darcs, monotone ?
이상 일반적으로 올라올만한 다변 예상 리스트였습니다.

leigh의 이미지

메인 개발은 계속 유지하면서 큰 기능 집합을 추가하거나 테스트하는 시나리오는 매우 일반적인 것이라서, 대부분의 버전 관리 시스템이 Branch(가지)라는 개념을 지원합니다.

CVS에도 branch를 잘 지원하고 있으니, 이를 이용하시면 됩니다.

브랜치에 대해서는 CVS 튜토리얼이나 서적에서 잘 설명하고 있으니 읽어보시면 도움이 될 것입니다.

...

pynoos의 이미지

cvs 로 자주 commit 하면, conflict이 있기 마련입니다.
이런 conflict이 자주 발생한 다는 것은 team review 없이 코드를 공유하기 때문에 발생합니다.

질문하신 분의 팀은 대화가 필요한 시점이군요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.