2013-01-11 85 views
1

我有一個linux eclipse項目簽入我們公司的svn。很棒。在Linux eclipse和MS Visual Studio之間共享源碼

該項目旨在交叉編譯在Windows上。

直到現在,我只是在操作系統之間移動源文件。不過,我想我想讓svn爲我做這件事。應該很簡單,只需將eclipse linux src簽入VS項目目錄,對吧?錯誤!

正確的來源已被檢出svn,它工作正常。但是,當我試圖檢查它在我不斷收到「提交未完成文件名仍然存在衝突」的錯誤。我甚至沒有改變任何東西!

做了一些檢查。原來linux src目錄幾乎只是源代碼和頭文件。在MSVS方面,項目目錄包含源代碼和頭文件,但也包含一些由VS使用的文件,例如projname.vcproj等。

所以,我做了一個劃痕的結帳。 \弗雷德。檢查。\ fred回來。沒有問題。向.fred,xxx.xxx添加了一個新文件。入住報告:

svn: E200009: Commit failed (details follow): 
svn: E200009: 'C:\Projects\fred\xxx.xxx' is not under version control 

讓我想知道那些未提交的Visual Studio文件。

那麼,那些文件是我的問題嗎?他們是否違反提交操作?

作爲一種替代解決方案,我正在考慮將VS文件添加到svn的src目錄中。如果linux/eclipse檢查出來,我可以讓eclipse忽略它們(我認爲它會忽略它們)。對此方法有何想法或建議?

(順便說一句,我仍然有在Linux中,這樣一敗塗地可以安全地恢復任何東西新鮮來源。)

+0

您是否添加MSVS文件? –

+3

我會將MSVC文件從源文件中分離出來(即將它們放在不同的目錄中),以便您可以獨立檢查它們。 –

+0

@ArneMertz請幫助我的無知:我可以簽出(並簽入)兩個項目到同一個目錄嗎?正如svn co「...... \ src」fred後面跟着svn co「.... \ MSVS」fred其中fred是VS項目中的客戶端目錄?這將是一個偉大的解決方案! –

回答

0

因此,這裏是一個解決方案,我已經工作了的時刻。我不確定它有多穩定。

警告:我正在使用的項目已經作爲MSVS項目存在。

在MSVS解決方案目錄中,重命名源目錄(MSVS喜歡源目錄名稱以匹配解決方案目錄名稱,所以這意味着源目錄可能不會被命名爲src)到解決方案中未包含的內容,如temp

SVN checkout src(eclipse like to call source dirs src)。

cd進入源目錄。發出命令:

svn changelist msvs *.cpp *.h 

如果需要,添加* .c。 「msvs」是更改列表名稱。它可以是任何你想要的。

這將爲檢出目錄創建更改列表。

現在,將其餘文件從temp目錄複製到您的源代碼目錄中。

當你需要做的簽入,用cd命令進入源代碼目錄,併發出以下命令:

svn ci --changelist msvs 

注意。你必須在src目錄中才能使用。

相關問題