오픈소스 프로그램을 수정해서 사용할때 새로운 버전이 나오면 어떻게 적용을 하시나요?

superkkt의 이미지

오픈소스 프로그램을 자사의 환경에 맞게 수정해서 사용하고 있습니다. 수정 규모는 꽤 오랫동안 여러 파일에 걸쳐서 조금씩 수정된 상황입니다. 수정된 소스코드는 CVS에 등록되어서 관리되고 있고, 왜 수정했는지 그리고 어디가 어떻게 수정되었는지는 mantis + CVS 조합으로 확인할 수 있습니다.

이런 상황에서 해당 프로그램이 버전업이 되었다면 새로운 버전을 어떻게 적용을 하는것이 좋을까요? 기존 소스를 여기저기 수정해서 사용하고 있기 때문에 일반적인 diff patch로는 안될테고요. changelog를 하나씩 확인해 가면서 수동으로 변경사항을 기존 소스에 적용하거나, 버전업된 소스를 받아서 지금까지 수정한 내용을 다시 적용시키는 방법이 있을것 같은데 둘 다 썩 좋은 방법은 아닌것 같네요.

좋은 방법이 있으면 조언 부탁드립니다.

superkkt의 이미지

CVS에 새로운 브랜치를 만들어서 버전업된 소스코드를 넣고 기존 브랜치와 병합시키는 방법도 있겠군요. 근데 이것도 별로 좋은 방법은 아닌것같고.. 흠..

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com

ganadist의 이미지

되도록이면 업스트림에 반영되도록 노력하는게 제일 좋죠;;

----
Do not feed troll!

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

feanor의 이미지

제 방식은 이렇습니다. 수정을 하실 때, 어떻게/왜 수정했는지 CVS 로그에 적고 파일을 직접 고치지 마시고, 모든 수정사항을 각각의 patch로 만든 다음 patch 윗부분에 로그를 적습니다.

새 버전이 나오면 patch들을 하나씩 업데이트하고 (quilt 같은 도구를 써서 refresh하면 편리합니다) 모두 업데이트가 되면 테스트를 거친 후 전환합니다.

물론, patch는 가능하면 업스트림으로 보냅니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.