2011-01-26 9 views
1

各コードフォルダの.svnフォルダをHgリポジトリにコミットします。問題は、多くの.svnサブフォルダが空であり、そのために、水銀リポジトリにコミットできないということです。.svnフォルダをMercurialリポジトリにコミットする方法は?

解決策の1つは、空のファイルをそれぞれのフォルダに追加することですが、これは面倒です。簡単な方法はありませんか?

+2

なぜソース管理の下に.svnフォルダが必要ですか? – jgifford25

+0

@jgifford最終的にはSVNリポジトリにコミットする必要がありますが、Mercurialは毎日 –

+2

@ Jaderを使用しています。私たちは企業標準でCVSを使用する必要があるのと同じような状況ですが、Gitを使用しています。私たちはCVSフォルダをチェックインしません。私たちはgit repo /ディレクトリで作業し、定期的にコードをCVSチェックアウトを含むクローンされたローカルリポジトリ/ディレクトリにプルします。そのCVSチェックアウトフォルダからCVSにコミットします。 – Vadim

答えて

2

:あなたはすぐにそれを行うことができます。 Hgsubversionは水銀にsvnクライアントのようなsvnサーバーと通信する機能を提供します。

OTOHもしあなたがどこにでも.svnフォルダを持っているとしたら、hgsvnを使って並列hgとsvnのレポチェックアウトを管理することができます。しかし、hgsvnには、svnに戻ってくるものの自動再rebaseがないという欠点があります。そのため、svnの履歴をあなたのローカル履歴とマージしなければならないときは、ローカルコミットをすべてエクスポートすることはできませんマージコミットのみ(マージがあってもすべてのコミットをエクスポートする方法がありますが、最初のローカルコミットは最近のsvn履歴を元に戻し、マージコミットはそれをやり直します)。

他のsvnの詳細< - > hgワークフローはWorkingWithSubversion wikiページにあります。

+0

私のSVNリポジトリには、(svn:needs-lock'プロパティを持つべきである)新しいファイルがすべて必要になるので、hgsubversionは使用できませんでした –

4

それぞれに空のファイルを追加する必要があります。あなたはSVNのレポの上にHGを使用したい場合は、あなたがhgsubversion extensionを試すことができ

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

素晴らしいスクリプト!誰かが窓のためにも書くことができるかもしれない –

+6

私はWindowsスクリプトがインターンと呼ばれると思います。 ;) –