1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(git2)IBMi(AS400)でのgitコード管理の流れ

Last updated at Posted at 2024-09-15

■概略

オープンソースエンジニア歴30年超の筆者が2023年からIBMiを学びだした学習記録です
筆者が行っているFFRPGのgitコード管理の流れをまとめました

◯ブランチの役割

目的 ライブラリ ブランチ名
本番 本番機のCGILIB master
※feature/fixからmasterに
 開発者がマージリクエストし、管理者がマージする
開発 開発機のCGILIB develop
※feature/fixからdevelopに
 開発者がマージリクエストし、開発者がマージする
バグ修正 個人ライブラリ fix/#イシュー番号
※developからブランチを作成する
機能追加 個人ライブラリ feature/#イシュー番号
※developからブランチを作成する

◯修正・反映の流れ

修正・反映にはgitの機能だけではなく、
gitlabのイシュー・マージリクエスト・マージ機能を使う

連番 担当者 ブランチ ツール 作業
0 開発者 全て VSCode ホームディレクトリに
ローカルレポジトリ取得
1 管理者
開発者
- gitlab イシュー作成
2 開発者 developから
作業ブランチ
tig developから作業ブランチを
作成し切替える
3 開発者 作業ブランチ VSCode ソース修正を行う
個人ライブラリで
コンパイルとテスト
4 開発者 作業ブランチ tig commit & push
5 開発者 作業ブランチ gitlab developへのマージリクエスト
6 開発者 develop gitlab developへのマージ
7 開発者 develop VSCode 開発機のCGILIBで
コンパイルとテスト
8 テスト担当 develop アプリ developの動作確認を行う
9 テスト担当 develop gitlab masterへのマージリクエスト
10 管理者 master gitlab masterへのマージ
11 管理者 master VSCode 本番機のCGILIBで
コンパイルとテスト
12 テスト担当 master アプリ 本番で動作確認を行う

■修正・反映の詳細手順(開発者分の1-7)

0) ホームディレクトリにローカルレポジトリ取得

…gitに慣れていない人向けの説明なので環境を整えるところから書くべきでした

最初にgitlabからgit cloneで自分のホームディレクトリにローカルレポジトリを
展開し開発準備を整える
gitlabのプロジェクトのトップ画面の[クローン]の[sshでクローン]でURLをコピーする
git_clone.png

VSCodeのterminalかsshクライアントでコピーしたURLをgit cloneする
git cloneしたディレクトリにcdで移動し、tigを起動しrでブランチ一覧を表示すると
「2)tigでイシューに対応するブランチを作成する」 の画面になる

$ git clone git@gitlab.local:test/readme.git
Cloning into 'readme'...
remote: Enumerating objects: 1221, done.
remote: Counting objects: 100% (179/179), done.
remote: Compressing objects: 100% (179/179), done.
remote: Total 1221 (delta 106), reused 0 (delta 0), pack-reused 1042
Receiving objects: 100% (1221/1221), 6.92 MiB | 7.15 MiB/s, done.
Resolving deltas: 100% (699/699), done.
$ cd readme
$ tig

1) イシューを作成する

担当 管理者 or 開発者(開発者が気づいた際もイシューを作成する)
ブランチ なし
ツール gitlab

*作業内容
1.gitlabの {プロジェクト名}-[イシュー]-[新しいイシュー] でイシューを作成する
git_openissue.png
git_newissue.png

タイトル 変更内容がわかるように簡潔に記載
タイプ イシュー か インシデント
説明 変更内容を詳細に記載
担当者 gitlabのアカウントに割り当てる
期日 期限を入力
マイルストーン 別途管理するマイルストーンを入力する(今は空)
ラベル ax_分類,bx_ステータス,cx_優先度など用意されたラベルを割り当てる

[作成イシュー]を押す

2)tigでイシューに対応するブランチを作成する

対象 開発者
ブランチ develop→作業ブランチ
ツール tig

*作業内容(画面はdevelopブランチでBを押し作業ブランチ名を指定するところ)
git_newbranch.png

  1. tigでdevelop(親ブランチ)を選択し U(git pull) で最新に更新する
  2. develop(親ブランチ)を選択し B(git branch) で作業ブランチを作成する
    ブランチ名は、{バグ修正ならfix,追加修正ならfeature}{#イシュー番号}
    (説明を加えるなら簡潔な英語でスペースを入れない)
  3. 作業ブランチを選択し = で作業ブランチに切替える

3)VSCodeでイシューに対応する変更をブランチで行う

対象 開発者
ブランチ 作業ブランチ
ツール VSCode

*作業内容

  1. 作業ブランチでソースを修正する
  2. cmd/crtpgm_{PGM名}.bashを実行し、個人ライブラリにコンパイルし単体テストする

4)tigで変更内容をブランチにgit add,commit,pushする

対象 開発者
ブランチ developブランチ
ツール tig

*作業内容(画面はtigでsを押した直後)
git_tigstatus.png

  1. tigで r を押してブランチ一覧画面にする
  2. 作業ブランチが一番上になっていることを確認する
    なっていなければ作業ブランチを選んで = で作業ブランチに切り替える
    (git checkout)
  3. tigで s を押してgit status画面にする
  4. 対象ファイルを選択し a を押してgit addする
    もう一度 a を押すと戻す
  5. C(大文字C) を押してgit commitする
  6. P(大文字P) を押してgit pushする
    commitの際、コミットメッセージを以下のルールに従って記載する
    ~/.commit_templateで定義している

# ==== Commit Messages(Template) ====  
# [prefix] #Issue番号 変更内容  
# 例) [fix] #438 コメント追加
# ==== Prefix ====
# [fix] バグ修正  
# [hotfix] クリティカルなバグ修正  
# [add] 新規機能・新規ファイル追加  
# [update] バグではない機能修正  
# [revert] 修正取り消し  
# [refactor] リファクタリング  
# [docs] ドキュメントのみ修正  

5)gitlabでマージリクエストを行う

対象 開発者
ブランチ developブランチ
ツール gitlab

 
*作業内容

  1. gitlabの {プロジェクト名}-[マージリクエスト]-[新しいマージリクエスト] でマージリクエストを作成する
    git_mergerequest.png

  2. ソースブランチに作業ブランチ、ターゲットブランチにdevelopを選択し、[ブランチを比較して続行する]
    git_mergerequest2.png

タイトル {feature/fix}/{#イシュー番号} {説明}
Draftとしてマーク [ ](チェックしない)
説明 変更内容を記載
担当者 gitlabのアカウントに割り当てる
レビュアー gitlabのアカウントに割り当てる(オプション)
マイルストーン 別途管理するマイルストーンを入力する(今は空)
ラベル ax_分類,bx_ステータス,cx_優先度など用意されたラベルを割り当てる

[作成マージリクエスト]を押す

6)gitlabで差分を確認しマージを行う

対象 開発者
ブランチ developブランチ
ツール gitlab

*作業内容

  1. gitlabの {プロジェクト名}-[マージリクエスト]-[オープン] からマージするリクエストを選択する
  2. 画面右上の[コード]-[WebIDEでチェック]するとオンラインVSCodeで左右ペインに差分が表示される
  3. 差分に問題なければ、[マージ]を押すとマージしてくれる
    git_merge.png

7)開発機のCGILIBでコンパイルとテスト

対象 開発者
ブランチ developブランチ
ツール VSCode

*作業内容

  1. cmd/crtpgm_{PGM名}2DevCGILIB.bashを実行し、開発機のCGILIBにコンパイルしテストする

 

1
0
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?