Project

General

Profile

Использование инструмента ReviewBoard

Настройка Mercurial для работы с RBTools

Описание наборов изменений

RBTools подразумевает, что вы используете формат Mercurial для составления набора изменений (diff). Проверьте, что у вас не используется формат Git, т.е. отсутствуют следующие строчки в .hgrc:

[diff]
git=1

Обеспечение доступа к репозиторию без ввода пароля

RBTools подразумевает, что для выполнения операций с репозиторием ему не надо будет вводить имя пользователя и пароль. Для решения этой задачи их необходимо сохранить во внешнее хранилище. Правильным способом является включение расширения Mercurial Keyring, которое позволяет сохранить пароль в безопасной базе данных.

Настройка расширения описана в официальной документации: http://mercurial.selenic.com/wiki/KeyringExtension

Краткие шаги по установке данного окружения в Debian Stretch:

sudo apt-get install mercurial-keyring

Затем необходимо добавить следующее расширение в mercurial:

[extensions]
mercurial_keyring =

Установка и настройка RBTools

Отправка изменений на Review

Предположим, что вы сделали 4 набора изменений 168 169 170 171 для решения задачи 15235 в трекере. Для того, чтобы отправить их на сервер ReviewBoard необходимо выполнить следующие действия:

hg push
rbt post --bugs-closed 15235 -o 167 171

Обратите внимание, что в качестве базовой необходимо указать номер ревизии, относительно которой был сделан первый комит из серии. В текущем случае в качестве первой ревизии следует указать 167

Отправка изменений на ReviewBoard

Схема отправки

