SVN 基本指令教學

SVN 基本指令教學

NFS mount for svn that need add nolock option

172.22.13.97:/nas/NAS-00066/fds/Share on /mnt/nfs type nfs (rw,nolock,addr=172.22.13.97)

 

SVN 的基本指令介紹, 主要參考自下述:

主要 SubTrain 的 PPT 前面頁數看一看, 基礎就大概都知道了, 後面頁數太進階了, 目前用不到, 以後再看. XD

PS: 如果不知道 SVN 是什麼, 可見此文: 淺談版本控制系統, 裡面連結檔案看完, 應該就很清楚了

 

先來看 SVN Trunk/Tags/Branches 目錄 的 架構 和 用途:(英文說明轉載自 SubTrain PPT)

  • trunk: Main line of development(主幹, 主要開發都由在 trunk)
  • tags: Releases (想要 Release 的時後, 就標個 Tag, 以後可以依 Tag 來找回之前版本的資料)
  • branches: Preparation of release, bug fixing(分支, 可以將某些功能切出來, 或者 bug fix 等切成分支, 等做完後再用 Merge 合併回來)

SVN 基本功能:

Import: 將整個 project_directory 的資料 import 進 svn 裡面

  • svn import project_directory http://DOMAIN/svn_project
  • svn import project_directory file:///SVN_PATH/svn_project

Checkout: (checkout 可簡寫成 co), 將資料 checkout 回來

  • svn co http://SVN_PATH/svn_project
  • svn co file:///SVN_PATH/svn_project
  • svn co -r 12 file:///var/lib/svn/dev/projects # 出第12版的 projcets code

List: (list 可簡寫成 ls), 看上面有哪些檔案/資料

  • svn ls http://SVN_PATH/svn_project
  • svn ls file:///SVN_PATH/svn_project

Update: (update 可簡寫成 up), 將目前資訊更新成 SVN 線上最新版本.

  • SVN_CHECKOUT_DIR$ svn up

Commit: (commit 可簡寫成 ci), 將目前所做的修改 commit 回 svn

  • SVN_CHECKOUT_DIR$ svn ci

Status: (status 可簡寫成 st), 看目前檔案/結構 跟 SVN 線上的版本有哪些不同

  • SVN_CHECKOUT_DIR$ svn st

Add: 將此 檔案/目錄 新增進 svn

  • SVN_CHECKOUT_DIR$ svn add filename 或 svn add directory

MV: 改檔名, 並且此檔案之前紀錄還要繼續留下

  • SVN_CHECKOUT_DIR$ svn mv filename new_filename

Revert: 還原這次的修改, 回到前一版的檔案狀態(未 commit 前可用)

  • SVN_CHECKOUT_DIR$  svn revert [file | directory]

SVN 檔案狀態資訊:

  • ?: 此檔案不存在 SVN 裡面
  • A: 此次新增的檔案
  • C: 此檔案已經有人改過, 合併不成功, 需要人工介入
  • D: 此次移除的檔案
  • M: 此檔案有修改過
  • U: 此檔案有被更新過

再來是比較進階一點點, 下述範例轉載自 SubTrain 的教學 PPT:

建立一個 branch

  • svn copy http://svnserver/calc/trunk http://svnserver/calc/branches/my-calc-branch -m 'create a branch' 

建立 Release Tags:

  • svn copy http://svnserver/calc/trunk http://svnserver/calc/tags/Release-1.0.0 -m 'create Release tags for Release 1.0.0'

合併兩個版本的檔案 # 參考自: 用 Subversion 的 Merge 來 Undo

  • svn merge -r REV1:REV2 {path/to/workingcopy}
  •  (UNDO) svn merge -r 1234:1233 …
  •  (MERGE)svn merge -r 1233:1234 …
  • svn merge –dry-run -r 343:344 http://svn.example.com/repos/calc/trunk

有 "C" 狀態處理完後, 用 resolved  將自動產生的檔案刪除, 才能正常 commit:

  • svn resolved filename # 這樣子下就會把自動產生 diff 等的檔案刪除

