ソースコードとコンパイルされたプログラムはD3内に保存されているため、Pick D3データベースでgitを使用する方法はありますか?
唯一のオプションは、ソース コードを D3 のファイルにインポート/エクスポートするルーチンを構築することだと思いますが、それは大変な作業のように思えます。また、D3 の組み込みエディターで簡単にバイパスできます。
1 に答える
この回答がまばらすぎる場合はお知らせください。もちろん、これが質問への回答である場合は受け入れてください。私は GitHub を使用していますが、どこにもプライベート Git リポジトリがなく、コマンドラインも使用していません。ただし、私は Subversion で次の手法を使用しています。これは VCS 固有のものではないため、Git、Hg、およびその他すべてで機能します。
解決策は、D3 OSFI を使用することです。
- ホスト ファイル システムを git 用にセットアップし、フォルダーをリポジトリにポイントするなど。
- 1 つのファイル (BP と呼びます) のプログラム ソースを別の D3 ファイルにコピーします。
- BP ファイルのデータ ファイルだけを削除し、辞書は残します。
- ここで、ホスト フォルダーへの BP と呼ばれる Dict BP に QS ポインターを作成します。
- これで BP を LIST できるようになり、アイテムを取得できなくなります。
- すべてのソースを BP にコピーします。ホスト OS を見ると、フォルダー内のすべてのアイテムが表示されます。
- OS コマンドラインから最初のコミットを行い、動作することを確認します。
- ここで、OS コマンドラインをラップする BASIC プログラムを作成します。
EXECUTE "!cmd -options ..." CAPTURING OUT
必須フィールドの入力を求め、コミットを行うために必要なところまで到達します。そのプログラムを COMMIT または GIT.COMMIT としてカタログします。
これで、D3 内から通常どおりにプログラムを編集/コンパイル/実行できます。準備ができたら、COMMIT を実行し、コメントやその他の詳細を提供するだけで、プログラムが OS レベルの詳細を処理します。返信は、表示および/またはログに記録する必要があります。
この時点で、D3 の外部で BASIC コードを編集してから、COMPILE コマンドを D3 に送信することを決定する場合があります (オブジェクトを VME で生成し、Dict に格納する必要があるため)。
ロールバックやその他の機能のために、BASIC の git ラッパー コマンドの「ライブラリ」に追加することもできます。
BASIC プログラムも D3 ファイル保存およびアカウント保存に保存されるように、QS ポインタが必要です。これは、復元が必要な場合に問題を引き起こす可能性があります。これを試してみてください。アカウントを保存してから別の場所に復元すると、保存したデータがホスト OS にあるものを上書きするため、頭痛の種になる可能性があります。
QS ポインターを設定するときは、DOS: または UNIX: のホスト拡張機能を使用しないでください。C:/Dev/Git/RepoD3 のようなパスを使用するか、*nix /home/dev/git/repoD3 を指定してください。間違ったホスト拡張子を使用すると、データに間違った EOL 区切り文字が含まれます。また、タブをスペースに、またはその逆に変換したくない場合もあります。これを試してみると、まさにあなたが望むことを行う独自のホスト拡張を作成することに決めるかもしれません。(この回答の範囲外です。)
ステップ 8 では、!command-line を使用して TCL からコミットできます。BASIC ラッパーは必要ありません。ただし、サーバー出力がそのチャネルを介して戻ろうとする問題が発生する可能性があるため、BASIC から OS 機能を実行することを強くお勧めします。次のようなものを使用して、複数のプロンプトに応答できます。
CMD = "!do this "
CMD := OPTIONS
CMD<-1> = Response.To.First.Prompt
CMD<-1> = Second.Response
EXECUTE CMD CAPTURING OUT
そうすれば、何もハングアップしません。