Error executing the plantuml macro (Error applying external filter: stdout is ["\x89PNG\r\n\u001A\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0003C\u0000\u0000\u0000U\b\u0002\u0000\u0000\u0000\u0004Ũ\xA3\u0000\u0000\u0000)tEXtcopyleft\u0000Generated by http://plantuml.com\u001109\u001C\u0000\u0000\u0001\x97zTXtplantuml\u0000\u0000x\x9C\x95\x93[O\xE30\u0010F\xDF-\xF5?\x8C\xC4K\xFB\x90\xA8\xA6\xA1\x94hŲ˽4-\xC2P\xAD\x84\u00102d\b\u0016\xC98r\xEC\u0016\xF8\xF58D\xB0\xE5R\xD8\xF5C\xA4q\xE6;sd\xD9[\x95\x95ƺ\"o\xB1\xEANQ)\x8D, \xC5\e\xE9r\xBB\xA7Ɏe\x81\xB0\xA7\x8C\u0004!\xA9Z\xD2$\xD4#\u0002\x8FZ\xEC\u0004g\n翵4)\xFC\b\xE0\xE7\xEB\x82x\xA1\xF0\xE5\xEBgq\xB5\xD8[B\xB0\xF9\xA1\xE5\u0003\xE9}\xE6\xCD\xD4\xFF\x9A\xFE\x9E*s\vseo\xB5\xB3P\xE6.ST\xEF\u0002,5\xFCl\xCA\"\xB0\x8E\xA6\x85\"\xFC\xF2h>\x8Db^\xE1\xB3\xCCr\x93\xF3\x95\xCC ҅Wz\u0019\xF3/`J\xBF<\xC1\xEF\u00185e\xCBC\x9E/\u0010;\xCE%ٳd\u000434\x95\xD2\u0004<\\\xED\xF2\xF5\x90\xAF\xB5\u0013_\r]\u000E\xDD\u001E\xF0\x8D8Z\x8B{\u0011$\xE2\b\xEA\xFF\u001D\xD6\xDE?\u001EA\xA5\x9D\xB9FHUe\x8D\xBAr\xD6\u0003:l(g\u0012N\u001CYU`\fu\xD5>M: v_6a\x97f\xCAh*\x90,\eN\x93\xA6\t\u000E\xB4\u0015\xA5\xB6M3\u001A/\u0004Ӥ\xA1M\e\xB9\xD8\xDB\r\xC2\xEE%\xE7<\xB8\xE2\u0011\x9B\x94h\xA4U\x94\x81x\xA8,\u00161\x8C\u0014\xB9{6\u0011\u007F\u0013\xBDp5\xEC\u0006Q\xD0\u001F\xF4\x83R\"\xDBiހw\xB8֩\x8F\xC6\xF0k,\u000E/\xFF\xF4\xC2(\xE0\e\xFD\u0001\eIʜ̼:\u0012\xDB\xD6^\xD9<\xC4p&\xD8\u0013|g\xFBDQ\x97\xF1)\u0000\u0000\u0016\x8AIDATx\xDA\xED\x9D\u007FhUG\x9B\xC7gN\xE3M\xAAyc\xA2\x8D\xA9?b4Ƙ\xC4Dc\xCAK\u0011\xB7\xFB\"\x88H\x91\"\x82\x94\xE2\x96\"]\x8A\u0014\xE9\x96RxY^\xCA\xC2\xCA\xFE\xB3\u0014)\xEF.\x82H\u0011)\xE5\u0005\x91\xE2\xEBJ_\xC1\xB7\x88\x88\u0014AB)R\x8APD\x8A\u0014\u0011\xC4\u0015\x91\u0010\\\xDC\xE7\x999\xF7\xDCs\xCF=\xF7\xDCs\x93k̏χK8g\xCEsg\x9E\x99s.\xF3\xCD̙y\x8C\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000Xh\xBC\xF6,\x90\u000F\xED\u0000\u0000\u0000\u0000\xF3\x97\xC0t~h\xFB/\xDBmO\x82\xB1\xC9`\xF8V\xD0\xFD\x85-tϜZz~z\v%\a\u0000\u0000\u0000\xF3\x99E]f\xF0F\xD0w\xDE\xFE\xEE\u000F*\xE9\u0004\xD1p+\xFFd\xB7\xDC\r\x96\xBEiQr\u0000\u0000\u0000\u0000\xB3\x95\xC0\f\xFD\u0010t}\x92\xA2\xD8^\u001E6\"\xE6Z\x86\x8A\x82o\xB5Ywڎ>\xD2A\xBBч\xC1\xFA\xAF\xEC\x92\xED%\xA9\u0014}\xA2\xAF\xAF8b\xE5t\xEC\xA9\u001A\xAF=n_\xEA(\x93V\xED\xFB\xED\xA6k\xC1\xB6'A\xE2\xEBQ\u000E\x95\n\xAC\xF2\xEA+\xEFۑ\xDB\xC1\xD8D0t3h\xDBcW\u001D\xB5[\xEF\xE9\xE9\xC0\xF5\x92\xDB(9\u0000\u0000\u0000\x98\xB7\xAC\xF8\xC8\xF6\x9EU\u0019\xB7h\xA5\u0011\u0001$*\xAD\xF7\x8C\x8D\xD4O\xE7\x87V\u0014\x9B\xB7\u001C\xBC\xA1\x89\xBF۩\xA7\xC1b\xD3q@gc3\xD4Rק\xB6\xB9W\u000FD\xB4\xC9՞\u0013e\xC6\xF2\xDD\xF8\xECm\xB6n\xAB\xA6\xE4DY\xDA&#.\xC5O\xDBv\xEB\xE9\xE0x\x80\x92\u0003\u0000\u0000\x80y\xCE\xC0\xF7\xC1\x92\xD7\xF5@\xF4\x9C(\x9E\xA5{m\xFB\xBE\x92\x92\u0013\xC56\xFA(\x94AcOu\x80\xED\xE5-)\x99\xD4TKr5\xCA\xC7\e7\xF7\x99\x9A\xBAMde\xB6\x92\v\xB5`P~Zt\u0015%\a\u0000\u0000\u0000\u{DCC49}\xC0\xBF\e'\a\xAAx\x82\x920\n\r\x8Arʏɩ\xC0\x9A\xD0\u0011\xAF5\xC7좕UuXs\xAF\xE9;\xEF\xA6b\x9F֞6\xAD\xAA\xE4&j(\xB9j_\xAFY\u001C\u0000\u0000\u0000\xC0\xFCWr\x8BG\xF5-:o\xA9\xEFɝ\xD2\u0017\xD1\"e\x961\x83\xE9e\xDF\xF2C6\xA7\xB4B\xC9\u0001\u0000\u0000\u0000\xD4\xCD\xC0\xF5pvuù\xE4\xECj\xA1G\xAF\xB6\xEDI.\x86\xB0MF\xCCⳟ\x95jI.E)\xCD}SQr~0\xCF\u0014\xD3Z\u0006Pr\u0000\u0000\u0000\u0000\xE5\xBC\xFAG\xBB\xEETq\xC5\xC3\xF7:\u0019\xBA\xFE/֏\x87\xF5}\e\xAEN\xF5l\xBCh\xDB߲\xB6\xA0ǭ;T!\x89\xBD\xBF\xB4\xF5\xBE\xAA\xA5E]%\xE3\xC1\xF1\xC0\xEBB\xB1\xF7\u001A1[ZU\xE6 \"RRV|\xA4\xBE\u0015\xBAͦ+\u0001J\u000E\u0000\u0000\u0000\xA0\fQZ\x9B\u007F\u000E\x96\xBFW{\xDF8Qu뿶\xA3\u000FÍED\xFFE\xEF\xC9-?\xA4\xE9q\xCD\xD4ү\u0013\xACb9r'\xE8<\\[\xC9U\xE6P\xE8Q\xED(\x82R2\u0011\xC9\u0018_\x87\x81\x92\u0003\u0000\u0000\u0000\b\u0011A6\xF4\xA3\xDB\u001F\xEEu\xE3ߓ[<jV\xFFGi\xFF\u0011\u0000\u0000\u0000\u0000\x98\xC5\u0004\xBA\x91\xEF\xA6+\xBAU\xEF؄F\xEBZ{ܦn8\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00000O\xC8X\xF59\xBF\u0017\x84\xD6U\xBB\xF6}v\xE4N\u0018\xCAb\xC6\n\u0005\u001A\r\u0000\u0000\u0000%\xD7\u0000}\xB0\xE5\xAE\xDB\tou#\vM\x8DxQ\xF9y\u001E5\xF5)\xDD\u007F\xB6\xB3\xE7vgԽ\x81\x8E\xD9&\xB3\xEA\xA8\u001D\xF9U\xF7\xBB\u001E\x9B\xD0}v6]A#\u0002\u0000\xC0\x82\u00114\v\xB6\xE2\xCFCTU\u0013X3P\xD3H*-~mv)\xB9\xE7]ʚc\xBAa\u1C83\xD6\u0004\xBA\xC9\xE2\xD27\xEDƋ\xEC\xC2\u0003\u0000\u0000\xB3\u001E\x8D\xA6zڅ\xBA\x9F\xD4q\b\xDDUn{J\u000F\xBA\xE4u3\xFA\xC0\u0005]\xF8ئʎ\xF6}v\xD35\u001D\xCC\xD8\xF6$\xD8x\xC96\xF7\x96e\xB2\xFC=\xBB\xF9g\xBD:r;X\xFEnY\a\xB9\xE2\x88\v)\xE1v\e^{ܾ\xD4Q\xF6\xC5\xF6\xFD\x9A\xAD\xE4\u0019\u0015\x97m\xFF\xCA\xFBV\x8A\x90\x82\x86nj\x9C\xB1UG5P\xAC\x9C\u000E\\\u000FZ\x86\xAA6\x82\xB8俥\x9B$\u001F\xB2\t\xE9к\xC3\xF4\u007Fgu\u007F\x96I\r5\xDBq\xC0V\xEA\x9E\xF8W\xB2=\xAC\xA9ަ0\xF8\xF4\xBB\x9Dv\xD3Um%\xF9ȁ\x9C&\x8AH\xBD;\u0019\u0005m\xBD\u001Fh\xBC\xDD \xDD\xF3\x86܂\x8CVͯ\xE4R\x9E\xC3\xDC\u000FL\x82m\x8F\xF5+AKՇ\xA4ƃZ\xE5\xF9\xCF\xF8}\u0001\u0000\u00004\u0000\u001F\xEA\xDE\xF7\xFD\xC1b#\u001Dj\xFF\xE5d\xD8\xFB\xD67\x8CtE\xE1\x88E\x95\u001ET\xBA\xB1Bw\xB8/\x9D\x9CJ\xB6\xF1\xAB}\xDFj\xCF\xF7R\x9B\xE9\xBB\u0010Fw\x8D\u001C\xE8\xFA4\xEC\xF6\xA4\u000F\x96K='ʊ\u0010g4\xDB\u0018\xD9\xF6\xD2k\xDA&U6\xF1Ӷ\xDDΥ\xF1t5\xB0\xF4M[\xF2\xB0\xC3\xC8A\xBCvRw鼥o^ԥ\u0013pR\x9C\n\xD3C6Cgd{\x98g\u001C\xAE\xAE1\xB9\xB6]\xB6\xAC\x85\x9D\xFF\x92\x98\xFF\xEET\u0016$7Z\xFE\xBE\xFA\xC7tϧ\u007F\vj\xB6ꔕ\\\xFE\a&\x81\u007F\xC2E\xBF\xAE\xF9\xDCj\x94\xB9\xA6\xA4Av\xAD\xAB\xB5p\xC6\xEF\v\u0000\u0000\xA0\u0001H\x87*\x9F\xD4M\x80}\u0017%}\xB0\u001F\xEC\x89˯\xCA\u001E\xB44\xDC\u0012\u0018?t\x91zU\u000E\xB4ۻZ\xB5c\x96\u000E5\xFE\xC5\xE6\xBE,\xE7+\xED\xC3^<(?-V35\u0013\u001F\xD15\xF2\xF0\xE5\xE1\xB2\xDAI\xBF\xABn\u0014\x87XlA\xAF\u000E\xDF\n\xF2\xE8\x8CJ\u000F\xC7&\xA7\xA5\xE4RG\xD1\u0012\xFE'Z8\xCF\xDDIuI\a\xCC\u001E\a\xF1ѻ\u0006ނ\x9A\xAD\x9A\xB3\xEE\x95\xC7\xF9\u001F\x98\u0004\xA2\xB1\xB6\xDE+\xE5/\xAE\xF6\x9E\xB1\xF1@\xC0ٵ\xAE\xD6\xC2\u0019\xBF/\u0000\u0000\x80\x86\x8D\xC9i\xDF3\xA1C&k\x8E\x95\xA2\xA9\x86\xE9\x93\xE1\xA4U\u001E\t\x92\xF3\xAA\xE8B\u007F,}y\xDFy7\xF7\xF44\xD7|b~\xFB\xEC\xD32-;\x91忯~\xE2\u0013\u0017\x85\x89\x9C\xB3=\x94\xB2\u001A>&\xE7=\xAC\xD6\xC2S\xB8;>E*\"\xDE\xF6]HN\xA67\xE4\u0016\xD4l\xD5)\x8F\xC9\xE5\u007F`R\bt\x80\xB3\xE7\xA4\xF53\xAD\xF2\x89^\x95\xAB\xEBA\x8D\xA7d\xFC\xBE\u0000\u0000\u0000\u001A\x80\xBE\xC7s\xAAl4\"\x9A\u0002\v_{\xFA \x9C\u0017k\xEAl\xBC\x92\xF3\xFD\\4\xADV\xB3c\xCEo\xDF0%\xE7\xAF\u0006Y\xC3<\xF1\xAFg{8\x87\x94\x9C\xF0꿺E\u0000\xEF\xD8Ji2\xCD[P\xB3U\e\xA5\xE42\xBC\xCDf\xD5Q\e\xBF_u=\xA8\xF1\x94\x8C\xDF\u0017\u0000\u0000@#\xB1Mf\xE9^\e\x9F\u0001\x8C:$\xBF\b`\xE4vP虢\x92\x8Bf\x97\u0012s\u007Fq\u0015\xD2\xDCW\xBBc\xCEo\x9F_\xC9\u0558]\xFDνv\xB6'\xEF\xFB\xF8\u0019\u001E\x86{\xCE\u0015m[\u0006\u001A\xA3\xE4\xBC\xFF\xD5Zx:JN\\\u001D\xBA\u0019l\xF9-\xA8\u001CN\x9B\xE6-\xA8٪\x8DRr\u0019\xDE\xD6\xF89\xB8\t\xDFчSyPSK\xA9\xFC}\u0001\u0000\u00004\x80\x8D\u0017m\xFB[V\xFA-\xE3\x96\u0013JO3\xF0}J\u0017\xE5_\x81\xDFz/T\f\xF5*9)%u\xC5\xC3\xE0x\xE0OŁ\r\xE7l\xED!\x96\xDC\xF6\xF9\x95\\i\xC5C[\xC9\xC3\xF8\xA2\xDDmO\x82\xCD?\u0005-\xFDz*\xB5\x90\xA6\x88\xEF4\x96\u001C\x93\xAB\xEE\xE1\xC0u\xB7\xF8\xF7#\xAD{\xA1;T`\xA9\xFEo\xBD\xEF\xF6\xA8\xEBʥf\xFCڂD\v\xB7\xEDε̢fA\x8B_3\x89\xC9Ć܂\x9A\xADڰ1\xB9\xEA\xDE&\u0005\xF1\u0560\xF3\xB0\r_\xB3\v\xC2\a~\xCD\xE7SyP\xE3)\u0019\xBF/\u0000\u0000\x80\u0006\xB0d\xBBY\xFF\xB5\u001D}\u0018n\xAF\xB0\xEET\xF2=\xB9\xC8\xD2ϲ\x8D>\bZߨ[\xC9\xE9.$?\xE9h\xC4\xF0/e\xBB\x90HG>xC\x8B\u001E\xB9\xA3\xFDh͎9\xBF}~%g\xDC.$☸'N\xCAq\xC2X\xC4k\xEF\u0019\xEB\xD76\x8A\xF4Yw\xBAl#\x89\x84q\x86\x87\x85\u001E\xED\xD7\xC7&\xF4\xAAt\xE7\xED\xFB\xAA\xFA\xBF\xFC\x90ޑ\xFAv!\xB9\xA2S\x81R\u0005Q$\xD1\xC2՚w'OA\xDD_\x94\xF9٨[\x90ݪ\x8DRr\u0019\xDE&\xE8=k\x87~\f\xB6=Vciơ\x9B\xC1\xCA\xCFli\u0000\xB5\x9E\a\xB5L\xB3V\xFF}\u0001\u0000\u0000\xCC\u0001\x88\xA7\u0004\u0000\u0000\u0000\x80\x92\u0003\u0000\u0000\u0000\x80\x99E\xA7\xFC&Pr\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00000\xFBȹ\xFBÂ\xAAx%\xED\xFB\xECȝ0\x88ӌ\u0015:'Z\u0006\u0000\u0000\u0000Pr\xB3]\xAFl\xB9\xEB6\xD7]\xDD\xC8B\xABmQ\x96\u001AE\xBE\xB15\xB5M\u001A\xA8j\xE4W\xDDSmlB\xB7@\xCB\xD8\u0006\xB9Q,\xD9n\xFA/\xDB\xEC̗\xEEUŌ\x94\u0004\u0000\u0000x.\x82f\xC1V\xFCy\x88\xAA\xBA\xA2u5\xB6\xA6k\x8E\xB9X\xAB\auS\\[\xD0\u0000\u0018Q\u0014\xF9\xE7G\xFFw\xBA-pF\u001D\x9B\xFB̖\xDF4\xBE\bJ\u000E\u0000\u0000\xA0\f\x8D\xF0}Z\xB7\xDA\u001F\x9B\xD4\u0001\x98\xF5_\x95\xB6\xDAO\x84W\u001A}\xE0\x82M}lSeG\xFB>\xBB階\xE2l{\u0012l\xBCd\x9B{\xCB2\xD1\u0018\u000F?\xEBՑ\xDBe1\u001E\x84\u0015G\\0J\xB7\u0003\xFE\xDA\xE3\u001Ar\xAA,\xDB\xFD\x9A\xAD\xE4\u0019\u0015\x97m\xFF\xCA\xFBV\x8A\x90\x82\x86njX\xCFUG5x\xB9\x9C\u000E\\/EV\xADD\\\xF2\xDF\u0012'}\x90ٸ\\hݡRC|\x90&\u001A\u001C\u000F:\u000E$#($\u0006ɲ=\xAC\xA9\xDER\xF3\xAC\u001D\xE3᪶\x92|\xE4@N\u0013E\xA4ޝԂ\xB6=\xD6\xE3\xA0%\xAFܬ6L\x98\xD1h\xF5j\xE2\xA0\xD5\xC8}\xE9x\xDB\u001A\xA6w\u0001\u0000\u0000\u0012\f\xDEЮ\xD1\xF7\xFD\xC1b#=n\xFF\xE5d\xC8\xCE\xD67\x8C\x8F\xAA\xA4C5Uzt\u0011\n\x85n\rX\xE9u\x8Cd\e\xBF\xAAQM\xD3\xE2\xAE\n]\x9F\x86\xC2BD\x9B\\\xEA9QV\x848\xA3\xD9\xC6ȶ\u0017Uj\x9B\xC2P\xA4\xD1i\xDBn\xE7\xD2x\xAD\xB8\xAB\u001D\u001A\u0000T\u000Eⵓ\xBA\x8B&\u0013\xF5\xB3\xA8Kg\u001E\xA58\u0015\xA6\x87\xB2\xC2ae{XSə:\xC7\xE4\xDAvٲ\u0016v\xFEG\u0001\xBB\xF2ܝxn\xFEF\u000F\xFD\xA0!G5\xCChS.\xB1%\x96~66g\xA3ե\xE46\x9C\xB3k\xFE\xD3\xE6Q\xB4\u0000\u0000\u0000\v\u000E\x8D2\xF9T筪\xF5\xAC\"\x83\xFC`O\\~Uʎ҈W`\xFC\x88T\xEAU9Paq\xB5\xEA\xEBw\xA2$\xE2_\f#\x9AW\xEF\xFB\u0013\xF6\xA1\xEC\v\xCAO\x8B\xD5L\xCD\xC4G\xB2\x8F<|y\xB8\xACv\xFE\xFD\xADh\x88\xD1\u0016\xF4\xEA\u{2DF2F}\x8E%<\u0014\xB93\u001D%\x97:\u0000\x96\xF0?\xD1\xC2y\xEEN\xBC \x91\xF2[\u0010\xCB\xDE3*\xC82*+RX\xEA%OH\xDB\u001E\x9B\xB3\xD1\xF2+\xB9\x95\x9FYQ\x849[\e\u0000\u0000`\xC1\xE1\xC7\xE4\xB4Ϟ\xD0Q\xAB5\xC7J\u0011\xBE\xC3\xF4\xC9p\x963\x8F\u0004\xC9yUz}\u007F,\x9D}\xDFy7\xB7\xFB4\xD7|b~\xFB\xEC\xD32-;\x91忯~\xE2\u0013\u0017\x85\x89\x9C\xB3=L\x84\xBBhȘ\x9C\xF7\xB0Z\v\xD7{w\xBC\xDAk\xDBe{NZ?\xD3*\x9F\xE8U\xB9J\xFB\x92\x8C\xDBm\u0013.e4Z~%'\xFA/\x9A\x9EF\xC9\u0001\u0000\u0000$\xD1\xF7\xE4N\x95\r\xC3D\xB3\x90\xE1\x9Bg\u001F\x84S\x93M\x9D\x8DWr^GF\xF3n5EF~\xFB\x86)9\u007F5ȫ?\xB2=\x9C\eJ.ƪ\xA36\xEEv¾mOQ\xC6\xED\xB2)MZ\xA7\xE2Ju&u0\u00121\a\u0000\u0000\x90\xC46\xE9\xDBN\xF1\u0019\xC0\xA8\xCB\xF4\x8B\u0000Fn\a\x85\x9E)*\xB9h\xF661\xF7\u0017W!\xCD}\xB5EF~\xFB\xFCJ\xAE\xC6\xEC\xEAw=6\xA7\xFE\xC8\xF00\xDCs\xAEh\xDB2\xD0\u0018%\xE7\xFD\xAF\xD6\xC2\xD3Tr~bt\xF4a\x8A}$\xE3\xE2\v,r6Z~%7\u0005\e\u0000\u0000\x80\u0005\xC4Ƌ\xB6\xFD-+\u001D\xB6q\xEB\r\xA5\x9B\u001C\xF8>\xA5\xDB^vP\xFB\xE6\xAD\xF7B\xC5P\xAF\x92\x93RRW<\f\x8E\a\xFET\u001C\xD8p\xCE\xD6\u001E\x93\xCBm\x9F_ɕV<\xB4\x95<\x8C/\xDA\u0015\xB1\xB2\xF9\xA7\xA0\xA5_O\xA5\u0016\xD2\u0014\u0019[\xACex8p\xDD-\xFE\xFDH\xEB^\xE8\u000E\u0015X\xAA\xFF[\xEF\xBB=\xEA\xBAr)\u0018\xBF\xBC#\xD1\xC2\xD1\\g\xF6ݩ,H$`\xE7a\e\xBE\x9E\u0018\x84\xF7}\xCD\xE7)\xB9\xE9J\xD8\xC7)2.O\xA3\xA1\xE4\u0000\u0000\u0000\u001AÒ\xEDf\xFD\xD7v\xF4a\xB8kƺS\xC9\xF7\xE4\"\xCBe\xEFh\xA7>\xFA h}\xA3n%\xA7\xBB\x90\xFC\xA4\xA3}ÿ\x94\xEDB\"=\xFD\xE0\r-z\xE4\x8E\n\x88\x9AJ.\xBF}~%g\xDC.$☸'N\xCAq\xC2X\xC4k\xEF\u0019\xEB\u0017u\x8A\xF4Yw\xBA\xB4QKe\xCE\u0019\u001E\u0016zT7\x8B\u0000\x92\xAB\"\x97\xDB\xF7U\xF5\u007F\xF9!\xBD#\xF5\xEDBrE\xE7@\xA5\n\"\xC5\xE2s\x9D\xD9w\xA7\xB2\xA0\u07B3v\xE8G\x95h\xBAFdR7sY\xF9\x99\x8D\xC6\u0011\xF3\xEFB\x92\xDDh\xA9\xFA,\xCF\xE4)J\u000E\u0000\u0000`F\xA1\xEB\u0005\u0000\u0000\u0000@\xC9\u0001\u0000\u0000\u0000\xC0̢S~\u0013(9\u0000\u0000\u0000\u0000XH\xAC;e\u0013\xBB{`?\x9F\xECy\u001E\xB0\u007F\x81\xCF\e\xD5\xC1\u001E\xFB\u0005ۛ\xC0\f\xB1\xFEk뷅\xCBy;\xB1\x9F[\xF6<\u000Fؿ\xC0\xE7\x8D\xEA`\x8F\xFD\x82\xEDM\xEA`\xFE\xBD\u001E7\x935Z\xFF\x95F\xBF\x95\xBF\xFE\xA0\xE6\xED\xC4~n\xD9\xF3<`\xFF\u0002\x9F7\xAA\x83=\xF6\xF3\xED\xE7P\u0016Oi2\u0018\xF95X\xFB\xDF6\u001E\u001Fi\xF6\xE8\x9EJW\xE3{\xA6\xCC\e%'z\xBCiyY\x8A\xDCˌۉ\xFDܲ\xE7y\xC0\xFE\u0005>oT\a{\xEC\xE7\xE1\xCF!.P\x82\u0016#2NN7|3\e'h˴T`:?TW\a\xAE\a/\xA0\xF4\xE7)㤔\x97\xDAL\xC7۶\xE7\x84n\xDA\xEC\xD3{Ϧ\xDFN\xEC\xE7\x96=\xCF\u0003\xF6/\xF0y\xA3:\xD8c??\u007F\u000E\t\x81b\x9B\x92\xE1A[wh\xF0\xA5mOt\u0018lp<\xE88\u0010\xE6\xE8#\u0016D\x85\tr\u001C\x85\x88Hd[-\u0013a\xF3\xCFe\xC1\xA6\xB6\xFC\xA6\x91$\xFC\xB1\u000F\x9C5|+k\v\xE2(\xB6\x98\xF1\e\xE4^\xD5\xD9e\xF9\xC8A\"\xFC\xC0\x8A#\xD6\xC7q\u001F}\u0018\xAC=^\u001Aw\xF4ٶ\uFDDB\xAE\xE9\u0017K\xBB\xE6\xBEkGnkS\x88\x87>^Y~%\xB7h\xB5\xE9\xFA\xC4F\u0011l\xEB\xEA\xB6}`4\u007F\xB0\xE5n\u0010\x8D\xB8VΚc?\xB7\xEC\xEB\xFDǀ\xF6ľQ\xCF\e\xD5\xC1\u001E\xFBy\xFCsHWr\xDB\u001E\x87)\xADoh\xB4Ѝ\x97\xEC\xA2.\xBD$:1\n\u000F\xFF\xCA\an\xF4\xEE\\)w\u001F\x9CJ\xD2\u0013\xD9fd\"\xAC9\xA6\xA7\x9D\u001F\xEA\xA9\xE8\xB90N\xEBpI{u\u007FaS\xC7\xE4\xFC\xD5(\u0006\x94\xD43\f\xBA\xE5\x83V}\xEB\x82V\xC5*\xDF\xF5\xA9m\xEEu\x8As\xBF^\u00127\xE2\xD9\xF6_\xB6\x85\xEER\xB3\x94Bxuh\xB0)\x9F[ͮ7h\xD5f\x91\xAC|\x88\xD5\xE1_\x82)ȸ\xF8g\xD9;\xEA\xA4-\u0018\u007Fw\xE3\xB7\u0013\xFB\xB9e_\xAF\x92\xA3=\xB1o\xE0\xF3Fu\xB0\xC7~\xBE\xFE\xBA+fW\u0017\x87\xB3\xAB\xF2ק\x88(\x91S/\x80L1\x9E\xBA\u001F$\u0013\xE3\xB1I\u001D\xE2j\xEA\xD4K\xF2W\xE3;M\u0004\xA2f\u0012\xD9fd\xA2\nl\xB7^\xED=\xAB%v}\u0012\xD6G\u000E\xFC\xA0be\b\xD1\xF8G\u0014\xA7\xD7|\xA6\u0018H\xBEe(<M\u0004\x92\xAF\xAC\xF5裲\xA1\xBE0ҨI\xCF͏\u000EV\xEBzE\x9Ev\u001C\xB0\e\xBEш\xF2\xAA\xA9\xEFh\xA0\xD2%\xBF\xAFc4\xCE\xCB\xE2\xC4'\u001A\xB9\\\xFF\x97\xD2խ\xF7u\xF4\u0015\xFB\xB9e_\xAF\x92\xA3=\xB1o\xE0\xF3Fu\xB0\xC7~\u001E\xF7&\xE9\xF2H4\x96\x88-\x8F\x97&\x89\x8F(6\u007F\xB5\xE7K-c\xC5\xC7Z\xA4\xFCՁ\xAE/\xD3B\xADgfb\u00025\xF0\xA3\x80\e/Z9\u0018}\xA0\x83ar\xAA\xD1?'\x83Ԡ\x9F\x92\xB8\xF237lv\xC1\xC6KITMd\xAC?\u0016\u001D\xD9w^À\xFAѲ\x9A!ME\x92f\x84+M ~\xAA\x80\xFB\xD5\t\xB8\xD7k\xB7s\xAA\x81o\xCC\xE8\u0013\rv\xC6od<b=\xF6s˾^hO\xEC\e\xF8\xBCQ\u001D챟ϽI\\[\xB4\xF4\x87cQ~\x86\xB4$h\xAA\x8C\u001D\xB4\xEEЯ\xFB\xB7\xC1\x86~PKIIQr\x99\x99DӲ\xA2\x81D\x8D\x89\xEB\xF2\x91\u00039U\xA1v\xBEz0\xF8\xA0L\xABe+\xB9\xC1\eA|J\xB7\xB1J\xCEljW%wl\xEAJ.q;\xE5F\xBC\xF2\xBE\x95O\xA4\x83+o$\xF6s\xCB~:b\x8E\xF6\xC4~\x9A\xCF\e\xD5\xC1\u001E\xFByۛ$\xB4E\xD3r\x95D\xD1\xD4g\xFFwn~sO\xD5,\xFCz\x85e\a\xD5l\xF3OAj\xB653\xE9<l\xFD\x9Bj>\xAB\x8E\xB7\xF5`\xE3%\xF7\xFE\xDCa\x9Bsq\x86נ\xD1ʉ\xC4\xECj\\\xE75\xF7\xD5Vr\xF5ή\xB6ﳢG\xA7<\xBBZy;\xA5a{NZ\xF9\xF8A\xC4j7\u0012\xFB\xB9e_\u05CA\a\xDA\u0013\xFBF=oT\a{\xEC\xE7\xF3ϡ\xB2G\xF1\u0003z~Q\xEA\x92\xD7Ͷ'*\xD1Z\xFA\xF5\xD2K\u001DF\x94V\xB4\xC8\xC0/#\xF0ӷ\xD1\xCBm\x95\xD9\xD6̤\xD0c\xA2)W\x91\x92b\u0010́ʥtW\u0003\xB3\xEA\xA8{\xC1\u0016\xAE\xAA\xFE\xBBX\\\xF1p\xA1\xEC\u001D\xBB\xC1q\xFD\xEEҽ\xD6\u0016\xC2!\xC0l%WZ\xF1\xD0V\xCA-\u05CA\x87\xF7\xADW\xAE~\u0011ʔŜ\xDC\xC5htPo\xE4\u001F\xB0\x9F'\xF6u)9\xDA\u0013\xFB\x86<oT\a{\xEC\xE7\xF3ϡ\xB2Gi\xDBc\xE3\xA3Y/o1\xA2\x96\xFC\u0004\xA2(\xB6u\xA7\xED\x92\xED%c\xBF\xD0!\u0014a\x9DU\xB3\xCD\xCE$\u001A\xDB\xF3;\x98\xE8\x90ص \xBE*\"\xF5\x95>ɭ焍\u0017\xAA\xBB\x90\\\xD1Q\xBA\xB1I\xF5?\xBE\xD0CD\xE4\xE0\rur\xE4N\xE0\x87\u0000\xB3\x95\x9Cq\xBB\x90\f\xFF\xA2Y\x89\u0006\x95\xE3\xFAv!Y9\x95]H\xE2\xB73\xBA\x97\xA3\u000Fk\xDFH\xEC疽\xA9s{B\xDA\u0013\xFBi>oT\a{\xEC\xE7\xEDϡ\xB9\"\xA5\x8D\x94ّ\"\xF7\xF2\u001F\xFFW\xD5j\xFCFf|K콺]\xB5#WY\x91\xBD\xCF\u001F\u007Ff؟zS\xB8_\xF83\u001D\u007F\u0012l\xFE\xAF2\xF7j~\xCB\u0017\xF7\u000Fw\x93\xFDJ\xB5oū\xFF<\xFC\xE1i\xC1\x9F\x85\xE9Os\xAA\x8C\xBBg\xCC_\x8D\xF9'cV\xBB\xBF\xFFc\xCC\xFF\xB9\xBF\xA4̊\u0014k\xFE\xB6\xBC\x8Eo\xFD˻\xF6o\xCB\xEA(K\xEC7mǟ\u0017\xE6O\xBD)\xDC/\xFC\x99\x8E?\x89\x94\xBFo6\xFF<PǷ\xFE>\\_Y\xBF\xFFw+\xF9??\u007FxZ\xF0g\xA1\xF9\xF3W\xA7\xD9R\xC4\\[y\u0016\a+2%\x85\u0014RH!\x85\u0014RH!內\xB4eO\xB32\xADI\n)\xA4\x90B\n)\xA4\x902\xFBS\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000`V\xD1d\xCCQc~5fҘ\tc\u001E\u001As\xA5\u0011\xD9>s\x9F\x86\xF3,\xED3\u0003\xEC2\xE6\xB2k\x9F'\xC6|\xE3&\xB3\u0001\u0000\u0000\u0000^<ǜ\u0018:\xA8;1o\u001Asq\xD6+\xB9\x99\xE7\x9C1>(\xD7\u000E\xE7\xC0u\x9E\e\u0000\u0000\u0000\x98\r<vҤ%\xED\xD25wi_,e\xA7K\xB9\u0011\u0013U\xFB\x9C\x99\u001F\xAC\xBAdLo\xECR\xE5\x98\xD9\u0011w\xFAԍ\xFC\u001D7\xA6\xC3%\x9Et\x89\xE31\xB3q\x97r\xB2N%\xE7/\xEDw\xFE<)\x9A\xA5&\xFA\x8A\\u)O\xDC\xC1\xCEZ\xF9D,w)\x93<7\u0000\u0000\u00000\ex\xE4\xA4\xC9\u000F\xC6|n\xCC^7\xD9\u001A\xF1\xAE\xBB\xF4M,\xE5\xCF.哘\xE2\u0011\xB9\xD3\xED\xC6\xF3\x8E\xC4D^5\xC9\xF5iQ\xEA\xEDwWO\xB8\xE3BQ\xBA}\xE0N?(\xE6\xD34%%w\xD9\xF9\x93\x9D\xB8\xCB%~\xEB\xA4d\x9B;x\xE6\u00123\xBE\xE2i-\u001A\x9F\xE7\xB9\u0001\u0000\u0000\x80\xD9\xC0\u0001\xB7\xF5\\4~\xF6Ԙ3\xC6t\xB9K\x81\xBB4\xE9\u0014\x8C\xE7\x8E3\xE8\x8A)\x9Eb\xC4y5\xF6_\xAF)\xB9\"\x83G\xC5\xE3\u001Ec\u001E\xB8\xB2D\xE7\xDDw\xC7=\x99r-u\xCC\xCF\u001F\xF7\xA5\xD9'\u0012\xAF\x94{>\xE4N\xAFf~E\xE8,*\xCE\v\xB1\u0006\u0001\u0000\u0000\u0000x\xC1\u0004nD\xEAdq\xA6\xF5Y\xECU\xB9\xA3\xB1Ѳ\xD7\xDC\xF1\xA5\xEAZ\xADRW\xC5\xE9uCY\x8F\x9Cګ\x9Cx}˝\xFE\xE6\xFE\xEE\xCD\xD4\u007F\xCF깔\x9A8\x99\xE6\xF9\x93ZE\x9Cw\xE9\xC7y\\\u0000\u0000\u0000`\xD6\xE2\xA5\xDBD\xF1\xB4\xDB\t\xAF\xCB\xEE\xF8\xDFܥ\xF7\xA6\xAA\xE4n\xB8\x94CU\f>r\xA7\xB7\xDD\xDF#\xB3R\xC9y\u0001\u001A\xF0\x88\u0000\u0000\u0000\xC0\xAC\xA5\xE0\xF4\xCA\xC3X\xCA\u0005\x97\xB2\xDA\xCD-N8\x83\xA9)\xB9\xB8~\xEA+7\u0018v9\xDFu\xF3\xB6w\xDD\xF1\x96\xE7\xA9\xE4\xFC\xECjTD\xEA\xEC*\u0000\u0000\u0000\xC0\u001C@\u0014\xCC\xE1\xE2ka\x81ێ\xE4\x99[\xFD\u0010\xE1\u05EB\xFA\xB5\u000E_e\x8A\xA4x\xCA}w\xDC\u0015\xBB:^\x9C9-\xB8M=\"\xE3\xC5\xC6\xFC\xEC\x8E\xDFq\xA7\xEF\xB8\xE3[U\xDEEk\x88\x92\xDBY\x9CA\xF6+\u001E\xBCT\xDD]\xAB\b\u0014\u001E\u0000\u0000\u0000\xCC:\xCE\u001A\xF3\xA3{C\xEE\xA9\e6\xBBi\xCCg\u0015s\x88\xB7\x8A:fwn%w\xC8\r\xEC\xC5S\xFA\xDD\u0004\xEBS\xB7l\xE2p\xECҗ\xE5Cb\xC6M\xE6f\xEFB\x92\xB1\xE2!\xA7\xFC\xDA\xE9F\xE6&\\\x95\xAF\xC6\u0016\xAE\xA2\xE4\u0000\u0000\u0000`\xBE\xF1Iq9\u0002\u0000\u0000\u0000\u0000\xCC%\u00027\xA9*J\xEEO\xB4\u0005\u0000\u0000\u0000\xC0\f\xF2\xFF\u001D\xD3\xE0\xF99F\x8B\n\u0000\u0000\u0000\u0000IEND\xAEB`\x82"], stderr is ERROR 3 Syntax Error? Some diagram description contains errors )

  1. Автор создаёт отправляет запрос на ревью кода в систему ReviewBoard

  2. Рецензент просматривает данный запрос и оставляет комментарии к нему на ReviewBoard

  3. Автор запроса просматривает комментарии и создает в соответствии с ними задачи в Redmine (В будущем планируется создание плагина для ReviewBoard, который будет автоматически создавать задачи в Redmine для каждого комментария)

  4. После создания задач в Redmine по комментариям к запросу на ревью и исправлению этих задач автор запроса на ревью закрывает созданный им запрос.

Некоторые дополнительные правила работы с ReviewBoard

  • Если рецензенты считают качество кода в запросе допустимым, то они выставляют данному запросу <>

  • Если все рецензенты поставили запросу <>, то закрывать запрос имеют право только мега-менеджеры (И.В. Парамонов и А.М. Васильев) после просмотра данного запроса.

review.crt (1.5 KB) Andrey Vasilyev, 07 May 2015 15:14