導航:首頁 > 文件處理 > svn修改java文件夾名稱

svn修改java文件夾名稱

發布時間:2023-06-29 00:25:09

A. 如何在MAC環境下使用svn,以及新手在團隊使用svn注意事項

在Windows環境中,我們一般使用TortoiseSVN來搭建svn環境。在Mac環境下,由於Mac自帶了svn的伺服器端和客戶端功能,所以我們可以在不裝任何第三方軟體的前提下使用svn功能,不過還需做一下簡單的配置。
我們首先來看下,如何在Mac環境下搭建svn伺服器端環境。
創建代碼倉庫,用來存儲客戶端所上傳的代碼
我先在/User/apple目錄下新建一個svn目錄,以後可以在svn目錄下創建多個倉庫目錄

打開終端,創建一個mycode倉庫,輸入指令:svnadmin create /Users/apple/svn/mycode
指令執行成功後,會發現硬碟上多了個/Users/apple/svn/mycode目錄,目錄結構如下:

配置svn的用戶許可權
主要是修改/svn/mycode/conf目錄下的三個文件
1.打開svnserve.conf,將下列配置項前面的#和空格都去掉

[java] view plain
# anon-access = read
# auth-access = write

# password-db = passwd

# authz-db = authz
anon-access = read代表匿名訪問的時候是只讀的,若改為anon-access = none代表禁止匿名訪問,需要帳號密碼才能訪問

2.打開passwd,在[users]下面添加帳號和密碼,比如:
[java] view plain
[users]
mj = 123
jj = 456

帳號是mj,密碼是123

3.打開authz,配置用戶組和許可權
我們可以將在passwd里添加的用戶分配到不同的用戶組里,以後的話,就可以對不同用戶組設置不同的許可權,沒有必要對每個用戶進行單獨設置許可權。
在[groups]下面添加組名和用戶名,多個用戶之間用逗號(,)隔開
[java] view plain
[groups]
topgroup=mj,jj

說明mj和jj都是屬於topgroup這個組的,接下來再進行許可權配置。
使用[/]代表svn伺服器中的所有資源庫
[java] view plain
[/]
@topgroup = rw

上面的配置說明topgroup這個組中的所有用戶對所有資源庫都有讀寫(rw)許可權,組名前面要用@
如果是用戶名,不用加@,比如mj這個用戶有讀寫許可權
[java] view plain
[/]
mj = rw

至於其他精細的許可權控制,可以參考authz文件中的其他內容

4.啟動svn伺服器
前面配置了這么多,最關鍵還是看能否正常啟動伺服器,若啟動不來,前面做再多工作也是徒勞。
在終端輸入下列指令:svnserve -d -r /Users/apple/svn
或者輸入:svnserve -d -r /Users/apple/svn/mycode
沒有任何提示就說明啟動成功了

5.關閉svn伺服器
如果你想要關閉svn伺服器,最有效的辦法是打開實用工具裡面的「活動監視器」

綜合上述,我們就可以輕松搭建svn伺服器環境了

B. 我現在想把SVN伺服器裡面的某個文件夾重命名,有沒有一種方法能夠修改SVN的伺服器的文件夾名字。

你要改的伺服器端存放整個版本庫的文件夾的名字,還是版本庫中某個文件夾的名字?
如果是前者,你在伺服器端直接改這個文件夾的名字,改完後客戶端要做一次重定向(relocate);
如果是後者,你直接在客戶端使用SVN自帶的更名操作(切記不是操作系統的重命名操作),然後提交就行了

C. java怎麼修改文件名稱

一般的操作:

Filefile=newFile("word.txt");
Stringfilename=newString("word1.txt");//更改後的文件名
file.renameTo(filename);//更改文件名操作

判斷是否已經更改文件名:

