刪除svn中指定的檔案以及合併svn版本庫

2021-07-09 10:11:24 字數 1598 閱讀 7515

一、如何徹底刪除svn中的檔案或目錄

假設svn專案的目錄為 g:\svn\myproj, 裡面有 test/readme.txt 檔案和 work/sound/目錄,其中test和work是在g:\svn\myproj下的頂層目錄,

即路徑分別為g:\svn\myproj\test和g:\svn\myproj\work\sound

1)首先將svn庫整個匯出

svnadmin  dump  g:\svn\myproj   >  myproj.dump

2)將myproj.dump檔案裡面不需要的檔案進行排除並生成乙個新的dump檔案

type  myproj.dump  |  svndumpfilter  exclude  test/readme.txt   work/sound    --drop-empty-revs   --renumber-revs  --quiet   > drop.dump

這樣readme.txt 檔案和sound目錄就被排除了。

--drop-empty-revs: 刪除因過濾而產生的空版本

--renumber-revs :過濾後重編餘下的版本

--quiet : 不顯示過濾的統計資料

其中 --quiet引數或者其他兩個引數有可能不支援,如果生成drop.dump的命令出錯,建議按個去掉這幾個引數再進行嘗試

exclude命令是排除指定檔案或目錄,與之相反,include命令是只儲存指定檔案或目錄,例如:

type  myproj.dump  |  svndumpfilter  include  test/readme.txt   work/sound    --drop-empty-revs   --renumber-revs   > d:\drop.dump

這樣就只保留了readme.txt檔案和work/sound目錄,其他都刪除了

3) 建立新的svn專案並將上面的dump檔案匯入到新專案中

svnadmin create  g:\svn\newproj

svnadmin  load  g:\svn\newproj  <  d:\drop.dump

這樣一來,徹底刪除svn版本庫中部分檔案或目錄的工作就完成了。

二、合併版本庫

假設有g:\svn\repos1和g:\svn\repos2兩個版本庫,且repos1版本庫比較小,因此要把repos1匯入到repos2中

1) 檢視repos1的最新版本號

svnlook  youngest g:\svn\repos1

得到最大版本號為81

2) 增量匯出

svnadmin  dump  g:\svn\repos1   -r  0:81  --incremental  > d:\repos1.dump

3) 匯入

假設repos2下面有work/test目錄(全路徑是g:\svn\repos2\work/test):

svnadmin  load  g:\svn\repos2   --parent-dir  work/test < d:\repos1.dump

--parent-dir:指定匯入repos2版本庫的哪個目錄下

這樣就完成了repos1版本庫和repos2版本的的合併,最終所有的資料都存在repos2上。

刪除檔案中指定的一行

完美solution def removeline filename,lineno fro open filename,r 檔案用於讀取 current line 0 while current line lineno fro.readline current line 1 將檔案指標定位到想刪除行...

刪除單鏈表中指定的節點

include stdafx.h include include include using namespace std struct node 建立單鏈表 node createsinglelist int arr,int n return head 輸出單鏈表 void print node h...

Python 刪除列表中指定的元素

remove方法用於按值刪除元素,返回值為none pop方法用於按下標刪除元素,返回值為刪除的元素。remove方法用於按值刪除元素,返回值為none pop方法用於按下標刪除元素,返回值為刪除的元素。l c d e f print l 推薦 res l.remove e print l,res ...