問題是svn上提交添加尚未更新的其他文件。提交svn添加其他文件
實施例:
svn st
這表明file1
作爲被改變
svn commit
此上傳在file1
的變化和以及file2, file3, file4
這總是發生在同一文件
file2, file3, file4
我該如何解決這個問題?
SVN版本:
Subversion命令行客戶端,版本1.6.6
問題是svn上提交添加尚未更新的其他文件。提交svn添加其他文件
實施例:
svn st
這表明file1
作爲被改變
svn commit
此上傳在file1
的變化和以及file2, file3, file4
這總是發生在同一文件
file2, file3, file4
我該如何解決這個問題?
SVN版本:
Subversion命令行客戶端,版本1.6.6
您使用的是什麼版本的Subversion客戶端?
在subversion 1.7客戶端中,Subversion通過查看.svn
目錄中的文件內容和存儲的基址來確定文件更改。 Subversion比較文件本身的屬性和內容以確定任何更改。例如:
$ svn up
U file1
U file2
U file3
在這個例子中,你將看到至少有以下六個文件:
.svn/text-base/file1.svn-base
.svn/text-base/file2.svn-base
.svn/text-base/file3.svn-base
.svn/prop-base/file1
.svn/prop-base/file2
.svn/prop-base/file3
它不看時間戳來確定文件是否已改變(如Makefile文件將有)。
svn up
和svn commit
都使用相同的算法來確定文件是否應該被記錄爲被修改。
還有一個名爲.svn/entries
的文件,其中包含目錄具有的條目列表。這允許Subversion跟蹤添加和刪除操作,但不用於檢測更改。
我在合併中發現未更改的文件正在提交。但是,在執行svn status
時總是顯示,並且文件內容未更改,但是屬性svn:merge info
爲。
你的問題看起來很不一樣。首先,你在做svn status
時看不到變化,但他們確實承諾。如果你在目錄上做了svn -v log
怎麼辦?文件是否顯示爲已更改?如果你做了svn status -v
?這將顯示所有文件,包括被忽略的文件和沒有被更改的文件。
這是客戶端告訴服務器哪些文件已被更改,而不是服務器確定要提交哪些文件。因此,你的Subversion客戶端的問題是:
什麼是你的Subversion客戶端和你有什麼操作系統?我知道Cgywin可能會有問題 - 特別是如果您使用Windows Subversion客戶端共享您的工作目錄。在兩種不同類型的客戶端(如GUI客戶端和命令行客戶端)之間共享工作目錄可能存在一些問題。例如,VisualStudio的AnkhSvn客戶端創建_svn
目錄。 TortoiseSVN可以使用它們(如果您正確配置它),但不能使用標準的Subversion命令行。
而且,當然,1.7命令行客戶端與以前的命令行客戶端有很大不同。在標準的1.7命令行客戶端中,.svn
目錄只在根目錄下,我相信它使用校驗和來確定文件的內容是否已被更改。
對不起,我無法提供任何進一步的幫助。也許我給了你一些東西繼續下去?讓我知道你的Subversion客戶端和操作系統,這可能會有所幫助。另外讓我知道你是否在同一個目錄下使用多個Subversion客戶端。這可能也是一個線索。
我試過進入$HOME/.subversion/conf
,看看是否有任何設置可能會有所作爲,但我沒有發現任何會導致此行爲的東西。
我會在早上嘗試這個,謝謝 – 2012-01-12 02:36:40
那麼,如果你想一直忽略你可以使用svn:ignore的文件,但如果他們是你做的文件有時會改變,你需要讓他們在源代碼控制下,我會做一個svn diff file1
並從那裏去。他們是什麼類型的文件,差異的結果是什麼?
但沒有什麼改變與文件 – 2012-01-11 21:49:44
他們是.pdf文件,可能會改變一年兩次 – 2012-01-11 21:55:33
@PhillPafford如果svn stat說他們已經改變了,那麼一定有一些svn diff輸出? – Grammin 2012-01-11 22:11:10
'file2,file3,file4'是否改變了?或者他們總是一樣,並且無論如何都承諾他們? – 2012-01-11 21:26:13
你可以嘗試svn提交。 – Johny 2012-01-11 21:34:22
你可以試試'svn commit file1'嗎? – Neil 2012-01-11 21:43:19