二锅头 发表于 2005-6-24 09:40

subversion 版本管理工具

<div class="simplesect">
<div class="titlepage">

</div>
<div class="blockquote">
<blockquote>
<br>“ 如果 C 給了你夠多的繩子來吊死自己, 那麼 Subversion 可視為是一種收納繩子的器具.
”—Brian Fitzpatrick </p></blockquote></div>
<p>在開放原碼軟體的世界中, Concurrent Versions System (CVS)長久以來, 一直都是版本控制的不二選擇. CVS本身是自由軟體,
而且它是 “非鎖定式” 的系統 —這讓分布廣闊的程式設計人員能夠分享彼此的工作—
完全符合開放原碼世界的合作模式. CVS, 以及它那半混亂式的發展模式, 已經成為開放原碼文化的基石. </p>
<p>但是就像許多的工具, CVS 已經開始顯露疲態. 比較起來, Subversion 是一個新的工具, 是設計來成為 CVS 的後繼者.
設計者要以兩個方法來贏得 CVS 使用者的心: 產生一個設計 (還有 "外觀與感覺") 類似 CVS 的開放原碼系統, 以及試著修正 CVS
中最廣為人知的缺點. 雖然結果不見得會是版本控制設計的下一個偉大革命, 但是 Subversion <em>絕對</em> 會是個強力, 可用性高, 而且深具彈性的工具.<br>
</p>
<p><br>
</p>
<div class="simplesect">
<div class="titlepage">

</div>
<p>版本控制是管理資訊變化的技術. 對於程式設計者來說, 它已經成為不可或缺的工具, 他們常常將花時間修改軟體, 產生部份的變更,
然後第二天再取消所作的變更. 想像有一群程式設計人員同時工作的情況, 你就能夠理解, 為什麼需要一個良好的系統來管理可能的混亂. </p></div>

<div class="sect1">
<div class="titlepage">
<div>
<div>
<h2 >什麼是
Subversion?</h2></div></div>
</div>
<p>Subversion 是一個自由/開放源碼的版本控制系統, 也就是說 Subversion 管理著隨時間改變的檔案. 這些檔案放置在一個中央 <i>檔案庫 (repository)</i> 中. 這個檔案庫 很像一個尋常的檔案伺服器, 不過它會記住每一次檔案的變動.
這樣你就可以把檔案回復到舊的版本, 或是瀏覽檔案的變動歷程. 許多人會把版本控制系統想像成某種 “時光機器”.
</p>
<p>某些版本控制系統也是 software configuration management (SCM) 系統. 這些系統是特別設計來管理大量程式碼的,
而且具有許多功能, 專門用在軟體發展之用 — 像是可完全了解程式語言, 或是提供編譯軟體的工作. 不過 Subversion 並不是這樣的系統;
它是一個泛用系統, 可用來管理<em>任何</em> 類型的檔案, 其中包括了程式源碼.
</p></div>

<div class="sect1">
<div class="titlepage">
<div>
<div>
<h2 >Subversion
的歷史</h2></div></div>
</div>
<p>在 1995 年時, Karl Fogel 與 Jiim Blandy 成立了 Cyclic Software, 提供 Concurrent
Versions System (CVS) 的商業支援, 並著手改良它. Cyclic 作出了第一個具網路功能的 CVS 公開版本 (由 Cygnus
軟體公司捐贈). 在 1999 年, Karl Fogel 出版了一本書, 講的是 CVS, 以及它所促成的開放源碼發展模式. Karl 與 Jim
很早前就提過, 要製作一個 CVS 的取代軟體的概想; Jim 甚至還起草了一個新的, 理論性的 檔案庫設計, 而且還想到了一個不錯的計劃名稱. 最後, 在
2000 年二月, CollabNet (<tt>http://www.collab.net</tt>) 的 Brian
Behlendorf 提供 Karl 全職的工作, 專職發展 CVS 的替代程式. Karl 集合了一個團隊, 於五月開始發展. 由於 Subversion
是以自由授權撰寫的, 它很快就吸引了一堆發展人員. </p>
<p>Subversion 的原始設計團隊定下了幾個簡單的目標. 他們決定它必須在功能上可取代 CVS. 也就是說, 所有 CVS 可達成的事,
它都要能夠作到. 在修正最顯而易見的瑕疵的同時, 還要保留相同的發展模式. 還有, Subversion 應該要和 CVS 很相像, 任何 CVS
使用者只要花費少許的力氣, 就可以很快地上手. </p>
<p>經過十四個月的撰寫之後, Subversion 於 2001 年 8 月 31 號開始 “自行管理”.
也就是說, 發展人員不再使用 CVS 來管理 Subversion 的程式碼, 而以 Subversion 自己來管理. </p>
<p>雖然起始這個計畫, 與提供大部份成果的資金都歸功於 CollabNet (它付出幾位全職 Subversion 開發人員的薪水), 這還是個開放源碼計畫,
由一般開放源碼界所公認的規則所支配. CollabNet 擁有程式碼的版權, 不過程式碼是以 Apache/BSD 風格的版權發行, 完全符合 Debian
Free Software Guidelines. 換句話說, 每個人都可以隨意地自由下載、修改、以及重新散播 Subversion; 完全不需要經過
CollabNet, 或是任何人的允許. </p></div>

<div class="sect1">
<div class="titlepage">
<div>
<div>
<h2 >Subversion
的功能</h2></div></div>
</div>
<p>Subversion 哪裡比 CVS 的設計更好? 這裡是個簡短的列表, 以滿足你的好奇心. 如果你不熟悉 CVS 的話, 可能不了解這些特色在哪裡.
別害怕: 第二章會提供你版本控制的簡單介紹. </p>
<div class="variablelist">
<dl><dt>目錄版本控制
</dt><dd>
<p>CVS 只能追蹤單獨檔案的歷史, 不過 Subversion 實作了一個 “虛擬” 的版本控管檔案系統,
能夠依時間追蹤整個目錄的更動. 目錄<em>和</em>檔案都被納入版本控管. 最後,
用戶端有真正可用的 <b>move</b> (移動) 與 <b>copy</b> 指令. </p>
</dd><dt>不可分割的送交
</dt><dd>
<p>一個送交動作, 不是導致所有更動都送入檔案庫, 就是完全不會送入. 這讓發展人員以邏輯區段建立更動, 並送交更動. </p>
</dd><dt>納入版本控管的描述資料 (Meta-data)
</dt><dd>
<p>每一個檔案與目錄都附有一組隱形 “性質 (property)”. 你可以自己發明,
並儲存任何你想要的鍵值對. 性質是隨著時間來作版本控管的, 就像檔案內容一樣. </p>
</dd><dt>選擇不同的網路層
</dt><dd>
<p>Subversion 有抽象的檔案庫存取概念, 可以讓人很容易地實作新的網路機制. Subversion “先進” 的網路伺服器, 是 Apache 網頁伺服器的一個模組, 它以稱為 WebDAV/DeltaV 的 HTTP
變體協定與外界溝通. 這對 Subversion 的穩定性與互通性有很大的幫助, 而且額外提供了許多重要功能: 舉例來說, 有身份認證, 授權, 線上壓縮,
以及檔案庫瀏覽. 另外也有小而獨立的 Subversion 伺服器程式, 使用的是自訂的通訊協定, 可以很容易地透過 ssh 以 tunnel 方式使用.
</p>
</dd><dt>一致的資料處理方式
</dt><dd>
<p>Subversion 使用二進制差異運算法, 來表示檔案的差異, 它對文字 (人類可理解的) 與二進制檔案 (人類無法理解) 兩類的檔案都一視同仁.
這兩類的檔案都同樣地以壓縮形態儲存在檔案庫中, 而且檔案差異是以兩個方向在網路上傳送的. </p>
</dd><dt>更有效率的分支 (branch) 與標記 (tag)
</dt><dd>
<p>分支與標記的花費並不必一定要與計畫大小成正比. Subversion 建立分支與標記的方法, 就只是複製該計畫, 使用的方法就像 hard-link
一樣. 所以這些動作只會花費很小, 而且是固定的時間. </p>
</dd><dt>Hackability
</dt><dd>
<p>Subversion 沒有任何的歷史包袱; 它主要是一群共用的 C 程式庫, 具有定義完善的 API. 這使得 Subversion 便於維護,
並且可被其它應用程式與程式語言使用.</p></dd></dl></div></div>
<p><br>
</p>
</div>

二锅头 发表于 2005-6-24 09:42

中华人民共和国环境噪声污染防治法

在 <tt>http://svnbook.red-bean.com</tt> 可以找到最新的線上帮助版本<br>
<br>
<tt>subversion的官方站点 http://subversion.tigris.org/</tt><br>

redstar 发表于 2005-6-24 11:20

转子动力学弹性支承

<P>二锅头,看你对subversion情有独钟,多次提到,不知道你自己现在使用了没有?有什么心得?给咱们大伙讲讲呗。</P>

二锅头 发表于 2005-6-24 11:49

ansys常用命令的中文翻译

还没入门哪。<br>

tonan_888@163.c 发表于 2023-11-9 11:41

</dd><dt>Hackability
</dt><dd>
<p>Subversion

tonan_888@163.c 发表于 2023-11-9 11:42

</dd><dt>Hackability
</dt><dd>
<p>Subversion

tonan_888@163.c 发表于 2023-11-9 11:49

</dd><dt>Hackability
</dt><dd>
<p>Subversion
页: [1]
查看完整版本: subversion 版本管理工具