svn的相關介紹

2021-10-07 01:30:37 字數 2291 閱讀 6112

subversion(svn) 是乙個開源的版本控制系統, 也就是說 subversion 管理著隨時間改變的資料。 這些資料放置在乙個**資料檔案庫(repository) 中。 這個檔案庫很像乙個普通的檔案伺服器, 不過它會記住每一次檔案的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽檔案的變動歷史。

svn的一些概念

日常開發過程其實就是這樣的(假設你已經checkout並且已經工作了幾天):update(獲得最新的**) -->作出自己的修改並除錯成功 --> commit(大家就可以看到你的修改了) 。

如果兩個程式設計師同時修改了同乙個檔案呢, svn 可以合併這兩個程式設計師的改動,實際上svn管理源**是以行為單位的,就是說兩個程式設計師只要不是修改了同一行程式,svn都會自動合併兩種修改。如果是同一行,svn 會提示檔案 conflict, 衝突,需要手動確認。

svn的主要功能

建立版本庫

版本庫相當於乙個集中的空間,用於存放開發者所有的工作成果。版本庫不僅能存放檔案,還包括了每次修改的歷史,即每個檔案的變動歷史。

create 操作是用來建立乙個新的版本庫。大多數情況下這個操作只會執行一次。當你建立乙個新的版本庫的時候,你的版本控制系統會讓你提供一些資訊來標識版本庫,例如建立的位置和版本庫的名字。

檢出

checkout 操作是用來從版本庫建立乙個工作副本。工作副本是開發者私人的工作空間,可以進行內容的修改,然後提交到版本庫中。

更新

顧名思義,update 操作是用來更新版本庫的。這個操作將工作副本與版本庫進行同步。由於版本庫是由整個團隊共用的,當其他人提交了他們的改動之後,你的工作副本就會過期。

讓我們假設 tom 和 jerry 是乙個專案的兩個開發者。他們同時從版本庫中檢出了最新的版本並開始工作。此時,工作副本是與版本庫完全同步的。然後,jerry 很高效的完成了他的工作並提交了更改到版本庫中。

此時 tom 的工作副本就過期了。更新操作將會從版本庫中拉取 jerry 的最新改動並將 tom 的工作副本進行更新。

執行變更

當檢出之後,你就可以做很多操作來執行變更。編輯是最常用的操作。你可以編輯已存在的檔案,例如進行檔案的新增/刪除操作。

你可以新增檔案/目錄。但是這些新增的檔案目錄不會立刻成為版本庫的一部分,而是被新增進待變更列表中,直到執行了 commit 操作後才會成為版本庫的一部分。

同樣地你可以刪除檔案/目錄。刪除操作立刻將檔案從工作副本中刪除掉,但該檔案的實際刪除只是被新增到了待變更列表中,直到執行了 commit 操作後才會真正刪除。

rename 操作可以更改檔案/目錄的名字。"移動"操作用來將檔案/目錄從一處移動到版本庫中的另一處。

複查變化

當你檢出工作副本或者更新工作副本後,你的工作副本就跟版本庫完全同步了。但是當你對工作副本進行一些修改之後,你的工作副本會比版本庫要新。在 commit 操作之前複查下你的修改是乙個很好的習慣。

status 操作列出了工作副本中所進行的變動。正如我們之前提到的,你對工作副本的任何改動都會成為待變更列表的一部分。status 操作就是用來檢視這個待變更列表。

status 操作只是提供了乙個變動列表,但並不提供變動的詳細資訊。你可以用 diff 操作來檢視這些變動的詳細資訊。

修復錯誤

我們來假設你對工作副本做了許多修改,但是現在你不想要這些修改了,這時候 revert 操作將會幫助你。

revert 操作重置了對工作副本的修改。它可以重置乙個或多個檔案/目錄。當然它也可以重置整個工作副本。在這種情況下,revert 操作將會銷毀待變更列表並將工作副本恢復到原始狀態。

解決衝突

合併的時候可能會發生衝突。merge 操作會自動處理可以安全合併的東西。其它的會被當做衝突。例如,"hello.c" 檔案在乙個分支上被修改,在另乙個分支上被刪除了。這種情況就需要人為處理。resolve 操作就是用來幫助使用者找出衝突並告訴版本庫如何處理這些衝突。

提交修改

commit 操作是用來將更改從工作副本到版本庫。這個操作會修改版本庫的內容,其它開發者可以通過更新他們的工作副本來檢視這些修改。

在提交之前,你必須將檔案/目錄新增到待變更列表中。列表中記錄了將會被提交的改動。當提交的時候,我們通常會提供乙個注釋來說明為什麼會進行這些改動。這個注釋也會成為版本庫歷史記錄的一部分。commit 是乙個原子操作,也就是說要麼完全提交成功,要麼失敗回滾。使用者不會看到成功提交一半的情況。

SVN相關操作

1 版本控制 revision control 是維護工程藍圖的標準做法,能追蹤工程藍圖從誕生一直到定案的過程。2 svn簡介 svn subversion 是近年來崛起的版本管理工具,3 svn 這個隱藏目錄記錄著兩項關鍵的資訊 工作檔案的基準版本和乙個本地副本最後更新的時間戳。千萬不要手工修改或...

SVN 相關收藏

將svn管理的php檔案自動加入id php 開發的日誌 網易部落格 讓subversion自動新增id,revision等keywords ls proc fising s blog blog archive 使用 flashfxp 上傳檔案時過濾 svn 目錄的方法 利用svn的post com...

SVN相關命令

1 將檔案checkout到本地目錄 svn checkout path path是伺服器位址 簡寫 svn co 2 檢查本地更新 svn status3 往版本庫中新增新的檔案 svn add file4 將改動的檔案提交到版本庫 如果選擇了保持鎖,就使用 no unlock開關 svn com...