マルチプラットフォームGUI GitクライアントSmartGitのご紹介

Posted by 雅楽斎 on Saturday, January 18, 2020

TOC

GUIのGitクライアントであるsyntevo社のLinux/Windows/macOS対応のSmartGitの紹介です。

商用と非商用ライセンス

SmartGitは以下の場合に非商用ライセンスとして利用可能と考えられます。

  • オープンソース開発者
  • 教師と学生
  • 趣味
  • 非商用利用

SmartGit Purchase

Non-Commercial Licenses

SmartGit can be used free of charge by Open Source developers, teachers and their students, or for hobby, non-paid usage. We are also supporting certain public welfare or charity organizations. If in doubt, please contact sales.

機能差分

商用ライセンスと非商用ライセンスの機能差分は以下となります。

  • JIRA統合
  • Github統合
  • Bitbucket Server統合
  • Distributed Reviews(要ライセンス)
  • DeepGitライセンス同梱

Commercial-only features - SmartGit (Latest/Preview) - Confluence

今回は非商用版を使います。

インストール

Windows

インストーラーとportable版がありますが、scoopのExtra Bucketからもインストールできるので、使える場合はそちらを使った方が良いでしょう。

私は自宅内で複数展開するのに構築したScoopのBucketからインストールできるように、パッケージをNASに格納して以下のJSONをmy_smartgit.jsonとして作成してscoopでインストールします。

自宅内にBucketを構築したときの記録は以下になります。

SyncthingとReadyNASで無理矢理構築したオレオレBucketでScoopを使ったWindowsの開発環境整備

{
    "version": "19.1.6",
    "description": "A graphical Git client with support for SVN and Pull Requests for GitHub and Bitbucket.",
    "homepage": "https://www.syntevo.com/smartgit/",
    "license": {
        "identifier": "Proprietary",
        "url": "https://www.syntevo.com/documents/smartgit-license.html"
    },
    "architecture": {
        "64bit": {
            "url": "http://192.168.1.126/Scoop/Bucket/smartgit/smartgit-portable-19_1_6.7z",
            "hash": "sha1:ae36b0739c09b703551d037257bf5cf931740c18",
            "extract_dir": "SmartGit",
            "bin": [
                [
                    "bin\\smartgitc.exe",
                    "smartgit"
                ]
            ],
            "shortcuts": [
                [
                    "bin\\smartgit.exe",
                    "SmartGit"
                ]
            ]
        }
    },
    "persist": ".settings"
}

Linux

debパッケージとtar.gzで提供されています。debパッケージの依存パッケージは指定されていません。

debパッケージをダウンロードしたディレクトリでdpkgコマンドでインストールします。

# dpkg -i smartgit-19_1_6.deb

セットアップ

今回は非商用ライセンスで使うので、チェックボックスにチェックを入れて「Non-commercial use only (most features,no support)」を選択して次に進みます。

非商用ライセンスの条件を確認します。チェックボックスにチェックを入れて先に進みます。

commit時に使うユーザー名とパスワードを入力します。私は無記入のまま次に進みました。

SSH接続時のクライアントも後で指定できるようなので先に進みます。

Window Styleの選択ですがこれも後から変更できるのでそのまま先に進みます。

プライバシーポリシーです。対応サービスで共通のアイコンを使用するgravatar.comを使用するかどうか、エラー発生時に内容を自動的に送るかどうか。オフラインで使うことが結構多いんで両方とも外しました。

起動画面

初回起動時は開いているリポジトリがないため、どれを開くか聞かれている結果宅内Scoopが選ばれています。

Javaで動作していますがフットプリントはそんなに大きくない感じを受けます。Egitと似てる感じを受けるのでSWTですかね?

諸設定

メニューのEdit→Preferencesからとりあえず変更した設定です。

User Interface

Themeを「Dark (independent of system}」へ。

Date Formatを「yyyy-MM-dd」、Time Formatを「HH:mm」へ。

「Shoe verbose date for last days, e.g,Yesterday」のチェックを外す。

Hosting Providers

ここの右のAddから外部サービスとの連携を設定します。選択可能なのは、

  • GitHub
  • Bitbucket
  • Assembla
  • Beanstalk
  • Codebase
  • Gitlab
  • Unfuddle

です。ここでオンプレのGitLabのサーバーに繋げられないのかなと思いましたがまさかの商用ライセンス機能でしたww書いてないじゃんww

User Interfaceは再起動で反映されます。

Ambiant-MATEは非対応扱い

Ubuntu MATE19.10でインストールしてテーマ設定したところ、Ambiant-MATEが非対応GTK themeとして検出されました。だからといっておかしな動作はこれまでのところ確認できていません。

試しにWSL上にあるこのblogのリポジトリを追加してみる

インストール時にCドライブは勝手に検索されて追加されましたが、検索されないclone済みのリポジトリとしてWSL上のリポジトリを選んでみます。

Repository→Search for Repositoriesを選んで、

Search in: の右にある参照ボタンを押すと

結果が表示されるのでOKを押すと

ペインにリポジトリの内容、右下にGitLabの設定が終わってないダイアログ、真ん中にGitLabの認証が一気に出て急に華やぎました。

変更のあるファイル(とファイルを含むディレクトリ)は赤で表示、管理下にないファイルとディレクトリは青い※印がオーバーレイされたアイコンで表示されます。ここからは基本Egitと同じ流れでファイルを選択してstage、commitします。

ブランチ切り忘れ対応

ここではブランチを切り替え忘れて作業を始めた際にStashを使った変更方法をなぞってみます。

SmartGit > featureブランチきり忘れ時の処理 > 変更内容のブランチ移動 - Qiita

```txt:動作環境 Windows 10 Pro (64bit) バージョン 1903 SmartGit 18.2.3 Git for Windows (git version 2.19.1.windows.1) ``` ##...

普段blogの更新はmasterブランチに直接更新をかけてしまっていますが、ここではこの記事の変更を別ブランチで行い、後からマージするという体で作業してみます。

作業ブランチで普通にMarkdownファイルを更新し、画像も追加しました。画像はstageまで終わらせています。

メニューでSave Stashを実行し、メッセージを入力してStash Allを押します。これを行うことでCommitしていないローカルの変更はすべてStashに入ります。

メニューからBranch→Add Branchを選択し、ブランチ名を入力してAdd Branchを押します(Add Branch & Checkoutでも可)

ブランチを切り替えます。左下のBranchesビューで作成したブランチを右クリックし、Check Outを選択します。

メニューからApply Stashを選択、表示されるダイアログでもApplyを押します。

ブランチで更新が終わったら、ブランチでcommitをします。この後、作成したブランチの差分をmasterブランチに引っ張る手順で説明します。

左下のBranchesでmasterブランチをダブルクリックしてブランチを切り替え(Checkout)します。

今度は変更した方のブランチを右クリックしてMergeを選択します。

マージ方法はMerge-Commitにします。

マージ作業に問題がなければマージ終了です。

スポンサーリンク


comments powered by Disqus