Changes between Version 11 and Version 12 of ru/WorkingGuideLines


Ignore:
Timestamp:
06/29/09 18:26:33 (15 years ago)
Author:
iNode
Comment:

updated for consistence with last ticket custom fields changes

Legend:

Unmodified
Added
Removed
Modified
  • ru/WorkingGuideLines

    v11 v12  
    1717   * Патчи с исправлениями разрешено применять только к последней стабильной ветке. Эти ветки называются: mc-X.Y (например: mc-4.6). Патчи с новыми возможностями и реструктуризацией (рефакторингом) недопустимы в стабильных ветках - эти патчи нужно применять к основной ветке 'master'. Просьба также выбрать правильное направление (milestone) для данного тикета: для исправления выберите последнее направление от стабильной ветки (напр. 4.6.2). Для остальных патчей или пожеланий выберите направление по умолчанию (в наст. время это 4.7) 
    1818   * Создайте на основе необходимой ветки другую ветку (например, для исправления создайте ветку от ветки mc-4.6). Все создаваемые ветки должны быть созданы на основе самого последнего коммита из родительской ветки. Новые ветки должны следовать правилу наименования: {{{XYZ-<здесь_некоторое_описание>}}}; где XYZ - это номер тикета; описание должно быть осмысленным и коротким, по возможности. Патчи из тикета не применяются непосредственно к родительской ветке, чтобы мы могли их обсудить и при необходимости пересмотреть. 
    19    * После создания ветки вы должны добавить к ключевым словам тикета (keywords) слово '''review''' для того, чтобы другие разработчики смогли [http://www.midnight-commander.org/report/9 увидеть] ваш тикет как готовый к обзору и обсуждению. Вы можете не добавлять ключевого слова '''review''', в этом случае ветка считается нестабильной и подлежит дальнейшей разработке. 
     19   * После создания ветки вы должны задать в поле severity значение '''review''' для того, чтобы другие разработчики смогли [http://www.midnight-commander.org/report/9 увидеть] ваш тикет как готовый к обзору и обсуждению. Если данное поле не задано в '''review''' ветка считается нестабильной и подлежит дальнейшей разработке. 
    2020 
    2121== Руководство по обзору тикетов == 
     
    4242      * код делает то, что должен делать (что было задекларировано в комментарии к патчу)? 
    4343      * добавляет ли код новые баги (ошибки)? 
    44    * Если патч вам нравится (вы не нашли багов и согласны с идеей в патче), то вы должны добавить к ключевым словам тикета слово {{{vote-<login>}}}, где логин - это ваш логин в Trac. Если же патч не совсем безгрешный, то вы должны заменить ключевое слово '''review''' на  одно из следующих: 
     44   * Если патч вам нравится (вы не нашли багов и согласны с идеей в патче), то вы должны добавить добавить свой голос в поле голосования за принятие изменения (Votes for changeset) в формате {{{vote-<login>}}}, где логин - это ваш логин в Trac. Если же патч не совсем безгрешный, то вы должны заменить значение поля severity с '''review''' на  '''rework''' и задать ключевым словом характер необходимых изменений: 
    4545      * если необходимо просто "почистить" патч (убрать лишние пробелы, повставлять отступы и т. д.), то добавьте ключевое слово '''cleanup'''; 
    4646      * если в в патче присутствуют ошибки (или патч является "хаком"), то необходимо добавить ключевое слово '''rework'''; 
    4747      * если в патче присутствуют кардинальные изменения, сделающие master несовместимым со стабильной веткой, то такие тикеты должны быть заморожены до момента выпуска релиза на основе ветки master (и перед созданием новой стабильной ветки). Такие тикеты должны быть помечены ключевым стовом '''frozen'''. 
    48    * В настоящее время необходимы голоса двух разработчиков, чтобы патч был применён к родительской ветке (либо к стабильной ветке, либо к "master"). Если кто-либо вторым добавляет свой голос, то ему необходимо также добавить ключевое слово '''approved''' (утверждено) к списку существующих ключевых слов. Ключевое слово '''review''' должно быть убрано. 
     48   * В настоящее время необходимы голоса двух разработчиков, чтобы патч был применён к родительской ветке (либо к стабильной ветке, либо к "master"). Если кто-либо вторым добавляет свой голос, то ему необходимо также изменть значение поля severity на '''approved''' (утверждено). 
    4949   * Голосование всегда производится за последний патч в ветке. 
    50    * В ходе обсуждения в тикете либо в ходе просмотра патчей разработчики могут убирать свои голоса из списка ключевых слов при возникновении каких-либо проблем. 
     50   * В ходе обсуждения в тикете либо в ходе просмотра патчей разработчики могут убирать свои голоса при возникновении каких-либо проблем. 
    5151 
    5252== Руководство по применению патчей == 
     
    7777  $ git merge --log 123_branch_name  // слияние с "master" той ветви, которую необходимо слить 
    7878}}} 
    79    
     79 
    8080  Либо если было несколько коммитов в ветви, решающей проблему обозначенную в тикете: 
    8181{{{ 
    8282  $ git merge --log --no-ff 123_branch_name  // слияние с "master" той ветви, которую необходимо слить 
    8383}}} 
    84    
     84 
    8585  * ключ --log показывает в коммите слияния список патчей, которые вводятся этим слиянием; 
    8686  * ключ --no-ff позволяет сгенерировать коммит слияния даже в том случае, если ветвь является дочерней от вершины родителя (по нему проще отследить, какие патчи были сделаны в рамках данного тикета). Этот ключ значительно упрощает понимание взаимосвязей коммитов. 
    87    
     87 
    8888  Далее: 
    8989{{{ 
    9090  $ git push origin master           // обновление данных в удаленном репозитарии 
    91   $ git push origin :123_branch_name // удаление ветви 123_branch_name на сервере  
    92   $ git branch -d 123_branch_name    // локальное удаление ветви 123_branch_name на клиентском хосте    
     91  $ git push origin :123_branch_name // удаление ветви 123_branch_name на сервере 
     92  $ git branch -d 123_branch_name    // локальное удаление ветви 123_branch_name на клиентском хосте 
    9393}}} 
    9494 
     
    9797  $ git rebase -i HEAD~4  //если коммитов было 4 
    9898}}} 
    99   Узнать количество коммитов можно командой  
     99  Узнать количество коммитов можно командой 
    100100{{{ 
    101101  $ git log 
     
    103103 
    104104   * Если слияние произошло с ошибкой (из-за конфликтов), то необходимо вручную исправить конфликты и продолжить слияние. В идеале такого было не должно. Все тикеты _крайне_ желательно проверять, предварительно смержив тестируемую ветку с той, в которую планируется её добавить; иначе в ветку попадает другой код (который в некоторых случаях не только не работает, но даже и не собирается). 
    105    * Теперь вы можете просто закрыть тикет с причиной закрытия "Fixed" (исправлено), необходимо также добавить ключевое слово '''commited-master''', если слияние происходило с ветвью "master". Состояние тикета поменяется на "testing". 
     105   * Теперь вы можете просто закрыть тикет с причиной закрытия "Fixed" (исправлено), необходимо изменить severity на '''commited''' (в поле keywords нужно указать ветку с которой происходило слияние), если слияние происходило с ветвью "master". Состояние тикета (добаляется в поле keywords) меняется на "testing". 
    106106   * После этого перейдите на страницу http://midnight-commander.org/timeline, скопируйте оттуда ссылку на результат слияния и добавьте ее в последнем комментарии примерно так: 
     107{{{ 
     108#!comment  
     109should not use direct link to site 
    107110{{{ 
    108111Fixed: Changeset [http://midnight-commander.org/changeset/f8a487de01fda23370deb4efcdf6e4182c98e827 f8a487de01fda23370deb4efcdf6e4182c98e827] 
    109112}}} 
    110113    или так: 
     114}}} 
    111115{{{ 
    112116Fixed: changeset:f8a487de01fda23370deb4efcdf6e4182c98e827