Difference between revisions of "VMS IDE How does it work"

From VSI OpenVMS Wiki
Jump to: navigation, search
(Quick uploading)
Line 25: Line 25:
  
 
=== Quick uploading ===
 
=== Quick uploading ===
 +
Работает для проекта, на котором стоит курсор в закладке '''PROJECT DEPENDENCIES'''.
 
На удалённую машину будут загружены файлы, соответствующие маскам '''source''', '''headers''', '''builders''', '''resource''', и не соответствующие исключению '''exclude''', которые были изменены с момента последней синхронизации, аплоада или с начала работы программы. Если файл был удалён на PC, он также будет удалён и на VMS.
 
На удалённую машину будут загружены файлы, соответствующие маскам '''source''', '''headers''', '''builders''', '''resource''', и не соответствующие исключению '''exclude''', которые были изменены с момента последней синхронизации, аплоада или с начала работы программы. Если файл был удалён на PC, он также будет удалён и на VMS.
 
Если проект до начала изменений файлов был синхронизирован, то после Quick uploading он будет считаться синхронизированным. Иначе флаг синхронизации не изменится.
 
Если проект до начала изменений файлов был синхронизирован, то после Quick uploading он будет считаться синхронизированным. Иначе флаг синхронизации не изменится.

Revision as of 10:48, 19 February 2020

How does it work

Synchronization

1. Из VMS загружается список файлов, начиная с root папки, соответствующих маскам source, headers, builders, resource, и не попадающих в исключение exclude. 2. Такой-же список подоготавливается на стороне PC. 3. Сравниваются времена изменения соответсвующих файлов и создаются два списка: A - файлы, которые новее на PC, и B - файлы, которые новее на VMS. Учитывается разница во времени не менее секунды. 4. Проверяется значение downloadNewFiles:

   4.1. Если downloadNewFiles равен skip, то список B игнорируется.
   4.2. Если downloadNewFiles равен edit, то файлы из списка B загружаются в память PC и отрываются окна для сравнения с версией на PC, редактирования и сохранения изменений.
   4.3. Если downloadNewFiles равен overwrite, то файлы из списка B загружаются на PC поверх старых.

5. Файлы из списка A выгружаются на VMS и для них выставляется время, которое было у файлов на PC:

   5.1. Если в настройках SSH установлено supportSetFileTime, то установка времени файла будет осуществляться посредством команд SSH
   5.2. В противном случае запускается SSH Shell и время файлам устанавливается командами DCL set file FILE.EXT /attribute(mod=DATE,att=DATE)

6. После этого выставляется флаг синхронизированности проекта.

Upload using ZIP

Все файлы на стороне PC, соответствующие маскам source, headers, builders, resource, и не попадающих в исключение exclude, архивируются и архив выгружается на VMS.

   1. Если задано unzipCmd, то для разархивации будет послана команда unzipCmd + имя архива. Команда для разархивации должна учитывать следующие факторы: времена файлов должны выставляться по текущему времени на компьютере, и разархиватор не должен ничего запрашивать от пользователя, т.е. всегда разархиваировать поверх или наоборот.
   2. Если unzipCmd пуст, то для разархивации будет послана команда unzip -oo "-D"  + имя архива

Если всё прошло успешно выставляется флаг синхронизированности проекта.

Uploading

1. Если preferZip установлен в true, то будет выполнено Upload using ZIP. 2. Если preferZip не установлен, то Uploading выполняется как Synchronization, только список B всегда игнорируется.

Quick uploading

Работает для проекта, на котором стоит курсор в закладке PROJECT DEPENDENCIES. На удалённую машину будут загружены файлы, соответствующие маскам source, headers, builders, resource, и не соответствующие исключению exclude, которые были изменены с момента последней синхронизации, аплоада или с начала работы программы. Если файл был удалён на PC, он также будет удалён и на VMS. Если проект до начала изменений файлов был синхронизирован, то после Quick uploading он будет считаться синхронизированным. Иначе флаг синхронизации не изменится.

File masks

Example Meaning
**/folder/** All files which have this folder in path
*.ext All files with extension ext
*. All files without extension
**/build/**/*.com All files with com extension which have build in path

Building

Debugging