2009-07-16 65 views
5

這可能是SVN 101,但我必須問:SVN結帳後重新整理項目

我正在開發一種具有蹩腳的目錄結構的項目。爲了讓它在我最喜歡的IDE中構建和運行,在我檢查完項目後,我將整個項目複製到一個不同的目錄並將其移動到我(和我的IDE)的喜好中。

所以我的基本問題是:我可以安全地編輯/更新/合併與倉庫目錄結構不同的目錄strcuture中的文件嗎?

例如,如果我退房/home/me/dev/proj/index.jsp,然後將它(和它的.svn文件元數據)複製到/home/me/dev/better-proj/web/index.jsp,即index.jsp的駐留在不同的目錄中的事實,應該沒問題就其SVN狀態,對不對?錯誤?或者我只是要求麻煩?

回答

6

你在問問題。很多麻煩。如果您嘗試更新根目錄,則會導致完整的錯誤(大量障礙物,「恢復的」文件等)。另外,你如何複製單個文件的元數據? SVN元數據位於每個目錄的.svn文件夾中。您可以可能能夠更新和提交未更改的個別目錄(即目錄本身已被移動或重命名,但其所有子項完全與回購中相同)。然後,你可能不會。這很危險。

您應該自定義您的IDE以符合項目的使用/構建方式,或重新安排項目以匹配使用/構建項目的方式。在後一種情況下,您需要調查svn move子命令(即svn help move)。 SVN的圖形用戶界面也可能會有幫助,如TortoiseSVN(用於Windows),如果你要做大量的重新排列。

0

我誤解了你的問題。我以爲你在尋找類似SVN移動命令的東西。 (see these questions)

但是,這顯然不是你在找什麼。

我認爲你對你提出的工作流程有問題。這真的不是一個好主意。爲什麼不移動svn中的工作項?

1

因此,您在項目中使用與團隊中其他人不同的結構?我不確定這是如何工作的誠實。我會與所有參與者交談,並使用svn:move在所有您可以同意的地方獲取所有包含歷史記錄的文件。

1

如果您嘗試將版本化目錄放入不是其父項的版本化目錄中,則會遇到此方法的問題。除此之外,除了與不相交的工作副本相關的文書工作頭痛之外,您不應該遇到任何其他問題。

是否有理由不能使用svn move來重新組織倉庫中的項目?你不會以這種方式失去任何歷史,你會讓你的生活變得更輕鬆。

2

如果目的地仍在工作副本內,請使用svn movedocumentation)。無論哪種方式,您都不會有史以來想自己操縱.svn元數據,因爲這會導致衝突和一般頭痛。

如果目的地是另一個倉庫的工作副本,你要對目的地回購源回購之後svn adddocumentation)做一個svn exportdocumentation)。

也值得一讀:Subversion Basic Work Cycle