■マージリクエスト-マージ
◯Gitlabでマージリクエスト
[コード]-[マージリクエスト]-[マージリクエストを作成]
タイトル : マージリクエスト名 ※デフォルトはコミット名。ここでは画面修正(#1)
説明 : レビュー担当者に向けたメッセージ ※ここでは空白
担当者 : マージリクエストの作成者
レビューアー : レビューをする人
[ ]マージリクエストを承認された時にソースブランチを削除します
※このチェックが入っているとマージ時にブランチが削除される
全てが終了してから手動でブランチの削除をしているため[ ]にします
[マージリクエストを作成]
◯Gitlabでマージ
マージ時に行のぶつかり(Conflict)がある時は該当部分が表示されるので対応を選択します
マージ時に行のぶつかり(Conflict)がなければ、
「マージできる状態になりました」と表示されます
[マージ]ボタンを押すとブランチの変更点が反映=マージされます
マージ後はmasterブランチ選択時にQDSPSRCに変更が反映されていることがわかります

■master/developブランチをIBM iのFLIBに反映
Bobの.envのOBJLIBを個人ライブラリからFLIBに書き換えてコンパイルすれば反映できますが、個人開発環境を変更することは望ましくありません
下記をbashスクリプトで作成します
手順1)*IBM i上のmaster/developブランチを最新に更新する
手順2)*リポジトリ内のソースファイルをFLIBライブラリのQDSPSRC、QRPGSRCのメンバーにコピーする
手順3)*FLIBライブラリにコンパイルする
◯IBMiからGitサーバへのアクセス設定
PCで設定したGitサーバへのアクセス設定をIBM iでも行います
*.sshディレクトリを作成する
IBM iにsshする
takami@RISING2026-F-IBMI1:~$ mkdir .ssh
takami@RISING2026-F-IBMI1:~$ chmod 700 .ssh
*秘密鍵と.ssh/configをIBM iにコピーする
PowerShellで作業する
PS C:\Users\{ユーザ名}> scp ~/.ssh/{秘密鍵ファイル名} pvs:~/.ssh
PS C:\Users\{ユーザ名}> scp ~/.ssh/config pvs:~/.ssh
*秘密鍵の権限を変更する
takami@RISING2026-F-IBMI1:~/.ssh$ chmod 600 {秘密鍵ファイル名}
*Gitサーバへの接続確認
takami@RISING2026-F-IBMI1:~/.ssh$ ssh {Gitサーバ}
PTY allocation request failed on channel 0
Welcome to GitLab, @takami!
Connection to {Gitサーバ} closed.
◯IBM iにGitリポジトリを取得する
*git clone
takami@RISING2026-F-IBMI1:~$ git clone git@{Gitサーバ}:ibmi/renritsu.git
Cloning into 'renritsu'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 30 (delta 2), reused 0 (delta 0), pack-reused 17 (from 1)
Receiving objects: 100% (30/30), 5.41 KiB | 1.08 MiB/s, done.
Resolving deltas: 100% (4/4), done.
*git pullで最新になっているか確認
takami@RISING2026-F-IBMI1:~$ cd renritsu/
takami@RISING2026-F-IBMI1:~/renritsu$ git pull origin master
From git.emboma.jp:ibmi/renritsu
* branch master -> FETCH_HEAD
Already up to date.
◯masterブランチを最新にしてFLIBにコンパイルするbashスクリプト
#!/bin/bash
USER=`whoami`
#---
TARGET_LIB="FLIB"
PGM="RENRITSU"
RPGSTMF="/home/${USER}/renritsu/QRPGSRC/${PGM}.RPG"
DSPSTMF="/home/${USER}/renritsu/QDSPSRC/${PGM}.DSPF"
RPGMBR="/QSYS.LIB/${TARGET_LIB}.LIB/QRPGSRC.FILE/${PGM}.MBR"
DSPMBR="/QSYS.LIB/${TARGET_LIB}.LIB/QDSPSRC.FILE/${PGM}.MBR"
RPGSRC="${TARGET_LIB}/QRPGSRC"
DSPSRC="${TARGET_LIB}/QDSPSRC"
TARGET="${TARGET_LIB}/${PGM}"
#---
# masterブランチに変更し最新に更新する
git checkout master && git pull origin --ff-only
# ソースファイルをメンバーにコピーする
system "CPYFRMSTMF FROMSTMF('$DSPSTMF') TOMBR('$DSPMBR') MBROPT(*REPLACE)"
system "CPYFRMSTMF FROMSTMF('$RPGSTMF') TOMBR('$RPGMBR') MBROPT(*REPLACE)"
# 削除してコンパイルする
system "DLTF FILE($TARGET)"
system "CRTDSPF FILE($TARGET) SRCFILE(FLIB/QDSPSRC) SRCMBR(*FILE)"
system "DLTPGM PGM($TARGET)"
system "CRTRPGPGM PGM($TARGET) SRCFILE(FLIB/QRPGSRC)"
# 元のbranchに戻る
git checkout -
※実行結果
takami@RISING2026-F-IBMI1:~/renritsu$ ../CRTPGM_RENRITSUtoPrd.bash
※masterブランチに切り替えてgit pullしている
Already on 'master'
Your branch is up to date with 'origin/master'.
Already up to date.
※ソースファイルをコピーしている
CPCA081: Stream file copied to object.
CPCA081: Stream file copied to object.
※DSPFのFILEを削除してコンパイル
CPC2191: Object RENRITSU in FLIB type *FILE deleted.
CPC7301: File RENRITSU created in library FLIB.
…
* CPC7301 00 Message . . . . : File RENRITSU created in library FLIB.
* * * * * E N D O F C O M P I L A T I O N * * * * *
※PGMを削除してコンパイル
CPF2105: Object RENRITSU in FLIB type *PGM not found.
QRG0003: Program RENRITSU is placed in library FLIB. 00 highest severity. Created on 07/23/26 at 06:41:02.
…
Program RENRITSU is placed in library FLIB. 00 highest severity. Created on 07/23/26 at 06:41:02.
* * * * * E N D O F C O M P I L A T I O N * * * * *
※変更前のブランチに戻している(元もmasterだったのでmasterのまま)
Already on 'master'
Your branch is up to date with 'origin/master'.
