Используя git с базой данных Pick D3

Есть ли способ использовать git с базой данных Pick D3, так как исходный код и скомпилированные программы хранятся внутри D3?
Я думаю, что единственным вариантом будет создание подпрограмм для импорта / экспорта исходного кода в файлы в D3, но это кажется большой работой, и также легко обойти со встроенными редакторами в D3.

1 ответ

Решение

Пожалуйста, сообщите, если этот ответ слишком скудный, и, конечно, примите, если он отвечает на вопрос для вас. Я использую GitHub, но у меня нет ни одного частного репозитория Git, и я никогда не использую командную строку. Тем не менее, я использую следующую технику с Subversion, и так как ничего из этого не зависит от VCS, она будет работать с Git, Hg и всем остальным.

Решение состоит в том, чтобы использовать D3 OSFI.

  1. Настройте файловую систему вашего хоста на git, указав папку на репозиторий и т. Д.
  2. Скопируйте исходный код программы для одного файла (назовем его BP) в другой файл D3.
  3. Удалите только файл данных вашего BP-файла, оставьте dict.
  4. Теперь создайте QS-указатель в Dict BP, называемый BP, на папку хоста.
  5. Теперь вы должны быть в состоянии перечислить BP и не получить предметы
  6. Скопируйте весь источник обратно в БП. Если вы посмотрите на хост-ОС, вы увидите все элементы в папке.
  7. Сделайте свой первый коммит из командной строки ОС, убедитесь, что он работает.
  8. Теперь создайте BASIC-программу, которая переносит командную строку ОС. Запрашивать обязательные поля и получить его в точке, где вам просто нужно EXECUTE "!cmd -options ..." CAPTURING OUT для того, чтобы сделать коммит. Каталог этой программы как COMMIT или GIT.COMMIT.

Так что теперь вы редактируете / компилируете / запускаете ваши программы как обычно из D3. Когда все будет готово, просто выполните COMMIT, предоставьте комментарии или другие подробности, и ваша программа обработает детали на уровне ОС. Ответ должен отображаться и / или регистрироваться.

На этом этапе вы можете отредактировать свой код BASIC вне D3, а затем отправить команду COMPILE в D3 (потому что объект должен быть сгенерирован в VME и сохранен в Dict).

Вы также можете добавить в свою "библиотеку" команд оболочки git в BASIC для отката и других функций.

Вам нужен указатель QS, чтобы программы на БЕЙСИКЕ также сохранялись в файле D3 - сохранение и сохранение учетной записи. Это может вызвать проблемы, если вам нужно восстановить, вы должны поэкспериментировать с этим. Если вы сохраните учетную запись, а затем восстановите ее где-то еще, у вас могут возникнуть головные боли, поскольку данные из сохранения будут перекрывать все, что находится в хост-ОС.

При настройке указателя QS не используйте расширения хоста DOS: или UNIX: просто используйте путь типа C:/Dev/Git/RepoD3 или для *nix /home/dev/git/repoD3. Если вы используете неправильное расширение хоста, в ваших данных будут неправильные разделители EOL. Вы также можете не захотеть, чтобы табуляция конвертировалась в пробелы и наоборот. Поэкспериментируйте с этим, и вы можете решить создать собственное расширение хоста, которое будет делать именно то, что вы хотите. (За рамками этого ответа.)

На шаге 8 вы можете сделать коммит из TCL с помощью командной строки! Вам не нужна бейсиковая обертка. Однако могут быть проблемы с выходом сервера, пытающимся вернуться обратно через этот канал, поэтому я настоятельно рекомендую выполнять функции ОС из BASIC. Вы можете использовать что-то вроде этого, чтобы ответить на несколько запросов:

CMD = "!do this "
CMD := OPTIONS
CMD<-1> = Response.To.First.Prompt
CMD<-1> = Second.Response
EXECUTE CMD CAPTURING OUT

Таким образом, ничто не зависает.

Другие вопросы по тегам