4

いくつかのパッチを適用した外部svnリポジトリをチェックアウトしました。
(パッチの適用は、競合のために手動でのみ実行できます。)

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

まず、パッチの適用には手動の手順が含まれていたため、ある種のソース管理システムでローカルの変更をチェックインできるようにする必要があります。

そして第二に、私はまだリモートリポジトリから更新を受信できるようにしたいです。

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

4

4 に答える 4

1

svn とは異なるソース管理システムをローカル コピーに使用できると思いますか?
たとえば、.svn フォルダーを含む完全なローカル コピーを cvs にチェックインします。

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

より良い提案はありますか?

更新:はい、git-svnが推奨されるソリューションのようです。

ただし、記録のために、hg を svn と共に使用することもできます。

于 2009-08-05T19:19:09.833 に答える
1

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

于 2009-08-05T19:31:18.233 に答える
0

SVKが純粋な Subversion 環境でこれを実行できることは理解しています (数年前にこのような目的で使用しました)。ただし、Git を試してみたい場合は、Git をgit-svn選択することをお勧めします。それは私が今日使うものです。

ただし、注意点が 1 つあります。Windows を使用している場合、問題が発生する可能性がありますgit-svngit-svnその分野での成功は限られており、そのため Windows では使用しません。

于 2009-08-05T19:22:18.907 に答える
0

svnsync を使用すると、svn リポジトリのコピーを保持できますが、ローカル コピーを変更した瞬間から、同期を続行できなくなります。

最終的な日常業務には git を使用することをお勧めします。svn リポジトリのローカル作業コピーを保持し、git の管理下に置きます。それがgit masterになります。そのリポジトリを別の場所、ブランチ マスターにクローンしてそこで作業し、パッチをブランチに直接適用します。

svn wc を定期的に更新し、マスターとして git リポジトリにプルします。次に、 master をブランチにマージします。

紛らわしいのは、「2人のgitユーザー」がいるということです。1人はローカルのsvnリポジトリの作業コピーで、もう1人はパッチを適用したブランチになります。

于 2009-08-05T19:22:42.337 に答える