1. 程式人生 > >【SVN】徹底 svn 伺服器上的 刪除某一個檔案或資料夾

【SVN】徹底 svn 伺服器上的 刪除某一個檔案或資料夾

參考:

  CSDN1:https://blog.csdn.net/u011729865/article/details/78764523

  CSDN2:https://blog.csdn.net/wyyother1/article/details/80061952

1、注意一下,我客戶端是在 windows 系統下,而 svn 的服務端是在 Linux 系統中。

 

2、可以來到,我們這邊一開始有一個用來測試刪除用的檔案 和 資料夾: 用來刪除用的測試.txt、用來測試刪除用的資料夾 

 

3、然後我們通過 移動到回收站(或者 Shift + del 鍵的徹底刪除後)後,提交

 

 

4、雖然在最新的版本中,我們看不到上面刪除的 檔案 / 資料夾。

 

5、但在前面的版本中,我們還是能看到的。

6、這個時候要徹底刪除 svn 伺服器 版本庫中,所有版本中的這兩個檔案 / 檔案,按下面步驟操作:

  (a)、先備份 你要刪除的該 svn 版本庫,我這裡的版本庫是 叫 test,可以看到,我這邊一共有 7個版本,都已經備份好了,名字叫 a.dump。

svnadmin dump 版本庫路徑 > 備份後的名字.dump

 

  (b)、然後,因為我們不改變版本庫的名稱,所以要先把 test 的版本庫改變名稱,然後,新建一個新的 test 版本庫

mv test test11 # 把 test 資料夾 重新命名為 test11
mkdir test # 建立名為 test 的資料夾
svnadmin create test # 建立版本庫,其實不需要上面的 mkdir test 也可以,因為這條命令已經包含了,新建
rm -rf test/conf #徹底刪除新建版本中 conf 的配置,為了保持原本使用者許可權等資訊
cp -r test11/conf test/ # 把原來的 test 版本庫 的配置直接複製一份到 新的 test 中。

  (c)、過濾掉不要的 資料夾 和 檔案

cat a.dump | svndumpfilter exclude 在版本庫中的路徑 以 / 開頭,有多個要過來的,用空格隔開
> test.dump

   (d)、然後把備份放回新的同名倉庫中。

svnadmin load ./test < test.dump #注意,這邊的 < 跟上面的是不一樣的。上面的是 > 

 

 

7、執行完上面的,就重啟 svn 伺服器。

 

8、為什麼要徹底刪除呢整個版本庫中的檔案,拿 web 前端專案來比如:

  1、vue-cli 安裝 node 包之後,或多出來一個 node_module 資料夾

  2、node_module 下面是所有的 node 包,但其實這個包是不應該上傳到 svn 的,因為我們只要拿到它的配置檔案 package.json 就能安裝好。

  3、像我這種窮人,租了個騰訊雲只有 40G ,如果那些 node 包都上傳上去,動不動就幾百M,根本空間不夠去玩很多想要玩的程式設計知識