1. 批處理怎麼更新SVN的單個文件
方法如下:
代碼:
@echo off
:loop
set name=
set /p name=把要更新的文件拖至此處:
rem 更新目錄
rem svn update d:\server
rem 更新某個文件
svn update %name%
goto loop
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。
2. svn更新時提示文件不在版本控制范圍內,更新失敗
①進入D:\DevWorkSpace\SVNSpace\MyERP目錄
②創建一個文件test.txt
③執行svn commit命令,運行結果是
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E200009: 提交失敗(細節如下):
svn: E200009: 「D:\DevWorkSpace\SVNSpace\MyERP\test.txt」 尚未納入版本控制
說明一個文件必須納入版本控制才可以提交到伺服器端。
④執行svn add命令,將test.txt納入版本控制
D:\DevWorkSpace\SVNSpace\MyERP>svn add test.txt
A test.txt
⑤再次執行svn commit命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E205007: 提交失敗(細節如下):
svn: E205007: 無法使用外部編輯器獲得日誌信息;考慮設置環境變數 $SVN_EDITOR,或者使用 –message (-m) 或 –file (-F) 選項
svn: E205007: 沒有設置 SVN_EDITOR,VISUAL 或 EDITOR 環境變數,運行時的配置參數中也沒有 「editor-cmd」 選項
此時要求附加日誌信息
⑥使用-m參數附加日誌信息
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m 「My first commit」 test.txt
svn: E170001: 提交失敗(細節如下):
svn: E170001: 認證失敗
原因是沒有許可權
⑦暫時先開啟匿名訪問許可權
[1]進入對應的版本庫目錄下的conf目錄:D:\DevRepository\Subversion\ERP\conf
[2]打開svnserve.conf
[3]將第19行的# anon-access = read改為anon-access = write,也就是去掉「# 」,將read改為write。注意前面不要留空格,一定要頂格寫。
[4]不需要重啟SVN服務,甚至命令行窗口都不需要重新打開。
⑧重新執行提交命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m 「My first commit」 test.txt
正在增加 test.txt
傳輸文件數據.
提交後的版本為 1。
說明提交成功了。
⑨其實svn commit命令最後可以不指定具體文件,此時表示提交當前工作副本中的所有修改。
4.3 更新
①將伺服器端文件檢出到一個新的目錄,模擬另外一個終端
D:\DevWorkSpace\SVNSpace>svn checkout svn://localhost/ERP TomERP
A TomERP\test.txt
取出版本 1。
②回到MyERP目錄,對test.txt文件修改後提交。
③進入TomERP目錄
④執行svn update命令
D:\DevWorkSpace\SVNSpace\TomERP>svn update
正在升級 『.』:
U test.txt
更新到版本 2。
這樣我們就可以在TomERP目錄下看到MyERP目錄下提交的修改。
⑤思考:更新和檢出的相同點和不同點分別是什麼?
檢出 更新
相同點 從伺服器端下載最新內容
不同點1 下載整個項目 下載與本地工作副本不同的內容
不同點2 創建.svn目錄,使檢出目錄成為工作副本 依賴.svn目錄
不同點3 只能操作1次 可以操作多次
3. python怎麼監測svn庫的文件有更新
python怎麼監測svn庫的文件有更新
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)例如:svn checkout svn://192.168.1.1/pro/domain簡寫:svn co
登錄後復制
2、往版本庫中添加新的文件
svn add file例如:svn add test.php(添加test.php)svn add *.php(添加當前目錄下所有的php文件)
登錄後復制
3、將改動的文件提交到版本庫
svn commit -m 「LogMessage「 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)例如:svn commit -m 「add test file for my test「 test.php簡寫:svn ci
登錄後復制
4、加鎖/解鎖
svn lock -m 「LockMessage「 [--force] PATH例如:svn lock -m 「lock test file「 test.phpsvn unlock PATH
登錄後復制
5、更新到某個版本
svn update -r m path例如:svn update如果後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然後清除svn resolved,最後再提交commit)簡寫:svn up
登錄後復制
6、查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)【?:不在svn的控制中;M:內容被修改;C:發生沖突;A:預定加入到版本庫;K:被鎖定】M狀態一般比較多2)svn status -v path(顯示文件和子目錄狀態)第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。簡寫:svn st
登錄後復制
7、刪除文件
svn delete path -m 「delete test fle「例如:svn delete svn://192.168.1.1/pro/domain/test.php -m 「delete test file」或者直接svn delete test.php 然後再svn ci -m 『delete test file『,推薦使用這種簡寫:svn (del, remove, rm)
登錄後復制
8、查看日誌
svn log path例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化
登錄後復制
9、查看文件詳細信息
svn info path例如:svn info test.php
登錄後復制
10、比較差異
svn diff path(將修改的文件與基礎版本比較)例如:svn diff test.phpsvn diff -r m:n path(對版本m和版本n比較差異)例如:svn diff -r 200:201 test.php簡寫:svn di
登錄後復制
11、將兩個版本之間的差異合並到當前文件
svn merge -r m:n path例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合並到當前文件,但是一般都會產生沖突,需要處理一下)
登錄後復制
12、SVN 幫助
svn helpsvn help ci
登錄後復制
-------以上是常用命令,下面寫幾個不經常用的 -------
13、版本庫下的文件和目錄列表
svn list path顯示path目錄下的所有屬於版本庫的文件和目錄簡寫:svn ls
登錄後復制
14、創建納入版本控制下的新目錄
svn mkdir: 創建納入版本控制下的新目錄。用法: 1、mkdir PATH…2、mkdir URL…創建版本控制的目錄。1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增調度,以待下一次的提交。2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建。在這兩個情況下,所有的中間目錄都必須事先存在。
登錄後復制
15、恢復本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:用法: revert PATH…注意: 本子命令不會存取網路,並且會解除沖突的狀況。但是它不會恢復被刪除的目錄
登錄後復制
16、代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。用法: 1、switch URL [PATH] 2、switch –relocate FROM TO [PATH...] 1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將伺服器上文件與本地文件合並。這是將工作副本對應到同一倉庫中某個分支或者標記的方法。 2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用這個命令更新工作副本與倉庫的對應關系。
登錄後復制
17、解決沖突
svn resolved: 移除工作副本的目錄或文件的「沖突」狀態。用法: resolved PATH…注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的相關文件,然後讓 PATH 可以再次提交。
登錄後復制
18、輸出指定文件或URL的內容
4. python怎麼使用svnlist命令
python使用svnlist命令步驟如下。
1、在伺服器中要做幾個操作,使用命令操作svn,svn文件的創建,svn文件更新。
2、把指定demo路徑,移動到創建的文件夾中,進行提交。
3、使用python的subprocess模塊實現對SVN的相關操作。
4、設置GitSvn類,在該類下自定義執行SVN常規操作的方法。
5. svn的更新命令
Fully recursinve 檢出內容包括:選中路徑下的所有內容
Immediate children,including folders 檢出的內容包括:選中路徑的根目錄、二級目錄的文件和文件夾
Olny file children 檢出的內容包括:選中路徑的根目錄、二級目錄的文件
Olny this item 檢出的內容包括:選中路徑的根目錄
第一次checkout要用Fully recursinve 下載到全部內容~
6. SVN 有什麼命令能列出需要更新文件嗎
當更新出現沖突的時候,就會在更新的時候顯示出跳過「..文件」,跳過的文件就是出現沖突的地方,是更新不到伺服器上的新數據的。解決方法:svnrevert跳過文件的路徑,svnupdaet跳過文件的路徑,就可以解決沖突了。希望能幫到你。
7. 如何使用ant 調用svn 的更新命令 把一個文件更新到指定的版本
svn update -r 250 d:/ss/sss/sss (表示更新某個文件夾)到250版本
svn update -r 250 d:/ss/sss/sss/aa.c(表示更新aa.c文件)到250版本
前提:本機安裝了SVN伺服器 SVN的bin目錄加入了path環境變數(也就是說要支持svn命令)
8. SVN可以指定更新某一賬戶上傳的文件嗎
一般我們都是按以下步驟操作的: 1.先將那個目錄checkout下來 2.將要添加的文件或者文件夾放到這個目錄中 3.右擊文件執行svn菜單中的add命令 4.右擊文件執行svn菜單中的commit命令 如果只是單純的提交一個文件到svn中某個目錄用上面方法的話會不會很繁瑣,如果能像共享文件夾那樣直接復制粘貼多好,其實方法是有的。 如果要將某個文件夾aa連同裡面的文件一起放到svn的某個目錄請按下面步驟操作: 1.右擊文件夾執行svn菜單的import命令 2.在彈出的對話框中選擇要放到svn的哪個目錄中 3.確定即可 如果你要提交的僅僅是個文件(假設為c:\test.txt)你會發現在右擊的svn菜單中找不到import,這可能是svn的某個小bug,不過別擔心,方法是有的: 1.打開cmd窗口 2.輸入TortoiseProc.exe /command:import /path:c:\test.txt然後回車 3.這時會彈出和上面一樣的對話框 4.選擇要存放的目錄,注意這時點確定的話會提示錯誤,還需要在目錄後加個文件名字,而這個文件名字必須是svn中不存在的,例如/test.txt,寫成/xxx.txt也行 5.確定即可 用這個方法來操作文件夾也是可行的。
9. idea側邊欄顯示svn文件最後更新時間
1. 打開IDEA,點擊菜單欄的「View」,在下拉菜單中找到「Tool Windows」,然後點擊「Version Control」,打開SVN文件瀏覽器,可以看到SVN文件目錄;
2. 在SVN文件瀏覽器中,右鍵點擊需要查看最後更新時間的文件,在彈出的菜單中,點擊「Show History」,可以看到最後更新時間;
3. 如果想要查看整個文件夾的最後更新時間,可以右鍵點擊文件夾,選擇「Show History」,可以看到最後更新時間。
10. windows server 2003 svn 怎麼自動更新
windows server 2003 svn 自動更新的方法:
1、在SVN 項目版本的存儲目錄的hooks 目錄中,建立一個post-commit.bat 文件:
2、在post-commit.bat 文件中添加如下代碼:
@echo off
SET WORKING_COPY=D:/wamp/www/test
"C:/Program Files (x86)/VisualSVN Server/bin/svn.exe" update %WORKING_COPY% --quiet --username SVN用戶 --password 123456
注意事項:
1、需要將SVN伺服器的bin目錄加入到path路徑中,加入後,未重啟,在命令行下path值立即生效,但是SVN伺服器卻無法找到,總是提示:
警告: post-commit hook failed (exit code 1) with output:'svn' 不是內部或外部命令,也不是可運行的程序或批處理文件。
2、需要設置SVN服務對文件桌面系統許可權,否則會報無法讀寫文件的錯:
進入計算機服務--》》VisualSVNServer--》》屬性--》》登錄--以administrator賬號登錄
3、最後一點要注意,要先更新一個版本到目錄,後續的提交才會自動更新。不然一直會失敗的。