非官方
本頁內容
  1. 01啟用模組
  2. 02建立儲存庫或儲存桶
  3. 03授予權限
  4. 04檢出 SVN 儲存庫
  5. 05將儲存桶連接為網路磁碟機
  6. 06歷史紀錄與較舊的版本
  7. 07在網頁上顯示儲存庫
  8. 08兩步驟驗證與應用程式密碼

位於 NAS 上的 SVN 儲存庫與版本化儲存桶

Bucket & Code Server IDE 提供 Subversion 儲存庫和儲存桶。儲存桶(面板上稱為 Bucket)是一種網路磁碟機(WebDAV),會把每次儲存的檔案都保存為一個修訂版本,因此任何較早的版本都能讀取或放回去。使用者用自己的面板帳號登入這兩者。

  1. 模組SVN & Bucket 已開啟
  2. 建立儲存庫或 Bucket
  3. 權限依帳號設定
  4. 連線svn、Finder、davfs2、rclone
  5. 回復任何較早的版本

應用程式密碼卡片取自面板的測試資料。儲存庫名為 docs,儲存桶名為 shared,NAS 位址為 192.168.1.20。

01開啟模組

在總覽上,管理員按下它卡片上的開啟 SVN & Bucket。模組就緒後,卡片會顯示執行中。

關閉時總覽上的 SVN & Bucket 卡片:內含 mod_dav_svn 的 httpd、其提供的功能,以及「開啟 SVN & Bucket」按鈕

02建立儲存庫或 Bucket

在 SVN 與 Bucket 頁面,管理員按下新儲存庫或 Bucket。

  1. 選擇SVN 儲存庫以使用 svn checkout 與 commit;或選擇Bucket,取得不需 SVN 用戶端的網路磁碟機。
  2. 輸入名稱。它會成為位址:/svn/docs 或 /bucket/shared。
  3. 若是建立儲存桶,請保留 拒絕 macOS 的 ._* 和 .DS_Store 檔案 的勾選。Finder 複製每個檔案時都會在旁邊寫入這些檔案;若被拒絕,它們就不會成為修訂版本。此選項之後無法更改。
  4. 按下 建立。
新儲存庫或 Bucket:已選擇 SVN 儲存庫,名稱 docs,位址 /svn/docs,以及「建立」按鈕新儲存庫或 Bucket:已選擇 Bucket,名稱 shared,位址 /bucket/shared,已勾選「拒絕 macOS 的 ._* 和 .DS_Store 檔案」

刪除儲存庫或儲存桶時,它會移到資料資料夾中的垃圾桶,內建的工作會在 7 天後清空垃圾桶。

03設定權限

新的儲存庫或儲存桶只有管理員能存取。該列上的人形圖示會開啟 docs 的權限。其他所有人 設定未列出帳號的權限;需要更多權限的帳號,再分別設為 read 或 讀取和寫入,然後按 儲存。這些權限同樣適用於 SVN、WebDAV 和面板中的瀏覽器。管理員永遠具有讀取與寫入權限;檢視者最多只能讀取。

docs 的權限:其他所有人無存取權,開發者 ola 獲得讀取和寫入權限,以及「儲存」按鈕

04檢出 SVN 儲存庫

SVN 與 Bucket 頁面會顯示含有儲存庫位址的簽出指令。任何 Subversion 用戶端(svn、TortoiseSVN、IDE 的 SVN 支援)都能用面板的使用者名稱與密碼連線。提交需要讀取與寫入權限。

SVN 儲存庫:svn checkout "https://192.168.1.20:9951/svn/docs"

NAS 一開始會以自簽憑證回應 HTTPS,因此用戶端會要求您信任它,或直接拒絕連線。網路 頁面會顯示其指紋,供您比對。

05將儲存桶連接為網路磁碟機

