3

ビルド環境などにカスタム(およびこれまでのところバージョン管理されていない)セットアップスクリプトを使用するプロジェクトがgitリポジトリにあります。これらをバージョン管理(できればgit)に置きたいのですが、プロジェクトとは別にバージョン管理してください。それ自体、まだプロジェクトのベースディレクトリに住んでいる間-私はローカルブランチのようなオプションを検討しましたが、これらはmaster(または他の「実際の」ブランチに)切り替えるとセットアップの作業コピーが破棄されるという問題があるようですスクリプト。

私はmsysgitを使用しているWindowsを使用しているので、いくつかのツールを使用できます。誰かが推奨事項や解決策を持っていますか?

4

2 に答える 2

1

メインのgitリポジトリとは別に、直接その中に住んでいる必要がある場合は、次のことを試してみてください。

  • それらのスクリプトを含む新しいリポジトリを作成する

と:

  • その新しいリポジトリをサブモジュールとしてリポジトリに追加します。それ外:
    • a /これらのスクリプトは、ベースディレクトリに直接存在するのではなく、サブモジュールを表すサブフォルダに存在します。
    • b /もちろん、メインリポジトリの他のクローンを作成してそれらのセットアップファイルを取得しないようにするために、その新しいリポジトリを公開(プッシュ)しないようにする必要があります

また:

  • その新しいリポジトリを(サブツリープロジェクトを使用して)メインリポジトリにマージしますが、次のようになります。
    • これらのファイルを削除するには、プロジェクトを分割する必要があります
    • 大きな歴史があり、頻繁にプッシュするプロジェクトの場合、そのステップ(分割)は長くて面倒な場合があります。

現在のセットアップファイルを少し進化させた、より簡単な解決策を検討します。

  • これらのセットアップファイルを含むプライベートリポジトリ(「プッシュされていない」など)
  • セットアップファイル(メインリポジトリのベースディレクトリ内に直接存在しない)が正しいディレクトリ(たとえば''で始まるなど)でジョブを実行するための、メインgitリポジトリのパスを持つ環境変数cd right_main_git_repo_dir
于 2010-08-01T08:28:12.997 に答える
0

追加のソリューションと、開始するためのいくつかのサンプルを共有したいと思います。

Buildbotを使用してMozillaFirefoxをビルドしようとすると、同様の問題が発生します。ルートフォルダーにいくつかのファイル(つまり、.mozconfigファイルといくつかのヘルパースクリプト)が必要であり、それらを個別にバージョン管理したいと思いました。

私の解決策は次のとおりです。

  1. MercurialリポジトリからFirefoxコードをチェックアウトします;
  2. 必要な追加ファイルを使用して追加リポジトリをチェックアウトします。
  3. ビルドを開始する前に、これらのファイルをFirefoxコードのあるフォルダーにコピーします。

このアプローチは、次のリポジトリに実装されています。

  • buildconfig-mozilla-central:Buildbot構成が含まれています。
    • 両方のリポジトリをプルします
    • スクリプトリポジトリからファイルをコピーします
    • ビルドを開始します。
  • buildscripts-mozilla-central:ビルド構成とヘルパースクリプトを含むリポジトリ。

コードは十分に因数分解されていない可能性があることに注意してください(たとえば、パス)が、それは良い出発点であるはずです。

この手順はFirefox向けに調整されていますが、どのリポジトリにも適用できます。

于 2013-09-20T14:53:59.710 に答える