1. 程式人生 > >【SVN】徹底 svn 服務器上的 刪除某一個文件或文件夾

【SVN】徹底 svn 服務器上的 刪除某一個文件或文件夾

路徑 版本庫 dir svn 服務器 用戶權限 改變 服務端 get 上傳

參考:

  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,根本空間不夠去玩很多想要玩的編程知識

【SVN】徹底 svn 服務器上的 刪除某一個文件或文件夾