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?

3-3.Gitlabでマージリクエストしマージ

1
Posted at

■マージリクエスト-マージ

◯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スクリプト

CRTPGM_RENRITSUtoPrd.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'.

目次へ

1
0
0

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?