2012-01-11 127 views
1

問題是svn上提交添加尚未更新的其他文件。提交svn添加其他文件

實施例:

svn st 

這表明file1作爲被改變

svn commit 

此上傳在file1的變化和以及file2, file3, file4

這總是發生在同一文件

file2, file3, file4 

我該如何解決這個問題?

SVN版本:

Subversion命令行客戶端,版本1.6.6

+0

'file2,file3,file4'是否改變了?或者他們總是一樣,並且無論如何都承諾他們? – 2012-01-11 21:26:13

+0

你可以嘗試svn提交。 – Johny 2012-01-11 21:34:22

+0

你可以試試'svn commit file1'嗎? – Neil 2012-01-11 21:43:19

回答

1

您使用的是什麼版本的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 upsvn 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,看看是否有任何設置可能會有所作爲,但我沒有發現任何會導致此行爲的東西。

+0

我會在早上嘗試這個,謝謝 – 2012-01-12 02:36:40

0

那麼,如果你想一直忽略你可以使用svn:ignore的文件,但如果他們是你做的文件有時會改變,你需要讓他們在源代碼控制下,我會做一個svn diff file1並從那裏去。他們是什麼類型的文件,差異的結果是什麼?

+0

但沒有什麼改變與文件 – 2012-01-11 21:49:44

+0

他們是.pdf文件,可能會改變一年兩次 – 2012-01-11 21:55:33

+0

@PhillPafford如果svn stat說他們已經改變了,那麼一定有一些svn diff輸出? – Grammin 2012-01-11 22:11:10

相關問題