同一頁面會為每個系統列出儲存桶的位址。

  • macOS:在 Finder 中選擇 Go → Connect to Server(⌘K),然後輸入 https://192.168.1.20:9951/bucket/shared/。 儲存桶作為網路磁碟機,macOS:在 Finder 中選擇 Go,然後選 Connect to Server,接著輸入 https://192.168.1.20:9951/bucket/shared/
  • Linux:使用 davfs2 掛載,或新增類型為 webdav、廠商為「other」的 rclone 遠端,並掛載該遠端。 儲存桶作為網路磁碟機,Linux:使用儲存桶位址執行 sudo mount -t davfs,或執行 rclone mount nas-shared: ~/shared --vfs-cache-mode writes
  • Windows:檔案總管的 WebClient 只會在 Windows 信任憑證的 HTTPS 連線下登入,因此檔案總管需要在 NAS 前方設置使用正式憑證的反向代理。若沒有反向代理,請改用 WinSCP 或 Cyberduck(支援 TLS 的 WebDAV),或使用 rclone;在 Windows 上執行 rclone mount 需要 WinFsp。 儲存桶作為網路磁碟機,Windows:關於檔案總管與受信任憑證的說明、WinSCP、Cyberduck 或 rclone,以及儲存桶位址

每次儲存都會成為一個修訂版本,並附上帳號名稱與時間。許多用戶端會先寫入一個空檔案,再寫入資料,因此一次儲存可能產生兩個修訂版本。被拒絕的 macOS 檔案不會讓用戶端出現錯誤,只是永遠不會成為修訂版本。

06歷史紀錄與舊版本

開啟檔案並按下此檔案的歷史記錄。每個修訂版本都有其訊息、作者、檢視、與前一版的差異比對、下載與還原。

/trunk/README.md 的歷史紀錄:r3 修正建置指令,r2 說明發布步驟,r1 新增 README,每筆都有檢視、差異、下載與還原

具有讀取和寫入權限的帳號,在舊版本上會看到 還原此版本。它會要求輸入提交訊息,並將舊內容儲存為新的修訂版本,因此其後的版本仍保留在歷史紀錄中。

README.md 在 r2 時的內容,並有按鈕:此檔案的歷史紀錄、下載 r2 與還原此版本 還原此版本?:提交訊息 將 /trunk/README.md 還原為 r2,以及還原 r2 按鈕

儲存桶保有相同的歷史紀錄。其修訂版本標示為autoversioned:表示是 WebDAV 用戶端儲存了該檔案。

儲存桶中 /price-list.txt 的歷史紀錄:三個修訂版本,每個都標示為 autoversioned

07在網路上顯示儲存庫

列上的網頁公開開關(管理員)會讓任何持有位址的人,無需帳號即可取得唯讀頁面,檢視檔案、歷史紀錄與差異比對。在網頁上檢視會開啟它:儲存庫為 https://192.168.1.20:9951/svn-web/docs/,儲存桶為 /bucket-web/<name>/。

儲存庫與 Bucket:docs、SVN、r3、已開啟「網頁公開」並有「在網頁上檢視」;shared、Bucket、r3、macOS 的 ._* 檔案不儲存、「網頁公開」已關閉 docs 的公開頁面:trunk 中 r3 的檔案,README.md,105 B,於 r3 由 ola 變更修訂版 3 的公開頁面:修正建置指令,/trunk/README.md 已修改,以及其差異內容
  • 這些頁面不會更動任何內容。svn 與 WebDAV 用戶端仍需登入,公開儲存庫也一樣。
  • 非公開的儲存庫與不存在的名稱會得到相同的回應,因此從這些頁面看不出哪些名稱存在。頁面也會要求搜尋引擎不要建立索引。

08兩步驟驗證與應用程式密碼

啟用兩步驟驗證的帳戶,在 SVN 與 WebDAV 用戶端中不使用其密碼。在該帳戶頁面,建立應用程式密碼會顯示一次隨機產生的密碼。新的應用程式密碼會取代舊的;變更帳戶密碼或關閉兩步驟驗證,都會移除應用程式密碼。

WebDAV 與 SVN 的應用程式密碼:尚無應用程式密碼,以及「建立應用程式密碼」按鈕

15 分鐘內輸錯 5 次密碼,該帳戶在那個位址上會被鎖定 15 分鐘,那個位址本身也會被鎖定 15 分鐘,與面板登入時相同。使用者指南列出 WebDAV 用戶端及其限制。