2011-01-26 128 views
1

我想將每個代碼文件夾的.svn文件夾提交到Hg存儲庫。問題是很多.svn子文件夾都是空的,因此無法提交到mercurial存儲庫。如何提交.svn文件夾到Mercurial存儲庫?

我發現的一個解決方案是向每個文件夾添加一個空文件,但這很麻煩。沒有更簡單的方法嗎?

+2

爲什麼需要源代碼管理下的.svn文件夾? – jgifford25

+0

@jgifford我們必須最終承諾SVN倉庫,但是我們每天都使用Mercurial –

+2

@Jader,我們和你們的情況類似,因爲我們必須按企業標準使用CVS,但是爲了我們的理智,我們正在使用Git。我們不檢入CVS文件夾。我們在我們的git repo /目錄下工作,並定期將代碼拉入包含我們CVS簽出的克隆本地存儲庫/目錄中。然後,我們從該CVS簽出文件夾提交CVS。 – Vadim

回答

2

當你想在一個svn回購的頂部使用汞,你可以嘗試hgsubversion extension。 Hgsubversion使得svn客戶端能夠與svn服務器交談。

OTOH如果你堅持在任何地方都有.svn文件夾,你可以使用hgsvn來管理你的並行hg和svn回購結賬。但是hgsvn有一個缺點,就是它沒有自動重新綁定svn的東西,所以當你不得不將合併的svn歷史和本地歷史合併時,你不能導出每個本地提交,只有合併提交(即使存在合併時也可以導出每個提交,但第一個本地提交將撤消最近的svn歷史記錄,並且合併提交將重做它,這會導致svn歷史記錄存在缺陷)。

更多關於不同svn < - > hg工作流程位於WorkingWithSubversion wiki頁面。

+0

我無法使用hgsubversion,因爲我的SVN存儲庫要求(預提交掛鉤)每個新文件都應該有'svn:needs-lock'屬性 –

4

您需要爲每個文件添加一個空文件。你能做到這一點迅速用:

for thedir in $(find /path/to/repo -type -d -name .svn) ; do 
    touch $thedir/emptyfile 
    hg add $thedir/emptyfile 
done 
+0

偉大的劇本!也許有人可以寫一個窗口以及 –

+6

我認爲Windows腳本被稱爲實習生。 ;) –

相關問題