<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>Jaemok</title>
    <link>http://jmjeong.com</link>
    <description>jmjeong, Jaemok Jeong</description>
    <pubDate>Wed, 09 Jun 2010 02:16:35 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Fossil</title>
      <link>http://jmjeong.com/blog/fossil</link>
      <pubDate>Tue, 08 Sep 2009 16:05:00 KST</pubDate>
      <category><![CDATA[scm]]></category>
      <guid isPermaLink="true">http://jmjeong.com/blog/fossil</guid>
      <description><p>
Another Open source Version control system - 
<a href="http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki">http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki</a>
</p><p>
Git나 mercurial처럼 DVCS기능에 더불어 버그 tracking, wiki를 통합된 시스템이다. 
Trac과 같이 built-in web 인터페이스를 가지고 있어, 인터페이스 측면에서는 훌륭하다. 
<b>Autosync</b> 를 지원하여, 불필요한 fork &amp; merge를 줄여준다고 한다. 
Git와는 달리 단일 수행파일 하나로 되어 있다. 모든 것이 fossil 이라는 실행파일
하나로 이루어져 있다. (Unix 철학과는 배치되지만, 인스톨이나 언인스톨이 간단하다는
부가적인 장점을 무시할 수 없다). HTTP(proxy support)만 가지고 동작이 가능한
네트웍 모드를 지원한다. 별도의 서버 없이도 fossil을 사용할 수 있는 장점이 있다. 
관리되는 파일 자체도 SQLite DB 하나로 이루어져 있어, 관리가 편하다. 
</p><i>Read more...</i></description>
      <content:encoded><![CDATA[
<div id="outline-container-1" class="outline-2">

<div class="outline-text-2" id="text-1">
<p>
Another Open source Version control system - 
<a href="http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki">http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki</a>
</p>
<p>
Git나 mercurial처럼 DVCS기능에 더불어 버그 tracking, wiki를 통합된 시스템이다. 
Trac과 같이 built-in web 인터페이스를 가지고 있어, 인터페이스 측면에서는 훌륭하다. 
<b>Autosync</b> 를 지원하여, 불필요한 fork &amp; merge를 줄여준다고 한다. 
Git와는 달리 단일 수행파일 하나로 되어 있다. 모든 것이 fossil 이라는 실행파일
하나로 이루어져 있다. (Unix 철학과는 배치되지만, 인스톨이나 언인스톨이 간단하다는
부가적인 장점을 무시할 수 없다). HTTP(proxy support)만 가지고 동작이 가능한
네트웍 모드를 지원한다. 별도의 서버 없이도 fossil을 사용할 수 있는 장점이 있다. 
관리되는 파일 자체도 SQLite DB 하나로 이루어져 있어, 관리가 편하다. 
</p>
<p>
여러모로 장점이 많지만, 아직 사용하는데는 많지 않아 보인다. 이름을 예술적으로
지은 덕분에, googling을 통해서 관련 Link를 찾지 못하는 단점도 있다. 
큰 프로젝트보다는 소규모의 개인 프로젝트에 적합한 VCS라는 생각이 든다. 
</p>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">Fossile에 대한 궁금한 점과 비판 </h3>
<div class="outline-text-3" id="text-1.1">
<p>
FAQ에 이어 <a href="http://www.fossil-scm.org/index.html/doc/tip/www/qandc.wiki">이 문서</a>에 궁금한 점과 비판들을 정리해 놓았다. 
</p>
<ul>
<li>
Mercurial을 안 쓰고 왜 fossil을 새로 만들었나?
<ul>
<li>
자체 내장된 wiki, bug tracking, single excutable file, 웹 인터페이스를 가진 DVCS가 없었기 때문에
만들었다.
</li>
</ul>
</li>
<li>
Trac대신 왜 fossil을 쓰는가?
<ul>
<li>
Fossil은 분산 시스템이다. 네트웍이 연결안 되어 있는동안에도 ticket을 보거나 편집할 수 있다.  (
<i>음, git나 mercurial같은 시스템에서 얻을 수 있는 장점 중에 하나여서 끌리는 feature다</i> )
</li>
<li>
Fossil은 경량이고, 프로그램 하나에 모두 포함되어 있어서 세팅이 편하다.
</li>
<li>
Code versioning과 wiki, ticket을 하나의 repository에 통합했다.
</li>
</ul>
</li>
<li>
개념은 좋아보이는데, 실제 작업에 사용하는 사람이 있나?
<ul>
<li>
아직 git나 mercurial처럼 많은 user 층을 확보하지 못했지만, sqlite와 fossil이 fossil을 통해
document를 관리하고 있다. 
</li>
</ul>
</li>
<li>
리파리토리를 Sqlite DB와 같은 binary blob에 저장하는 게 걱정이 된다. ( <i>나도 또한 궁금</i> )
<ul>
<li>
SQLite가 트랜잭션을 지원하기 때문에 다른 방법보다 안정적이고 안전하다.( <i>과연?</i> ) 또한 내부적으로
데이타 손실을 방지하기 위한 자체 체크 루틴을 구현했다.
</li>
</ul>
</li>
<li>
VCS내에 wiki나 bugtracker를 내장하는 장점에 대해서 잘 모르겠다. - Trac같은 시스템에 비해 기능이
떨어지거나, VCS가 Subversion이나 Bazaar등에 비해 너무 무거워지는 단점이 있지 않을까? ( <i>궁금했던   내용</i> )
<ul>
<li>
Trac이 기능이 많다는 점은 부인하지 않지만, disconnected operation이 지원되지 않는다. 나는 이것이
더 필요하다. ( <i>하긴 trac의 기능을 다 쓰고 있지 않잖아</i> )
</li>
<li>
무거워진다는 점에 대해서 &hellip; Fossil은 실행파일 하나다. 이 실행파일하나로 다른 패키지들(diff,
patch, merge, cvs, svn, rcs, git, python, perl , tcl, apache, sqlite등) 전혀 필요없이 fossil을
수행할 수 있다. ( <i>이것도 큰 장점 중에 하나, mac용 binary크기가 820k 정도 밖에 안 된다.</i> )

</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">결론 </h3>
<div class="outline-text-3" id="text-1.2">
<p>
중요한 프로젝트에 사용하기는 아직은 좀 꺼려지지만, 개인용 project에는 한번 시도를 해 보는 것도 괜찮을
듯 싶다. Sqlite와 같은 중규모의 프로젝트에서도 몇년간 계속 운영을 해 오고 있다고 한다.  웹
인터페이스나 관리자 툴, 권한 설정 등은 편하게 되어 있다.
</p>
<p>
하지만, 웹에서 검색해 본 결과 emacs integration이 없어서 나도 당분간 안 쓸거 같다.
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">참고 관련 link </h3>
<div class="outline-text-3" id="text-1.3">
<ul>
<li>
<a href="http://traustithor.blogspot.com/2009/03/fossil-version-control-system.html">http://traustithor.blogspot.com/2009/03/fossil-version-control-system.html</a>
</li>
<li>
<a href="http://atheorist.livejournal.com/145002.html">http://atheorist.livejournal.com/145002.html</a>
</li>
</ul>
</div>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>

