我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

BaseSASユーザのためのGit(その2:sasプログラムの登録と変更)

前回は、Gitを使うためにSourceTreeのセットアップを行いました。

今回は、実際にsasプログラムを登録し、変更する手順を解説します。


プログラムの登録

まず、管理先フォルダ(ここではC:\Users\FMVtest\Documents\Git\SAStest)に簡単なサンプルプログラムを作成してclass.sasとして保存します。SASでもメモ帳等でも構いません。

data class;
  set sashelp.class;
  where age<15;
run;

proc univariate data=class;
run;


保存後、SourceTreeを開くと以下のような画面となります

f:id:japelin:20211207162343p:plain
管理フォルダ以下のファイルを編集すると、自動的に検出してくれる
  • 赤枠:変更を確定する予定のファイル(もしくはファイルの一覧)
  • 青枠:選択したファイルの内容(もしくは変更の差分内容)
  • 緑枠:変更したファイル(もしくはファイルの一覧)


ざっとファイルの内容を確認し(確認するほどでもないですが)、class.sasはひとまずこの内容で確定したいと思います。

まず、画面左上の「+コミット」をクリックしてコミット画面に切り替えます。
コミットとは、変更を確定することを意味します。

f:id:japelin:20211207163121p:plain
コミットボタンには変更数がアイコン表示される

続いて、「class.sas」を選択し、「選択をインデックスに追加」をクリックすると、class.sasが赤枠内に移動します。

f:id:japelin:20211207170112p:plain
確定予定のファイル

登録のためのコメントを入力し、コミットをクリックします

f:id:japelin:20211207162733p:plain
コミットメッセージは分かりやすく簡潔に


さて、これでmasterブランチにファイルが登録されました。

f:id:japelin:20211207163246p:plain
コメントともに登録される


masterブランチとは、このリポジトリ(管理ファイル群)の主となる環境です。(今ではmaster/slaveのイメージを忌避してmainという名前のブランチを使う/と言うことが多いです)
ここからブランチを作成して、例えばテスト環境や、新規機能の開発用の環境などを作成することが可能です。

プログラムの変更

続いて、このファイルに変更を加えたいと思います。
そのため、新しい環境として、修正用のブランチを作成します。

f:id:japelin:20211207163448p:plain
ブランチボタン

ブランチをクリックし、ブランチの名前(ここでは「fix_proc」とします)を指定し、ブランチを作成します。

f:id:japelin:20211207164051p:plain
ブランチの作成画面

新規ブランチを作成してチェックアウトは最初からチェックが入っていると思いますが、「チェックアウト」とは、ブランチを作成して、そのブランチに環境を切り替える、といった操作を意味します。
(ブランチを作成してチェックアウトすることを「ブランチを切る」なんて表現したりします)

f:id:japelin:20211207164213p:plain
fix_procに現在のブランチであることを意味する〇がついている


それでは、先程のファイルを開き、univariateをmeansに変更して保存します。

SourceTreeに切り替えると、変更が検出され、
-と赤表示が削除された行
+と緑表示が追加された行
として表示されます。
(変更は行単位で処理されます)

f:id:japelin:20211207164306p:plain
univariateをmeansに変更した部分が検出されている

それでは、この変更をコミットします。
「選択をインデックスに追加」し、変更のコメントを入力してコミットします。

f:id:japelin:20211207164400p:plain
修正コミットでも修正の概要を記載

これで現在のfix_procブランチでは変更が確定されました。


ブランチの概念を体験するために、ここでmasterブランチに切り替えてみましょう。
masterブランチをダブルクリックするか、右クリックで「masterをチェックアウト」をクリックします。

f:id:japelin:20211207171343p:plain
チェックアウト


masterをチェックアウトしたら、先程変更したclass.sasを開き直してみてください。
変更前のunivariateに戻ってしまっていませんか?

これは、fix_procブランチではコミット(変更を確定)しましたが、masterブランチでは一切変更されていないからなのです。



どうでしょうか。
本番環境に一切手を加えず、修正やテスト実行などができるのです!


話を戻して、fix_procブランチの変更をmasterブランチに反映させましょう

fix_procを右クリックし、「現在のブランチにfix_procをマージ」をクリックし、確認ダイアログでOKをクリックします。

f:id:japelin:20211207164937p:plain
ブランチをマージする

これで変更が反映されました。再度class.sasを開き直して、univariateがmeansになっていることを確認してください。

修正用のブランチは不要であれば削除してしまって構いません。
右クリックから「fix_procを削除」から削除できます。



以上が、最も簡単(単純)なプログラムの登録、変更の反映、の手順となります。


まだまだ続きます。
次回はsasプログラムに潜む問題とその解決方法です。