Git で4Dプロジェクトを管理する場合、ほんのわずかなコードの変更であっても、複数のツールを切り替えて作業することになります。4Dでコードを編集し、ターミナルを開いてリポジトリを確認し、差分比較ツールを使って変更内容を確認し、さらにブラウザに切り替えてGitHubにアクセスします。
こうしたコンテキストの切り替えは、本来は「コードの理解と改善」という一点に集中すべきワークフローに、余計な負担を強いることになります。
4DPop Git は、Git やGitHub での一般的な操作を、4D IDE に直接統合します。これにより、4D開発者は、普段作業している環境を離れることなく、変更内容の確認、的確なコミットの準備、履歴の探索、ブランチの切り替え、プロジェクトの同期を視覚的に行うことができます。
プロジェクトの状況をひと目で把握
Gitウィジェットは「4DPop 」ツールバーから直接利用でき、別のツールを開くことなくリポジトリの概要をすばやく確認できます。
このウィジェットからは、以下の情報を確認できます:
- 現在のブランチ
- ローカルでの変更
- プル可能なコミット
- プッシュ待ちのコミット

また、同じ場所からリポジトリの更新、Git メインウィンドウの起動、ブランチの切り替え、リポジトリ設定へのアクセスを行うこともできます。
プロジェクトがまだ Git リポジトリになっていない場合、4DPop Git がそれを初期化することができます。これにより、ローカルの.gitフォルダが作成され、Git がプロジェクトの追跡を開始できるようになります。リモートリポジトリは自動的に作成されません。
4D内で変更内容を確認し、直接コミットする
メソッドを変更した後、通常はコミットする前に、何が変更されたかを正確に把握することが次のステップとなります。
「変更」ページでは、ローカルでの変更とGitインデックスが区別されます。同じウィンドウ内でファイルを選択し、差分を確認し、次のコミットに含める変更を選択し、コミットメッセージを作成することができます。

この区別は、同じ作業ディレクトリ内に無関係な変更が複数存在する場合に特に役立ちます。すべてをまとめてステージングする代わりに、後で理解やレビューが容易な、より小規模で焦点を絞ったコミットを準備できます。
ファイルメニューには、個々の変更を扱うための実用的なアクションも用意されています。ファイルを 4D コードエディタや外部の差分ツールで開いたり、そのパスをコピーしたり、無視パターンを追加したり、確認後にローカルの変更を破棄したりすることができます。
.gitignore を更新する前に、4DPop Git では追加されるパターンをプレビューすることもできます。
コードの変遷を理解する
重要なのは、何が変更されたかだけでなく、コードがどのようにして現在の状態に至ったかという点である場合もあります。
[History]ページには、コミットとともに、ブランチやマージを示す色分けされたグラフが表示されます。ローカルブランチ、リモートブランチ、タグ、スタッシュがグラフに直接表示されるため、リポジトリの構造とその変遷をより明確に把握できます。

コミットを選択すると、作成者、日付、識別子、変更されたファイル、および親コミットとの差分を確認できます。
履歴はバックグラウンドで読み込まれるため、4DPop Gitが大規模なリポジトリを読み込んでいる間も、インターフェースを使い続けることができます。
また、4DPop Git は 4D メソッドエディタに 2 つのマクロを直接追加します:
- 「Git 履歴」は、現在編集中のファイルを変更したコミットを開きます。これには、名前の変更履歴や未コミットの変更も含まれます。
- 「選択行に対する最新のコミット」は、選択された行を変更した最新のコミットを特定します。

これらのアクションにより、コーディングのフローを中断することなく、有用なコンテキスト情報を得ることができます。古いビジネスロジックに遭遇したり、リグレッションを調査したり、共有コードベースで修正を準備したりする際、変更がいつ導入され、どこから来たのかを素早く確認できます。
チームとの同期
変更の準備が整ったら、Git ウィジェットまたはメインウィンドウから直接、フェッチ、プル、プッシュを行うことができます。
pull はマージおよびリベースのワークフローをサポートしており、必要に応じてローカルの変更を自動的にスタッシュするオプションもあります。
プッシュではブランチを公開できるほか、リモート履歴の書き換えが意図的な場合には「–force-with-lease 」もサポートしています。
リモートリポジトリが設定されていない場合、「GitHub に公開」機能を使用すると、セットアップが簡単になります。この機能では、認証に GitHub CLI のデバイスフローを使用し、コンポーネントが GitHub リポジトリを作成して、ローカルのコミットをプッシュします。
これにより、4D内でGitHubトークンを手動でコピーしたり管理したりする必要がなくなります。
4DPop Gitのインストール
4D 21 以降では、依存関係マネージャーを通じて、以下の GitHub 依存関係を追加することで 4DPop Git をインストールできます:vdelachaux/4DPop-Git
このコンポーネントはローカルの Git 実行ファイルを使用するため、コンピュータには Git もインストールされている必要があります。
GitHub CLI はオプションですが、「GitHub への公開」ワークフローを使用する場合は、その使用を推奨します。
4D コードからの Git ワークフローの自動化
4DPop Git は、そのビジュアルインターフェースだけに限定されません。git クラスストア のネームスペースを通じて、スクリプト化可能な API も提供しています。
たとえば、ホストプロジェクトは、4Dコードから直接、変更をステージングし、コミットを作成してプッシュすることができます:
var $git : cs.git.Git:=cs.git.Git.me
$git.add("all")
$git.commit("Update customer dashboard")
$git.push()
この API により、リポジトリの状態、ブランチ、リモート、タグ、スタッシュ、履歴、差分、Git LFS、およびコマンドの結果にアクセスできます。
これにより、Git操作を手動での操作に限定することなく、リポジトリを意識したアクションを独自の4Dツールやワークフローに組み込む柔軟性が得られます。
4DPop Git は 4D プロジェクト向けに設計されています。.4dbや.4dc などのバイナリデータベースは個別のプロジェクトファイルとして管理されないため 、Git ワークフローを同様に利用することはできません。
GIT をコードの近くに
4DPop Git により、リポジトリのステータス、履歴、差分、コミット、同期が、現在作業中のコードにより身近なものになります。
アプリケーション間を移動することなく変更内容を確認したり、より整理されたコミットを作成したり、コードの変遷を把握したり、日常的なGit操作を4Dから直接行ったりすることができます。
試してみる準備はできましたか?
GitHub の 4DPop Git リポジトリにアクセスして、インストール手順、ユーザーガイド、スクリーンショット、API ドキュメントをご覧ください。
また、4D フォーラムでフィードバックやワークフローに関するアイデアを共有することもできます。
現在、この投稿へのコメント機能は利用できません。