Creating A Patch/ru
│
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, вы можете создать патч без использования командной строки.
Для 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 --dry-run < svnclasses.pas.diff patching file svnclasses.pas Hunk #2 succeeded at 980 (offset 1 line).
пример ошибки при применении патча:
$ patch --dry-run < svnclasses.pas.diff patching file svnclasses.pas 2 out of 2 hunks ignored -- saving rejects to file svnclasses.pas.rej
Если никаких проблем не возникло, патч можно смело применять, следующей командой:
patch < mypatch.diff
для тех патчей, где участвую файлы из поддиректорий:
patch -p0 < mypatch.diff
Tortoise SVN
В TortoiseSVN встроена возможность применения патча.