1

次の SVN コード リポジトリを検討してください。

/root
  /OldProject
    /src
  /NewProject
    /tags
    /branches
    /trunk
      /src

ここで、「OldProject」が、人類によって作成されたソフトウェア開発に対する最も忌まわしい忌まわしきものの 1 つであると仮定してみましょう。「NewProject」は、目標の実装になるはずです。ハード カットオーバーができないため。一方から他方へゆっくりと移行する必要があります。

私がやりたいことは、開発者が引き続き OldProject にコミットできるようにし、システムがソースを特定のディレクトリの NewProject に同期するようにして、両方のツリーを最新の状態に保つことです。私の目標は、他の開発者がシステム構成を変更する必要がないようにすることです。シームレスである必要があります (そのため、SVN 外部はおそらく適切なオプションではありません)。私が考えることができる唯一のことは、OldProjectにステージングエリア、つまりJenkins CIワークスペースを使用し、それをrsyncしてNewProjectのワークスペースにコミットすることです。

これは機能しているように見えますが、「間違っている」と感じています。これを行うより良い方法はありますか?

4

1 に答える 1

0

シームレスである必要があります (そのため、SVN 外部はおそらく適切なオプションではありません)

詳しく説明してください: 私にとって、NewProject のいくつかのノードから OldProject のいくつかのノードへの外部は、最もシームレスな(そして簡単な) ソリューションです

OldProject 用の Jenkins CI ワークスペースと、NewProject 用のワークスペースに rsync & commit する

DRY原則に違反していますか(単一の違いがあります-人間の代わりにJenkins)、追加の不要なレイヤーがあります:(いくつかの作業で)リポジトリのポストコミットフックによって実装できます

于 2013-04-24T05:16:54.470 に答える