svn
SVN 1.10+Subversion(SVN)命令快速參考:checkout、update、commit、branch/tag、merge、歷史檢視與倉庫管理——附常用參數與實作範例。
28 條命令
入門
svn checkout <url> [<dir>]從倉庫取出工作副本;首次取得專案檔案時使用。
-r <rev> 指定版本;--depth empty|files|immediates|infinity
svn checkout https://svn.example.com/repo/trunk ./my-projectsvn info顯示工作副本或 URL 的資訊:URL、版本、最後修改時間等。
svn info .日常操作
svn update把工作副本與倉庫同步;可能會合併伺服端的變更。
-r <rev> 同步到指定版本;--accept postpone|base|mine-full|theirs-full|edit|launch
svn update --accept postponesvn status顯示工作副本狀態:修改、新增、刪除、未追蹤的檔案。
-u 顯示伺服端過時資訊;-v 詳細;--quiet 隱藏未追蹤項目
svn status -usvn add <path>將檔案或目錄排入下一次提交的加入清單。
-N 非遞迴(只處理目錄本身);--force 加入已在版本控管的項目
svn add src/utils/ helpers/svn delete <path>從工作副本移除檔案或目錄,並排定於下一次提交時刪除。
--keep-local 保留本地檔案(伺服端不刪除)
svn delete obsolete/old-config.jsonsvn commit -m "<msg>"把本地修改連同日誌訊息送回倉庫。
-m 內聯訊息;-F <file> 從檔案讀取訊息;--no-unlock 保留鎖定
svn commit -m "feat: 新增登入表單驗證"svn diff顯示路徑或版本之間的 unified diff。
-r <rev1>:<rev2> 比較版本;-c <rev> 顯示某個版本帶來的變更;--diff-cmd / -x
svn diff -r HEAD~5:HEAD --summarizesvn revert <path>捨棄本地修改,把檔案/目錄還原成 pristine 狀態。
-R 遞迴;--depth infinite
svn revert -R .分支與標籤
svn copy <src> <dst>在倉庫內以複製方式建立分支或標籤(廉價複製)。
-r <rev> 從指定版本複製;-m 訊息
svn copy ^/trunk ^/branches/feature-x -m "branch: feature-x"svn switch <url>讓工作副本指向其他分支/標籤,無需重新 checkout。
-r <rev> 切換到指定版本;--relocate 重寫 URL 前綴
svn switch ^/branches/feature-xsvn list <url>列出倉庫某目錄下的項目,不取出檔案。
-v 詳細;-r <rev>
svn list -v ^/tags/合併與衝突
svn merge <url[@rev]>把兩個來源/分支之間的差異套用到工作副本。
-c <rev> / -r <rev1>:<rev2> 指定要合併的版本;--record-only 僅作合併追蹤
svn merge ^/trunk -c 12345svn merge --reintegrate <url>把 feature 分支合併回來源分支(舊式做法,1.8 之前)。
svn merge --reintegrate ^/branches/feature-xsvn resolve <path>在 merge/update 之後解決衝突檔案。
--accept base|mine-full|theirs-full|working|theirs-conflict|theirs-full
svn resolve --accept theirs-full conflict.txt歷史與檢視
svn log顯示檔案或倉庫的提交日誌。
-r <rev1>:<rev2> 範圍;-l <n> 限制筆數;-v 詳細路徑;--xml
svn log -l 20 -vsvn blame <file>逐行顯示作者與版本(praise/annotate)。
-r <rev> 以指定版本為基準標註;-v 含版本說明
svn blame src/index.ts | tail -20svn cat <url>[@rev]在不下載的情況下顯示指定 URL/版本的檔案內容。
svn cat ^/trunk/README.md@HEAD屬性與鎖定
svn propset <prop> <value> <path>為檔案或目錄設定屬性(如 svn:ignore、svn:executable、svn:mime-type)。
-F <file> 從檔案取值;--revprop 設定倉庫 revprop
svn propset svn:ignore "node_modules\n.DS_Store" .svn propedit <prop> <path>在編輯器中開啟屬性值以進行修改。
svn propedit svn:ignore .svn lock <target>鎖定檔案,避免其他用戶端提交(需要伺服端啟用相關設定)。
-m "原因";--force 強制取得別人的鎖
svn lock images/banner.png -m "發佈前編輯中"svn unlock <target>解除檔案或目錄上的鎖定。
--force 強制解除他人的鎖
svn unlock images/banner.png倉庫與清理
svn cleanup清理工作副本:移除鎖定、修正時間戳、完成未完成操作。
--diff3-cmd / --remove-unversioned 順便清掉未追蹤項目
svn cleanup /path/to/wcsvn export <url> [<dir>]匯出乾淨的目錄樹(不含 .svn 中繼資料)——打包發佈很實用。
-r <rev> 指定版本;--force 覆寫既有檔案
svn export ^/tags/v1.2.0 ./release-1.2svn import <path> <url> -m "<msg>"把尚未加入版控的目錄樹一次性匯入倉庫。
--no-ignore 包含被忽略的檔案;--auto-props 套用 auto-props
svn import ./src ^/trunk -m "initial import"svn relocate <from-prefix> <to-prefix>改寫工作副本內儲存的倉庫 URL 前綴(伺服器搬家時使用)。
--strict 不符合的前綴會拒絕處理
svn relocate https://old.svn.example.com https://new.svn.example.comPatch
svn diff > patch.diff產生 unified diff,方便分享或用 svn patch 套用。
svn diff > /tmp/feature-x.patchsvn patch <patch-file>套用 svn diff 產生的 unified diff 到工作副本。
--dry-run 預覽;--reverse-cmd
svn patch --dry-run /tmp/feature-x.patch相關命令速查
商標與使用聲明
本批命令列工具速查手冊為開源社群參考資料。文中涉及的各工具的名稱、標識、商標(如 Git™、Docker™、Kubernetes®、kubectl、PostgreSQL®、MySQL®、Redis™、MongoDB®、Linux™、PowerShell™、Vim™ 等)均歸對應權利人所有,此處僅為識別與參考之目的使用。
本速查手冊的全部內容均為獨立編寫的簡化自包含參考,**與任何官方文件不存在隸屬、被認可或引用關係**。命令列表、參數說明、範例均為作者原創簡化表達;如需權威資訊,請參閱各工具的官方文件。
命令語法與參數可能在不同工具版本中有所差異。所示版本標籤對應穩定發佈版本;其他版本行為可能有所不同。本速查手冊**不代表**商標權利人的任何偏好或推薦。
如商標或版權方認為本站部分內容存在權益侵害,請發送電郵至[email protected],我們在收到有效權屬證明後,會在合理期限內修改或移除相關內容。
本網站不對因使用本站資訊而產生的任何直接或間接損失承擔法律責任。
關於 Apache Subversion
Apache Subversion(通常簡稱 SVN)係一個開源集中式版本控制系統,由 CollabNet 喺 2000 年首次發佈,而家由 Apache 軟件基金會管理。SVN 將單一權威歷史保存喺伺服器(通常經 Apache HTTP 或 `svnserve` 提供服務),每次提交對應一個全域單調遞增嘅版本號,呢一點同 Git 嘅內容雜湊截然不同。當前穩定版係 Subversion 1.14+。SVN 將儲存庫模擬為檔案系統樹,三種後端格式(FSFS 由 1.4 起為預設)、支援用目錄做廉價分支、原子提交、屬性中繼資料、外部參照(共用元件),以及自 1.5 起嘅合併追蹤。佢喺企業、政府、遊戲/媒體工作室仍然有大量使用——呢啲場景着重中央權威歷史同基於路徑嘅細粒度存取權限,而唔係離線分支。當組織強制要求集中式 VCS、需要用鎖定嚟版本管理大型二進位資產、或維護緊遺留 SVN 儲存庫嘅時候,就應該揀 SVN。SVN 明文 HTTP 唔加密,喺生產環境務必行 HTTPS 或 `svn+ssh`。
速查頁版本 1.0.0