找版本間有什麼不同 diff:

  • svn diff # 自動以現在檔案跟 SVN 內最新版做 diff
  • svn diff -r9237:9238

Info: 列出現在路徑, 版本編號, 最後一次修改日期 … 等資訊

  • svn info

Log: 如果沒輸入參數, 預設會把所有 commit log 都列出來

  • svn log
  • svn log -l 10 # 顯示 10 筆(最新 10筆 Log)
  • svn log -c 100 # 顯示 revision 100 的 Log
  • svn log -v -c 100 # 顯示  revision 100 的詳細 Log

Propset (propset, pset, ps): 版本控制都有些特殊 Keyword 設定, 如 Id 就是最常用的, 設定方法如下:

  1. 在檔案內找地方加入 $Id$
  2. 設定此檔案要能吃 Id 的 Keyword: svn ps svn:keywords 'Id' filename (只需設一次即可, 之後就不用再設)
  3. svn ci 後, $Id$ 會自動代換成 $Id:filename 編號 年月日時分秒 username $ 的資訊
  4. svn help ps 可以看到有哪些 Keyword 可以用, 即 Keyword 的說明.(ex: URL, Author, Date, Rev, Id 等.)

其它 SVN Client:

SVK 相關介紹:

其它相關網頁

Read more

How to document Home Lab and Network

運維機房和跨域的網路,會遇到各式需求與問題,用對工具才能分析問題,個人覺得最重要的是使用能處理問題的工具。 推薦目前想學和正在使用的平台與軟體,協助將公司/家用機房文件化 佈告欄任務管理 Focalboard 白板可管理任務指派 網路架構文件編寫 netbox 精細管理網路設備與連接線路 IP 資源管理 phpipam 專注網路IP分配 邏輯塊文件編寫 draw.io 視覺化概念圖 機房設備管理 ITDB 管理設備生命週期與使用者

By Phillips Hsieh

如何在Raspberry Pi4上安裝Proxmox for ARM64

第一步 準備好Raspberry Pi 4 / CM4 4GB RAM,這裡要留意CM4如果是買有內建eMMC storage會限制不能使用SD卡開機而限制本地空間容量,如果沒有NAS外接空間或使用USB開機的話,建議買CM4 Lite插上大容量SD卡 第二步 去Armbian官網下載最小化Debian bookworm image https://www.armbian.com/rpi4b/ Armbian 25.2.2 Bookworm Minimal / IOT 然後寫入SD/USB開機碟,寫入方法參考官方文件 https://github.com/raspberrypi/usbboot/blob/master/Readme.md Note: 官方提供的預先設定系統方法,可以在Armbian初次啟動自動化完成系統設定。連結在此 https://docs.armbian.com/User-Guide_Autoconfig/

By Phillips Hsieh

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh

知識管理的三個步驟:一小時學會把知識運用到生活上

摘錄瓦基「閱讀前哨站」文章作為自己學習知識管理的內容 Part1「篩選資訊」 如何從海量資訊中篩選出啟發性、實用性和相關性的精華,讓你在學習過程中不再迷失方向。 1. 實用性 2. 啟發性 Part2「提高理解」 如何通過譬喻法和應用法,將抽象的知識與日常生活和工作緊密結合,建立更深刻的理解。 1. 應用法 2. 譬喻法 Part3「運用知識」 如何連結既有知識,跟自己感興趣的領域和專案產生關聯,讓你在運用知識的路途上游刃有餘。 1. 跟日常工作專案、人際活動產生連結 # 為什麼要寫日記? * 寫日記是為了忘記,忘卻瑣碎事情,保持專注力 * 寫日記就像在翻譯這個世界,訓練自己的解讀能力 * 不只是透過日記來記錄生活,而是透過日記來發展生活 #如何寫日記? * 不要寫流水帳式的日記,而是寫覆盤式的日記 當我們試著記錄活動和感受之間的關聯,有助於辦認出真正快樂的事 日記的記錄方式要以過程為主,而非結果 * 感恩日記的科學建議,每日感恩的案例

By Phillips Hsieh