概要:
私が達成したいことは、裸のGit リポジトリを定期的に Subversion にプッシュして、無人のスクリプトを使用して他の人がそれを調べられるようにすることです。反対方向、SVN -> Git は必要ありません。
誰かがこれを成し遂げるのを手伝ってくれることを願っています。私が見た他のスレッドは、私が必要とするものに非常に近いですが、完全でもっともらしい解決策を持っているものはありません. 既存の git リポジトリを SVN にプッシュすることは非常に役に立ちました。
私の問題:
私の雇用主は、オフサイト バックアップがあり、冗長性があり、Web インターフェースからアクセスできる Subversion サーバーを維持しているため、同僚やマネージャーは簡単なレビューを行うことができます。
Git の下に 6 つのプロジェクトがあります。(私は複数のマシンを持っており、多くの投機的分岐を行っており、頻繁にコミットしています。また、Xcode は Git との相性が良いです。当社の SVN 管理者は、Git は私にとって交渉の余地がほとんどないことに同意しています。)すべての作業コピーが追跡する私のデスクトップ マシン (私の雇用主が所有し、その敷地内にある) 上の裸のレポ。
私の雇用主は、私がそうしないことを本当に望んでいます。彼が IT グレードの Git サーバーを提供できれば、そうするでしょう。彼の妥協点は、デスクトップの裸の Git リポジトリを SVN サーバー上の並列リポジトリに同期するlaunchd
( ) タスクを取得する方法を見つけることです。cron
私の提案したアプローチ(おそらく不十分):
裸の Git リポジトリを Subversion にクローンするためのガイドは見つかりませんでした。私の推測では、作業コピーを介してすべてを行う必要があり、SVN 同期 (自動化ではない可能性があります) は解決済みの問題です。
私の素朴なプロセスは次のとおりです。
- に編集されていない
/dont-touch
作業コピーをベア リポジトリから複製します。 - 非編集
/dont-touch
ディレクトリにいる間、git svn init <svn-url> -s
- 必要なこと
git svn fetch
をしてgit svn rebase
踊ってください。 - 毎晩、
launchd
4.1
.cd /dont-touch
4.2.git fetch
4.3.git svn dcommit
私が見ているように、問題は次のとおりです。
私は無知です
十分に言った。
このカテゴリには、私が思いもよらなかったことがすべて含まれています。
インタラクティブ性
これを設定し、同期スクリプトを 24 時間ごとに起動させて、忘れることができることを願っています。
SVN認証はキャッシュされ、最初に通過した後、手動(1-3)セットアップ中に自動的に処理されると思います。作業コピーはdont-touch
ベア リポジトリと同じユーザーが所有し、file:///
.
しかし、Git を SVN に同期することについての私の印象は、脆弱であり、SVN リポジトリを損傷しないようにするために対話型のニップとタックが必要になるということです。