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

From VSI OpenVMS Wiki
Jump to: navigation, search
(Quick uploading)
Line 13: Line 13:
 
     5.2. В противном случае запускается SSH Shell и время файлам устанавливается командами DCL '''set file FILE.EXT /attribute(mod=DATE,att=DATE)'''
 
     5.2. В противном случае запускается SSH Shell и время файлам устанавливается командами DCL '''set file FILE.EXT /attribute(mod=DATE,att=DATE)'''
 
6. После этого выставляется флаг синхронизированности проекта.
 
6. После этого выставляется флаг синхронизированности проекта.
 +
 +
=== Upload using ZIP ===
 +
Все файлы на стороне PC, соответствующие маскам '''source''', '''headers''', '''builders''', '''resource''', и не попадающих в исключение '''exclude''', архивируются и архив выгружается на VMS.
 +
    1. Если задано '''unzipCmd''', то для разархивации будет послана команда '''unzipCmd''' + имя архива. Команда для разархивации должна учитывать следующие факторы: времена файлов должны выставляться по текущему времени на компьютере, и разархиватор не должен ничего запрашивать от пользователя, т.е. всегда разархиваировать поверх или наоборот.
 +
    2. Если '''unzipCmd''' пуст, то для разархивации будет послана команда '''unzip -oo "-D" ''' + имя архива
 +
Если всё прошло успешно выставляется флаг синхронизированности проекта.
  
 
=== Uploading ===
 
=== Uploading ===
 +
1. Если '''preferZip''' установлен в true, то будет выполнено Upload using ZIP.
 +
2. Если '''preferZip''' не установлен, то Uploading выполняется как Synchronization, только список '''B''' всегда игнорируется.
  
 
=== Quick uploading ===
 
=== Quick uploading ===
Line 35: Line 43:
  
 
=== Building ===
 
=== Building ===
 +
  
 
=== Debugging ===
 
=== Debugging ===
  
 
[[Category:VMS IDE]]
 
[[Category:VMS IDE]]

Revision as of 08:27, 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

На удалённую машину будут загружены файлы, соответствующие маскам 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