Используя git с базой данных Pick D3
Есть ли способ использовать git с базой данных Pick D3, так как исходный код и скомпилированные программы хранятся внутри D3?
Я думаю, что единственным вариантом будет создание подпрограмм для импорта / экспорта исходного кода в файлы в D3, но это кажется большой работой, и также легко обойти со встроенными редакторами в D3.
1 ответ
Пожалуйста, сообщите, если этот ответ слишком скудный, и, конечно, примите, если он отвечает на вопрос для вас. Я использую GitHub, но у меня нет ни одного частного репозитория Git, и я никогда не использую командную строку. Тем не менее, я использую следующую технику с Subversion, и так как ничего из этого не зависит от VCS, она будет работать с Git, Hg и всем остальным.
Решение состоит в том, чтобы использовать D3 OSFI.
- Настройте файловую систему вашего хоста на git, указав папку на репозиторий и т. Д.
- Скопируйте исходный код программы для одного файла (назовем его BP) в другой файл D3.
- Удалите только файл данных вашего BP-файла, оставьте dict.
- Теперь создайте QS-указатель в Dict BP, называемый BP, на папку хоста.
- Теперь вы должны быть в состоянии перечислить BP и не получить предметы
- Скопируйте весь источник обратно в БП. Если вы посмотрите на хост-ОС, вы увидите все элементы в папке.
- Сделайте свой первый коммит из командной строки ОС, убедитесь, что он работает.
- Теперь создайте 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
Таким образом, ничто не зависает.