Changes between Version 7 and Version 8 of ru/WorkingGuideLines
- Timestamp:
- 06/16/09 18:41:45 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ru/WorkingGuideLines
v7 v8 23 23 Так же, как существует руководство по созданию тикетов, существует и руководство по обзору тикетов. 24 24 * Список тикетов, которые необходимо просмотреть, находится по адресу: http://www.midnight-commander.org/report/9. 25 * Вы можете просмотреть и протестировать патч, просто переключившись на ветку для этого тикета. 25 * Вы можете просмотреть и протестировать патч, просто переключившись на ветку для этого тикета (но более правильно - провести слияние ветки с веткой, для которой он предназначен; и тестировать этот конечный результат): 26 {{{ 27 $ # Упрощенный вариант тестирования: 28 $ git checkout origin/123_branch_name 29 $ <собираем/тестируем> 30 }}} 31 {{{ 32 $ # Идеальный вариант тестирования: 33 $ git checkout master 34 $ git reset --hard origin/master 35 $ git pull 36 $ git merge --log --no-ff origin/123_branch_name 37 $ <собираем/тестируем> 38 }}} 26 39 * Если посмотреть на патч, то необходимо проверить: 27 40 * является ли патч вкладывающимся в общую концепцию проекта или патч является "хаком"? … … 50 63 * После первой строки описания коммита добавьте дополнительный перенос строки. 51 64 52 '''Перед внесением изменений в обязательном порядке нужно перебазировать (rebase) свою ветку относительно родительской'''.53 54 65 Пример слияния с master: 55 66 {{{ … … 58 69 $ git checkout master // переключение на ветвь "master" 59 70 $ git pull // обновление текущей ветви 60 $ git merge --log 123_branch_name // слияние с "master" той ветви которую необходимо слить 71 $ git merge --log --no-ff 123_branch_name // слияние с "master" той ветви которую необходимо слить 72 // --log показывает в merge коммите список патчей, которые вводятся этим мержем 73 // --no-ff в этом случае генерируется merge коммит даже, если ветка является дочерней 74 // от вершины родителя (по нем проще отслеживать какие патчи входили в решение данного тикета) 75 // Это немного увеличит историю, но упростит дальнейшее ковыряние в ней. 76 // 77 // Параметр можно опускать, если ветка состоит из единственного патча и комментарий к коммиту 78 // содержит ссылку на баг на траке. В тривиальном случае перед вливанием в master можно произвести rebase. 61 79 $ git push origin master // обновление данных в удаленном репозитарии 62 80 $ git push origin :123_branch_name // удаление ветви 123_branch_name на сервере 63 81 $ git branch -d 123_branch_name // локальное удаление ветви 123_branch_name на клиентском хосте 64 82 }}} 65 * Если слияние "merge" произошло с ошибкой (из-за конфликтов), то необходимо вручную исправить конфликты и продолжить слияние (merge). 83 * Если слияние "merge" произошло с ошибкой (из-за конфликтов), то необходимо вручную исправить конфликты и продолжить слияние (merge). В идеале такого было не должно. Все тикеты _крайне_ желательно проверять предварительно смержив тестируемую ветку с той, в которую планируется ее добавить; иначе в ветку попадает другой код (который в некоторых случаях не только не работает, но даже и не собирается). 66 84 * Теперь вы можете просто закрыть тикет с причиной закрытия "Fixed" (исправлено), необходимо также добавить ключевое слово '''commited-master''', если слияние происходило с ветвью "master". Состояние тикета поменяется на "testing". 67 85 * После этого перейдите на страницу http://midnight-commander.org/timeline, скопируйте оттуда ссылку на результат слияния и добавьте ее в последнем комментарии примерно так: