0

プロジェクトで作業するときに使用する「一般的な」make セットアップを開発しています。セットアップは、マスター Makefile と、マスター Makefile に関連するサブディレクトリに存在するはずのファイル 'module.mk' で構成されます。マスター Makfile には、指定されたディレクトリの複数の module.mk が含まれています。バージョン管理にgitを使用してこれを開発し始めました。

Makefile と module.mk の開発と並行して、テストと説明の目的でテスト ケースを開発したいと考えています。理想的には、テスト ケースは次のような構造になります。

./Makefile
./dir1/module.mk
./dir2/module.mk

さらに、dir1 と dir2 内のいくつかの追加ファイル

ファイル dir1/module.mk および dir2/module.mk には、「ソース コード」バージョンと比較して、いくつかの特定の変更が含まれている場合があります。それらはまた、互いに少し異なります。

私の質問は:

make セットアップ (Makefile と module.mk) とテスト ケース コードの両方の開発を維持するための最適な git ワークフローは何でしょうか?

単一の git リポジトリ (おそらくブランチを使用) を使用して実行できますか?

4

3 に答える 3

1

私が正しいと理解した場合、ブランチが答えだと思います。なんで?

「特定の変更」が少ない場合、「ソース コード」バージョンと「テスト」バージョンの間で多くのコードが共通している可能性があることを理解しています。この場合、両方のバージョンで同じコードを修正/更新する必要がある場合があり、「ソース コード」ブランチと「テスト」ブランチにマージする「ホットフィックス」ブランチが役立ちます。

アップデート

1 - 次のように、マスター (既にこのファイルがある場所) から testing_code ブランチを作成します。

git branch -b testing_code master

2 - 共通コードを修正する必要がある場合は、次のように、testing_code または master から「hotfix_whatever」ブランチを作成できます。

git branch -b hotfix_whatever master

3 - hotfix_whatever で修正を行い、master と testing_code をマージします。

testing_code にマージします。

git checkout testing_code
git merge hotfix_whatever

そしてマスターにマージします:

git checkout master
git merge hotfix_whatever

4 - マージ後にブランチを削除します。

git branch -d hotfix_whatever

このような作業サイクルでは、問題なく同期および更新された 2 つのブランチを維持できます。修正が必要になるたびに、新しいブランチを開き、変更を行い、master と testing_code をマージします。

于 2013-06-04T01:22:05.127 に答える