2010-05-08 108 views
3

我目前正在處理簽出的SVN項目以及該項目的一些插件。我想保留所有這些工作 - 包括當前版本的SVN checkout在單個git存儲庫中。將SVN工作副本提交到Git存儲庫

我以爲我通過檢查SVN工作副本到git來實現這一目標。但是,當我在新計算機上執行操作時,SVN工作副本已損壞。特別是git似乎沒有檢查過任何.svn/tmp /和.svn/props /文件夾。

我已經做了SVN項目的全新結帳。有沒有辦法讓我添加被忽略的文件夾到我的git倉庫(即使我的.gitignore是空的,git status會忽略它們),或者強制SVN重新生成它們?

回答

2

按照慣例開頭的文件擴展名被視爲隱藏文件。所以,我不是Git專家,但我猜Git默認忽略這樣的文件。

請問您希望通過在Git中保存svn元數據來實現什麼?

+0

我想用git來管理我使用svn的開源項目的補丁工作。我的方法(當我有了它的工作)將允許我對我的補丁進行多個git修訂,並仍然使用tortoisesvn輕鬆生成補丁文件。這一切都依賴於保存的元數據,以便正常的svn工具仍然有效。 – mchr 2010-05-08 10:33:54

+0

但是,如果git沒有監視/更改.svn目錄,那麼它們將被保留,當您完成後,您可以使用它們來生成修補程序。順便說一句,通過重寫一個新的結帳生成補丁也是微不足道的。如果您重命名或移動文件,則不會將此信息從Git傳輸到SVN,因此,保存.svn文件不會比僅僅有另一個原始檢出副本更有​​用。 – 2010-05-08 14:52:41

+0

這些都是明智的建議。不過,我寧願能夠快速地拉我的回購,包括svn工作副本,並擁有一切「只是工作」。聽起來這是不可能的,所以明天早上我會寫一個快速腳本來重新生成缺少的tmp和道具目錄。 – mchr 2010-05-08 18:17:59

1

不要忘記,如果.svn/tmp/.svn/props/目錄中的某些目錄爲空,它們將不會簡單地添加到git存儲庫。
這是by design,與.gitignore無關。

+0

我忘記了空目錄限制。據推測,我可以通過編寫一個腳本來修復這些缺失的目錄。 – mchr 2010-05-08 10:35:49

+0

您的代表已根據要求重新計算。 – 2010-05-08 16:50:30

+0

@ Bill:感謝您的代碼recalc :) – VonC 2010-05-08 17:29:47

0

爲什麼不使用git svn的克隆:

http://ftp.kernel.org/pub/software/scm/git/docs/git-svn.html

這將導入您的整個SVN歷史進入一個Git倉庫。

+0

我不知道git-svn。它看起來可以實現我想要的,但感覺不那麼直觀。你能推薦一個好的教程,開始使用git-svn嗎? – mchr 2010-05-08 10:30:31

相關問題