はじめに
動作検証(1)で使用したPDSメンバー(各種文字列が含まれたもの)を使用し、GitHubとファイルの送受信を行った場合にどうなるかをみてみます。
関連記事
z/OS利用時の文字コード変換 - 動作検証(1) 各ツールでの文字列表示
z/OS利用時の文字コード変換 - 動作検証(2) Git利用時のコード変換
z/OS利用時の文字コード変換 - 動作検証(3) DBBユーザー・ビルド時のコード変換
z/OS利用時の文字コード変換 - 動作検証(4) カタカナ系文字コードにおけるPDSメンバー名
環境情報
z/OS V2.4
Windows11
PCOM V14
IDz V15.0.5
VS Code V1.77.3
GitHub Enterprise
動作検証
1. Rocket Gitでのコード変換
(1)z/OS ⇒ GitHub
PDSメンバーを一旦USS上のファイルとしてコピーし、それをRocket GitでGitHub上にPushします。
USSへのファイルコピー、および、エンコーディングの指定例は以下の通り
cp "//'TAGUCHI.TEST01.COBOL.SOURCE(TSUB04)'" TSUB04.cbl
chtag -tc IBM-1399 TSUB04.cbl
念のため、USS上にコピーしたファイルをish
(ISPF Shell)から確認しておきます。
このUSS上のファイルをGitHubにPushする際、.gitattributesに指定した文字コードによってコード変換が行われます。今回使用する.gitattributesの指定例はこちらです。
# line endings
* text eol=lf
# file encodings
.gitattributes zos-working-tree-encoding=ibm-1399 git-encoding=utf-8
*.cpy zos-working-tree-encoding=ibm-1399 git-encoding=utf-8
*.cbl zos-working-tree-encoding=ibm-1399 git-encoding=utf-8
GitHub上のリモート・リポジトリーにPushされたファイルの中身をブラウザで確認
特に問題なく表示できています。
(2)GitHub ⇒ z/OS
上にアップしたGitHub上のリモート・リポジトリーを、USSの別の場所にクローンし、それをPDSメンバーとしてコピーします。
上と同じリポジトリーなので、使用する.gitattibutesも同じです。
クローンされたファイル
TAGUCHI : /u/TAGUCHI/temp/zosgittest01/cobol : > ls -laT
total 96
drwxr-xr-x 2 TAGUCHI SYS1 8192 Apr 13 11:22 .
drwxr-xr-x 9 TAGUCHI SYS1 8192 Apr 13 11:22 ..
t IBM-1399 T=on -rw-r--r-- 1 TAGUCHI SYS1 2951 Apr 13 11:22 TMAIN01.cbl
t IBM-1399 T=on -rw-r--r-- 1 TAGUCHI SYS1 485 Apr 13 11:22 TSUB02.cbl
t IBM-1399 T=on -rw-r--r-- 1 TAGUCHI SYS1 485 Apr 13 11:22 TSUB03.cbl
t IBM-1399 T=on -rw-r--r-- 1 TAGUCHI SYS1 706 Apr 13 11:22 TSUB04.cbl
このファイルをcpコマンドでPDSデータセットにコピーする際にはchtag -r
でタグをクリアしてから実施してください。
※textのタグ付け、およびIBM-1399がセットされたままDBCSを含むファイルをコピーしようとするとうまくいきません(コピーのコマンドはエラーメッセージも出力されないので正常に完了したと思ったら、実際にはPDS上にはメンバーが作成されません)。
TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > chtag -r TSUB04.cbl
TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > ls -laT | grep TSUB04
- untagged T=off -rw-r--r-- 1 TAGUCHI SYS1 706 Apr 13 11:52 TSUB04.cbl
TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > cp TSUB04.cbl "//'TAGUCHI.TEST02.COBOL.SOURCE(TSUB04)'"
特に問題なく表示できています。
2. GiHubのリモート・リポジトリーをPCにクローンして参照
1-2.(1) でPushしたGitHub上のリポジトリをPC(Windows11)上にクローンしてエディターでみてみます。
ここではコード変換は発生しないはずなので、UTF-8のまま参照できるはず。
(1) VS Code
VS CodeでGit Cloneして取得したファイルをUTF-8としてエディターで表示
特に問題なく表示できています。
(2) IDz
Eclipse上のGitでCloneして取得したリポジトリーをz/OSプロジェクトとして追加し、UTF-8としてエディターで表示
ちなみにIDzの場合、ファイルのプロパティーでローカルDBCSオプションのSO/SIの使用にチェックを入れると...
EBCDIC(IBM-1399)にした場合にSO/SIが挿入される位置にマークが付き、UTF-8の状態でも桁連れをチェックすることができます。