2009-08-05 6 views
4

いくつかのパッチを適用した外部のsvnリポジトリをチェックアウトしました。
(パッチを適用することが唯一の原因紛争に手動で行うことができます。)外部のsvnリポジトリのローカルで変更されたコピーを維持する方法

は今、私は適切な方法でリモートリポジトリのこのローカルコピーを維持することができるようにしたいです。
(私はリモートリポジトリでの読み取り以外のアクセス権は持っていません)

まず、何らかのソース管理システムで私のローカル変更をチェックインできるようにする必要がありますパッチの適用に関与します。

もう1つは、リモートリポジトリから更新を受け取ることができます。

これを達成するための最良の方法は何ですか?

答えて

1

私はsvnよりローカルコピーに別のソース管理システムを使用できますか?
など。 .svnフォルダを含む私の完全なローカルコピーをcvsにチェックインします。

または私はまたgit-svnを使用することができますが、私はそれが最善の解決策であるかはわかりません。

もっと良い提案がありますか?

更新:はい、git-svnが好ましい解決策です。

しかし、記録のために、1にもhg with svnを使用することができます。

+1

git-svnは、実際にはかなり良い解決策になります。ここでの主な問題は、svnが "ローカルリポジトリ"を持つようには設計されていないことです。通常、svnで実行された場合、ブランチで実行されていたはずです。 – Amber

+0

+1 git-svnの場合、これはこの種のケースを管理する最良の方法です。 –

0

私は(私は数年前にこのような何かのためにそれを使用)SVKは純粋にSubversionの環境でこれを行うことができます理解しています。しかし、あなたがGitを試してみたいと思えば、git-svnはもっと良い選択かもしれません。それが私が今日使うものです。

1つの警告は、しかし - Windowsを使っているならば、git-svnが動作するようになって問題がある可能性があります。私はその分野での成功は限られており、そのためにWindows上でgit-svnを使用しないでください。 svnsyncで

0

あなたはSVNリポジトリのコピーを保持することができますが、ローカルコピーを変更した瞬間から、あなたはsyncronizingを継続することはできません。

最後の日々の仕事にgitを使用することをお勧めします。 svnリポジトリのローカル作業コピーを保管し、git制御下に置いてください。それはgitのマスターになります。リポジトリを別の場所に複製し、ブランチマスタを作成してそこで作業し、パッチをブランチに直接適用します。

あなたのsvn wcを定期的に更新し、masterとしてgitリポジトリに引き出します。次に、masterとブランチをマージします。

混乱の事は、あなたが「2 gitのユーザー」を持っているということです、一つは地元のSVNリポジトリの作業コピーや他のあなたのパッチを適用支店となります。

1

これを行う伝統的な方法は、エクスポートされたコードを自分のリポジトリにチェックインすることです。コードに更新がある場合は、それらをレポにマージします。あなたは巧みな分岐(マッチするベンダーブランチ)によってマージすることができます。チェックインしたエクスポートされたコードのバージョンに従って、レポのコードにタグを付けます。

+0

私はあなたが正しいと思います。複数のブランチを管理するという単純な問題であり、使用するツールの詳細によって複雑にする必要はありません。現代のバージョン管理システムでは、これを達成することが可能でなければなりません。私は非常に似たような問題を抱えていました。私はいくつかの素晴らしい応答を受けました:http://stackoverflow.com/questions/1683096/subversion-merging-a-vendors-source-code-releases-into-mainline-at-regular-inte – RjOllos

関連する問題