리눅스 및 윈도우 공용 소프트웨어 개발 시 버전 관리 방법?

philnet의 이미지

리눅스와 윈도우 양쪽에서 동시에 사용되는 소프트웨어를 개발하고 있습니다. (좀더 구체적으로는, arm-linux 기반의 embedded device에서 운용되는 소프트웨어와, 리눅스 PC 및 윈도우 PC에서 이 device에서 생성된 결과물을 처리하는 소프트웨어를 같이 개발하고 있습니다.)

현재는 Visual SourceSafe를 버전 관리 툴로 사용하고 있고요, 리눅스 SW 개발 PC의 HDD 중 일부를 samba로 잡은 다음, 소스 편집 전후에 PC에서 SourceSafe Explorer로 Check In/Out 등의 버전 관리를 하고 있습니다.

따라서 윈도우용 소프트웨어 개발이야 문제가 없습니다만, 리눅스용 소프트웨어 개발 시에는 윈도우와 리눅스를 오가면서 버전 관리, 소스 코드 수정 및 빌드 등의 작업을 해야 하는 게 많이 번거롭습니다. VNC 같은 원격 제어 소프트웨어나, Xmanager와 같은 윈도우용 X Server 소프트웨어를 쓰면 그런 번거로움이 줄긴 합니다만, 다음의 2가지 문제점들 때문에 Subversion으로 옮기는 것을 고려하고 있습니다.

문제점 1. 리눅스에서 직접 소스를 가지고 오지 못함.
가장 결정적인 이유입니다. 리눅스용 소프트웨어의 자동 빌드 및 배포 시스템을 구축하려고 하는데, 소스를 가져오는 첫번째 단계에서 걸림돌이 됩니다. Subversion을 쓰면 이게 해결되니 이것 때문에라도 옮겨야 할 것으로 생각하고 있습니다.

문제점 2. EOL(end-of-line)
윈도우는 줄바꿈이 CRLF (carrage return-linefeed)이고, 리눅스는 LF로 다른데, SourceSafe가 Check In/Out 시나 파일 비교할 때에는 CRLF 와 LF를 융통성있게 처리는 해 줍니다만, SourceSafe로부터 소스를 받아 올 때는 항상 CRLF으로 만들어 주더군요. 그래서 리눅스에서 batch build 시에 dos2unix를 적절하게 호출하게 해서 해결하고 있습니다. 이것이 Subversion으로 가는 두 번째 이유입니다. Subversion은 auto-props에서 설정해 주면, 리눅스와 윈도우 각각에 맞는 줄바꿈을 유지할 수 있더군요.

다만, Subversion으로 갈 때에도 여전히 남는 문제가 있더군요.

문제점 3. character encoding set
최근 리눅스 배포판에서는 UTF-8로 했을 때 한글 처리에 큰 문제가 없지만, 윈도우 쪽에서는, Visual Studio (6.0 및 2005)에서 저장하면 그게 EUC-KR로 저장되는 것 같습니다. 현재는 comment 수준에서만 한글을 쓰고 있어서, 리눅스에서도 EUC-KR로 통일해서 사용하고 있습니다만, 추후를 생각해서 이참에 UTF-8로 가고 싶은데, Visual Studio 가 발목을 잡네요.

문제점 1, 2에 대해서 제가 미처 생각하지 못한 점이 있다거나, 문제점 3에 대해 좋은 아이디어가 있으신 분들이 계시면 좋은 조언 부탁드립니다.

danskesb의 이미지

Quote:
문제점 3. character encoding set
최근 리눅스 배포판에서는 UTF-8로 했을 때 한글 처리에 큰 문제가 없지만, 윈도우 쪽에서는, Visual Studio (6.0 및 2005)에서 저장하면 그게 EUC-KR로 저장되는 것 같습니다. 현재는 comment 수준에서만 한글을 쓰고 있어서, 리눅스에서도 EUC-KR로 통일해서 사용하고 있습니다만, 추후를 생각해서 이참에 UTF-8로 가고 싶은데, Visual Studio 가 발목을 잡네요.

비주얼 스튜디오 2005의 경우 저장 고급 옵션이었던가? 에서 UTF-8 등으로 인코딩 지정 가능합니다. 6.0에는 그런 기능이 없습니다.
---- 절취선 ----
http://blog.peremen.name
ydhoney의 이미지

기본 옵션으로 지정이 안되었던가 그랬어요 -_-a 그래서 저장할때마다 매번 해줘야한다는 뭐 그런;; 그나저나 이게 2005 초반에 해본거라 그 이후는 모르겠네요.

=3=33
 
====================여기부터 식은어치====================
안녕하세요. 저는 야동 초등학교 2학년 6반 11번입니다!! 제 컴퓨터에 리눅스를 깔아보고 싶습니다. 리눅스라는건 어제 처음 들어 보았습니다.
리눅스에서도 카트라이더는 되겠지요? 설마 안되나요? 안되면 왜 쓰나요? =3=33 리눅스에서는 카트라이더 캐릭터 머리가 너무 커서 못받아들이나요?

댓글 달기

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