Filefile=newFile("word.txt");
Stringfilename=newString("word1.txt);
if(file.renameTo(filename)){
System.out.println("修改文件名成功");
}else{
System.out.println("修改文件名失敗");
}

file是更改文件名之前的文件,可以為絕對路徑或相對路徑:

絕對路徑可表示為:File file=new File("D:/word.txt");

相對路徑的根文件夾與src文件夾同級,如File file=new File("worddir/word.txt");中的worddir文件夾與src同級

filename是更改文件名之後的文件的文件名(包含後綴)

D. java 文件夾重命名

packagecom.nokia;

importjava.io.File;
/*
**/
publicclassRenameFile{
publicstaticvoidmain(Stringargs[]){
/*
*youshouldchangethepathE://文件夾!*/
Filefl=newFile("E://文件夾");//這里寫上發替換的文件夾路徑,注意使用雙斜杠
String[]files=fl.list();
Filef=null;
Stringfilename="";
for(Stringfile:files){
f=newFile(fl,file);//注意,這里一定要寫成File(fl,file)如果寫成File(file)是行不通的,一定要全路徑
filename=f.getName();
//System.out.println(filename);
/*thestring要替換掉的內容替換成的內容,
*.*/
f.renameTo(newFile(fl.getAbsolutePath()+"//"+filename.replace("要替換掉的內容","替換成的內容")));//這里可以反復使用replace替換,當然也可以使用正則表達式來替換了

}
}
}

E. SVN的操作說明以及備份策略

2.1 文件檢出
安裝TortoiseSVN後,SVN會跟Windows的資源管理器完美集成。點擊右鍵,我們可以在菜單欄中選擇「SVN檢出」選項,輸入要檢出代碼的文件庫的URL地址,我們就可以檢出該URL地址下的文件庫的文件。默認情況下是檢出最新版本的代碼,如果需要,我們可以通過瀏覽日誌,根據日誌來找出想要的版本,然後在「版本」選項中指定相應版本就可以檢出相關代碼了 。
之後,對於同一個項目的主幹開發,我們都在這個檢出的代碼文件目錄下操作,而不是每一次提交或更新都重新檢出一次。
2.2 文件添加
我們在本地創建的文件(包括目錄)不會受SVN的控制,為了讓其接受SVN的控制必須將其添加到文件庫中。對於團隊其他成員需要的文件,如代碼文件、某些模塊的.a文件(由於某些需要,該模塊代碼不公開),我們必須讓它們接受SVN的控制,並且保持最新的版本。
2.3 文件刪除
當我們需要刪除無用的文件(包括目錄)時,不能使用Windows的資源管理工具,而必須使用SVN本身的刪除文件功能。這樣該文件被刪除後,其所有修改歷史仍然保存在SVN伺服器中,以後仍然可以獲得該文件的修改歷史。
2.4 文件改名
當我們需要對文件(包括目錄)進行改名的時,不能使用Windows的資源管理工具,而必須使用SVN本身的文件改名功能。這樣該文件被改名後,其改名前的所有修改歷史仍然保存在SVN伺服器中,保持連續的修改信息。
2.5 文件更新
其他團隊成員提交到SVN上的改動不會自動更新到你的本地拷貝中來,我們需要通過更新文件操作來獲取其他成員對項目文件所做的修改。SVN更新文件操作會把文件庫里的文件與本地文件進行合並,從而達到了同時保留其他成員的修改及本地的修改的目的。如果無法自動合並則會發生沖突,需要使用文件比較工具進行手工合並,合並完成後才能提交已解決沖突的文件。沖突的詳細解決方法見第三章——沖突解決。
在團隊開發時,更新是一件很重要的工作,可以保持團隊成員之間的工作內容一致,因此要注意經常更新自己的工作拷貝,以保證自己能夠獲得最新的修改內容。
2.6 改動提交
我們對文件(包括目錄)所做的一切改動,包括添加、刪除、修改文件都必須提交到SVN伺服器文件庫中才能正式生效,之後團隊的其他成員才可以獲取你所作的修改。
提交是很重要的一項操作,要求做到:
 提交代碼之前一定要保證修改後的代碼能編譯通過,不能提交編譯不通過的代碼。
 比較修改前及修改後的代碼,把調試信息或其他不相關的信息去掉,再次確保提交的代碼是正確的並且提交的是需要提交的文件。
 不要等到修改了很多代碼才提交,而是相關小功能完成時就應該提交一次。這樣以後發現問題時就很容易撤銷有問題的代碼——因為撤銷只能針對一次提交,所以在一次提交里涉及過多的功能是不推薦的。
 提交時必須填寫log信息,說明這次提交增加了什麼功能或者修正了什麼bug。這些信息有助於自己和其他團隊成員了解整個項目的歷史。當出現問題時也方便定位到對應的版本代碼,所以log信息必須足夠詳細。
 事務性提交。也就是說提交要麼成功,要麼全部失敗——即提交出現錯誤時會自動回滾,實際上沒有提交任何東西。出現錯誤時,解決錯誤,再次提交上次提交的全部內容即可。
3. 沖突解決
沖突的解決是我們使用SVN過程中的一個棘手問題,所以獨立一節來談論。
3.1 沖突的產生
沖突發生在多個成員同時對同一個文件進行修改的情形下。即當有其他成員已經提交了修改,而自己在本地拷貝中也對該文件進行了修改,而且修改的是同一個地方,那麼在進行本地文件的更新時,SVN會不知道該選擇那個修改(SVN上的修改還是本地的修改)來進行合並,所以沖突就產生了。
舉例說,假如受SVN控制的文件Day.txt在SVN伺服器上的當前內容如下:
圖表 3 Day.txt文件在本地的修改
我們可以看到,在文本的第一行,SVN上及本地都做了修改。這樣當在本地進行更新(提交之前必須先更新),SVN合並時就不知道monday後面到底該是work還是sleep,所以沖突就產生了。
而第三、五行是各自進行了修改,並沒有沖突,所以這兩行可以順利合並,合並後可以看到所有人所做的修改。
3.2 沖突的解決
沖突發生後,SVN會在本地保存該文件的不同修改版本,見下圖藍色圖標:

圖表 4 Day.txt文件的不同版本
 Day.txt.r35是版本35的Day.txt文件(本地拷貝最新版本)
 Day.txt.r37是版本37的Day.txt文件(SVN上最新版本)
 Day.txt.mine的是本地修改後的Day.txt文件
 Day.txt文件中包含了合並後的內容
3.2.1 簡單沖突解決
對於簡單的內容沖突,我們可以直接在合並後的文件上修改。在上例中,我們打開Day.txt文件,可以看到SVN合並後的內容:

圖表 5 Day.txt合並後內容
我們看到沒有沖突的修改:(play basketball)及(meeting)順利地合並了,而沖突的部分出現了一些標記。其中標記
<<<<<<< .mine
=======
之間包含的是本地修改的沖突部分的內容,即monday(work)。而標記
=======
>>>>>>> .r37
之間包含的是版本37(SVN上最新版本)該部分內容,即monday(sleep)。
不失一般性,假如我們現在要保留的內容是monday(work),那麼我們只要把標記及monday(sleep)部分內容去掉即可:

圖表 6 Day.txt解決沖突後內容
確保修改正確後,把Day.txt文件設置為「已解決的」。

圖表 7 Day.txt標記為已解決
之後,後綴為mine,r35,r37文件全部消失,僅保留已解決沖突的Day.txt文件,提交到SVN即可。
3.2.2 復雜沖突解決
對於文件內容復雜的文件,上述的解決方法容易漏掉一些要修改的部分,解決起來也耗時耗力。這時要通過SVN提供的工具來解決。
選擇SVN功能「編輯沖突」,打開沖突編輯工具:

圖表 8 沖突編輯工具
上半部分的兩個內容欄分別顯示的是版本37的內容及本地修改的內容。
下半部分的內容欄顯示的是合並後的內容。
每個內容欄左邊的標記清楚地標識了該文件做了那些修改。
文件沖突的部分用紅色顯眼地表示了出來。在合並欄,點擊沖突部分,點擊右鍵,我們可以選擇用哪個內容(SVN上最新內容或者本地修改內容)來解決沖突部分,也可以選擇兩個內容都使用,同時選擇它們出現的先後順序。
逐一解決各個沖突。確保所有沖突都解決後,保存文件,並標記為「已解決」的,退出該工具即完成沖突的解決。
4. 加鎖策略
事實上,解決沖突還有一種方法,那就是「嚴格加鎖」。
「嚴格加鎖」要求在編輯文件之前必須先對文件加鎖,然後才能進行編輯。此時團隊其他成員不能對該文件進行編輯,即保證了同一時刻只有一個人在編輯該文件,因此避免了沖突的出現。
那麼,什麼類型的文件我們應該採取「嚴格加鎖」呢?
 Excel、圖片等不可合並的文件,我們必須對其「嚴格加鎖」。「嚴格加鎖」的文件都標記為「可讀」的,即不可編輯。要編輯這些「嚴格加鎖」的文件,必須先對其加鎖,加鎖後文件更改為「可讀可寫」。編輯完這類文件後要第一時間提交。提交完成時,SVN會自動解開任何你擁有的鎖 。
 文本文件,比如程序代碼,SVN通常可以為我們合並改動,無須「嚴格加鎖」。對於一些大家都頻繁改動的重要源代碼文件,可能會引起大量沖突,我們也不推薦「嚴格加鎖」,因為加鎖會導致大家持續得走來走去去詢問加鎖情況。正確做法是把文件分成數個邏輯單元,大家都修改各自的單元,減少合並時的沖突。
5. 標簽&分支
一個項目最初存放的目錄我們稱之為主幹(trunk)。下面我們討論除了主幹之外其他存放項目的目錄——標簽(tag)和分支(branch)。
5.1 標簽(tag)
版本號可以區分多次的代碼修改,我們可以使用版本號來檢出需要的代碼,但對於重要版本的代碼,如第三版發布代碼,我們不希望記住r37這樣的數字。這時,我們就可以通過創建標簽來對SVN中這個發布版本的文件的這個時刻的狀態創建一個「快照」,以後就可以通過這個標簽名字來檢出第三發布版本的代碼。
標簽其實是當前項目文件的簡單拷貝,保存在標簽所在的目錄下。創建標簽也是挺簡單的,不過要注意:
 標簽的名字一定要有描述性,可以僅憑名字就知道為什麼要創建標簽。
 不能過多地使用標簽,只有在重要時刻或者發布版本時才可以創建標簽。
 標簽是項目文件在某個時刻的狀態,不能對其進行修改 。
5.2 分支(branch)
分支跟標簽一樣,也是當前項目文件的簡單拷貝,保存在分支所在的目錄下。
分支跟標簽的根本區別在於,標簽不能對其進行修改,而分支就是為了某種目的的修改而建立的。在檢出代碼時檢出指定分支即可,分支的操作跟主幹上的操作完全相同。
5.2.1 何時創建
遇到下述情況,我們可以通過創建分支來解決問題:
 發布分支
當我們快要發布一個版本了,一個開發小團隊要為這次發布做好准備,比如說修改一些收尾的bug。這時他們需要的是項目的穩定性,而同時我們還有其他團隊要開發預計下次發布才會添加進去的功能,顯然他們不能在同一份代碼上工作,因此我們需要從主幹中建立出一個發布分支,發布團隊都從這個發布分支檢出及提交代碼。當程序被發布之後,這個分支依然是活動的。這樣,如果客戶報告了一些bug,團隊會在這個發布分支中修正它們並視情況合並到主幹中去。
 試驗分支
當我們需要對項目做大范圍的改動,並且這改動對系統的其餘部分有深遠的影響,而我們又不能保證這次改動一定能成功的時候就可以建立試驗分支。如果試驗失敗了,可以廢棄這個分支;成功了我們只要把分支的改動合並到主幹代碼中去就可以了。
其他情況,我們不建議創建分支,更不推薦在分支上創建分支,因為分支過多,合並時的沖突將會是一種難於解決的災難。
5.2.2 合並分支
我們在分支上所修正的bug很可能在主幹上或者其他分支上也存在,因為它們往往來自同一份代碼,所以我們在分支上所做的改動有必要合並到主幹或者其他分支中去。
對於簡單的bug,一次提交就能解決問題的,那麼我們只要記住提交新版本號,然後使用新版本號把改動合並到其他的受影響的主幹及分支中去就可以了。
對於復雜的bug,可能需要多個開發者花幾天的時間提交多次才能修好。這時光用版本號來記住修改的內容就有點勉為其難了。因此,我們可以使用標簽來標記我們修正過程的開始和結束,然後使用這些標簽幫助我們把修正的代碼合並到主幹和其他分支中去。整個過程如下:
① 給分支打個標簽,標記bug修改開始。
② 測試重現bug,修正代碼讓新測試通過。
③ 提交你的改動到SVN上。
④ 重復步驟2、3,直到確定bug已經修正。
⑤ 再給分支打個標簽,標記bug修正結束。
⑥ 使用兩個標簽來把修正的代碼合並到所有其他受影響的主幹和分支上。
6. 注意事項
經常更新
 由於文件可能有多個人修改,應該經常更新你的工作拷貝中的文件,這樣能降低發生沖突的可能性。
測試提交
 提交前先在本地進行測試。不允許將有錯誤的文件提交到SVN伺服器上。
填寫備注
 提交時一定要寫備註:備注有助於其他人(包括三個月後的你自己)理解你對文件所做的修改。
整體提交
 提交文件時注意要提交一項改動所對應的所有文件,不要一次提交一個文件或者一次提交修改了很多功能的一堆文件。
發布標簽
 對於每一個發布的版本都要建立標簽:當用戶告訴你發生某個問題時,你可以迅速地追蹤到問題是在哪個版本引入的 。

附:測試自動化小組SVN使用指導原則
1. Project的構建
Project在SVN伺服器上的目錄架構如下:

SVN上的項目文件:
1. 必須保證Trunk上的代碼是最新的!定期對Trunk上的代碼進行更新,各小組可根據各自實際情況自己把握
2. Tag是根據項目需要所打的標簽,每一個發布的版本都要打Tag,主要是方便有需要時可以直接根據Tag返回到之前的狀態,以便於分析、測試;Tag中必須包含相應的release文件及當時編譯或發布時的源代碼,必須有相關的文檔註明項目背景、發布情況等。
3. Branch文件夾可以用作備份用,可以用個人名字命名文件夾;此外,Branch分支主要用來進行短暫或者探索性的開發使用,最終的軟體版本必須更新、合並到Trunk主幹上。
4. 關於同一項目組開發環境的建議:同一項目組成員的開發環境最好一致,軟體安裝路徑和Project文件存放路徑最好一致。
2. 版本號
關於版本號命名規則:主版本號.子版本號.修正版本號
1. 項目初版本時,版本號為0.1.0;
2. 當項目在進行了局部修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1;
3. 當項目在原有的基礎上增加了部分功能時,主版本號不變,子版本號加 1,修正版本號復位為 0;
4. 當項目在進行了重大修改或局部修正累積較多,而導致項目整體發生全局變化時,主版本號加 1,子版本號和修正版本號復位為0;
5. 編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,如果編譯器不能自動生成,人手添加,數值代表為當前的系統時間。
例子:V1.0.1 Build090305 Rel111123
其它版本使用規則:
1. α(alphal)內部測試版
此版本表示該軟體僅僅是一個初步完成品,只在組內內部交流,該版本軟體的 bug 較多,限內部測試使用。
例子:V0.1.1 Build090305 alphal1
2. β(beta)外部測試版
該版本相對於α版已有了很大的改進,經過組內的測試,消除了嚴重的錯誤,但還是存在著一些缺陷,需要經過大規模測試來進一步消除。
例子:V0.1.2 Build090305 beta1
3. demo 演示版
僅限評審或講解時做介紹使用。
例子:V0.1.3 Build090305 demo1
4. release 最終版
該版本意味「最終釋放版」,在出了一系列的測試版之後,終歸會有一個正式版本,一般情況下,release不會以單詞形式出現在軟體封面上,取而代之的是符號 (Rel) 。release版本發布時,必須將待發布的軟體和相應版本更新記錄打包在一起發出。
例子:V1.0.1 Build090305 Rel111123
3. 許可權限制
如果項目本身需要對項目組成員作不同的許可權控制,可以考慮維護兩個工程:一個工程裡面有相應的源文件,一個則只有編譯後的文件。
4. 模塊的版本維護
1. 文件一般不需要版本,但要有詳細的更新歷史記錄;
2. 模塊可以以版本來維護,具體可以不同的文件夾區分。

F. svn info對應git什麼命令

svn命令列舉:
svn checkout :從伺服器上下載一份新的代碼到本地
svn up:在本地代碼目錄下執行,與伺服器上最新代碼保持同步
svn status:在本地代碼目錄下執行,查看當前目錄下的本地改動情況,可簡寫為svn st
svn revert <file-name>:在本地代碼目錄下執行,撤銷對<file-name>文件的改動,恢復到未改動前狀態。
svn diff <file_name>:在本地代碼目錄執行,查看對文件<file-name>的修改。
svn log -l4:查看當前目錄下的最新的4條修改歷史,可改為-l5,-l6,-l10 (注意是小寫的"L")
svn info:查看當前代碼版本信息
svn commit:提交修改的代碼到伺服器;

閱讀全文

與svn修改java文件夾名稱相關的資料

熱點內容
linux文件操作命令 瀏覽:125
安卓手機圖片文件夾加鎖 瀏覽:778
steam提示音在哪個文件夾 瀏覽:337
項目開發全程實錄pdf 瀏覽:530
單片機reset 瀏覽:595
pdf怎麼是英文 瀏覽:969
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:371
php去掉小數後面的0 瀏覽:954
阿里備案買什麼伺服器 瀏覽:261
網路驅動下載到哪個文件夾 瀏覽:481
達內程序員培訓西安 瀏覽:505
人保送車主惠app上怎麼年檢 瀏覽:604
android手機開機密碼 瀏覽:480
linux查看某個進程命令 瀏覽:529
閑置的騰訊雲伺服器 瀏覽:438
rar壓縮包mac 瀏覽:628
php混淆加密工具 瀏覽:582
java把數字拆分 瀏覽:466