Difference between revisions of "Creating A Patch/ru"

From Free Pascal wiki
Jump to navigationJump to search
Line 42: Line 42:
  
  
'''Для Windows''' при установленном Лазарусе она находится в папке lazarus/fpc/bin/*версия компилятора*/
+
'''Для Windows''' при установленном Лазарусе она находится в папке  
 +
lazarus\fpc\bin\*версия компилятора*\patch.exe
  
'''Для Unix-систем''' утилита обычно устанавливается вместе с установкой binutils. Для MacOSX утилита устанавливается вместе с XCode.
+
'''Для Unix-систем''' утилита обычно устанавливается вместе с установкой binutils. В MacOSX утилита устанавливается вместе с XCode.
  
  
Line 53: Line 54:
 
где mypatch.diff - имя патч файла.
 
где mypatch.diff - имя патч файла.
  
Сообщения, выдаваемые программой Patch, будут такими же, как и при внесении изменений, но исходный код не будет изменён. Это очень удобно для тестов, чтобы избежать, нежелательного частичного изменения кода.
+
Сообщения, выдаваемые программой Patch, будут такими же, как и при внесении изменений, но исходный код не будет изменён. Удобно тем, что помогает избежать нежелательного частичного изменения существующего кода.
  
  
Если никаких проблем не возникло, патч можно смело применить, с помощью следующей команды:  
+
Если никаких проблем не возникло, патч можно смело применять, следующей командой:  
  
 
   patch < mypatch.diff
 
   patch < mypatch.diff
  
Либо, для тех патчей, где участвую файлы из поддиректорий:
+
для тех патчей, где участвую файлы из поддиректорий:
  
 
   patch -p0 < mypatch.diff
 
   patch -p0 < mypatch.diff

Revision as of 10:02, 17 September 2009

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) português (pt) русский (ru) slovenčina (sk)

Инструкции по созданию патча

Предполагается, что Вы используете SVN версию Lazarus-а. Как получить Lazarus через SVN


Для Windows:

Откройте командную строку (Пуск->Выполнить->cmd) Предположим, что рабочая версия Лазаруса у находится в C:\lazarus (если Лазарус находится в другой папке, вам следует указать нужную в команде 'cd')

вводите следующие команды

cd c:\lazarus
svn diff > mypatch.diff

Заметка: Используя TortoiseSVN, Вы можете создать патч, используя контекстное меню Windows Explorer-a. Нажмите правой кнопокой на иконку папки, где находится рабочая версия Лазаруса, и выбирете в меню: TortoiseSVN->Create Patch...

Для Linux/BSD/MacOSX и т.п.:

Предположим что Лазарус находится в директории: $HOME/lazarus

откройте любую используюмую программу терминала: введите следующие команды:

 cd $HOME/lazarus 
 svn diff > mypatch.diff


В обоих случаях (Windows/*nix), по окончанию работы команды svn diff патч, будет записан в файле mypatch.diff (Если файл mypatch.diff существовал до запуска команды, то он будет перезаписан!)

Заметка: Просмотрите файл с патчем, чтобы в него не попали ненужные изменения


Лучше всего отправлять патчи, через баг трекер. Если Вы предоставляете патч, к уже известной ошибке, то Вам следует приложить патч, к соответствующему сообщению (bug issue). Если Ваш патч, исправляет ошибку, которой о которой ещё не сообщено, Вам следует создать новое сообщение об ошибке. Баг трекер позволит отслеживать, принят патч или нет.

Вы так же можете отправить патч на почтовую рассылку. Предварительно запакуйте файл (размер не должен превышать 40 килобайт), с помощью zip или gzip (не используйте другие архиваторы). Вы также можете послать по этому адресу patch@lazarus.dommelstein.net. Убедитесь, что в subject-e письма указано хотя бы слово patch, иначе письмо может быть отрезано спам-фильтром.

Применение изменений

Для автоматического изменения кода, в соответствии с имеющимся патч-файломи, используется утилита "patch"


Для Windows при установленном Лазарусе она находится в папке

lazarus\fpc\bin\*версия компилятора*\patch.exe

Для Unix-систем утилита обычно устанавливается вместе с установкой binutils. В MacOSX утилита устанавливается вместе с XCode.


Перед внесением изменений, рекомендуется проверить, сможет ли утилита успешно внести изменения в существующий код. Это выполняется следующей командой:

  patch --dry-run < mypatch.diff

где mypatch.diff - имя патч файла.

Сообщения, выдаваемые программой Patch, будут такими же, как и при внесении изменений, но исходный код не будет изменён. Удобно тем, что помогает избежать нежелательного частичного изменения существующего кода.


Если никаких проблем не возникло, патч можно смело применять, следующей командой:

  patch < mypatch.diff

для тех патчей, где участвую файлы из поддиректорий:

  patch -p0 < mypatch.diff