SVN - Сохраняет ли слияние автора, чтобы обвинение было правильным? - PullRequest
5 голосов
/ 26 октября 2010

В моей команде некоторые мы помогаем друг другу слияниями.Т.е. мой код слит обратно в транк кем-то другим.Похоже, что информация об авторе не полностью сохраняется во время слияния.Когда я делаю аннотацию (обвиняю), слияние показывается как автор.

Произошло ли слияние что-то неправильно или первоначальный автор не сохранился в результате слияния?

Ответы [ 6 ]

10 голосов
/ 27 октября 2010

Если ваш сервер отслеживает слияние и ваши клиентские инструменты версии 1.5 или выше, это будет работать:

svn blame --use-merge-history TARGET
1 голос
/ 26 октября 2010

По моему мнению, подход, согласно которому слияние не сделано оригинальным автором, ошибочен ... но это другая история.

В Subverison каждый коммит связан с автором.Слияние может быть сделано только в рабочей копии, которая принадлежит конкретному автору.На мой взгляд, информация в SVN верна, потому что парень, который слил код, «несет ответственность» за слияние ... поэтому отношение к его имени правильное.

1 голос
/ 26 октября 2010

Единственная информация на сервере SVN - это автор коммита.Это то, что вина / аннотирование будет использовать.

Так что нет, автор не сохранился во время такого слияния.Это потребовало бы МНОГО большего количества информации, чем дескрипторы SVN.

1 голос
/ 26 октября 2010

Слияние похоже на то, что кто-то извлекает ствол, сразу вносит множество изменений, а затем фиксирует их обратно. Тот, кто сделал окончательное принятие после слияния, будет отображаться как автор.Если вы привлекаете людей для помощи в слиянии, убедитесь, что они делают это под именем пользователя, которому вы хотите, чтобы это было приписано.

Сказав все это, если кто-то совершит ошибку в слиянии, тогдаВы хотите, чтобы имя человека, который «помог» с слиянием, если бы они были тем, кто это делал, не так ли?

0 голосов
/ 26 октября 2010

Слияние может изменить свойство svn:mergeinfo. В этом случае авторы оригинальных коммитов для любого данного слияния могут быть обнаружены косвенно.

Но это всего лишь бандит. Если вы хотите, чтобы реальное отслеживание авторов осуществлялось через слияния, вам может потребоваться перейти на инструмент, предназначенный для распределенной разработки: что-то вроде git, hg или даже darcs.

0 голосов
/ 26 октября 2010

Я не уверен на 100%, но я думаю, что ответ будет: да и нет ... аннотация AFAIK покажет вам только автора, который внес самые последние изменения в эту строку кода.Это, в вашем случае, был бы человек, который сделал слияние.Если вам нужно пойти дальше, вам нужно обвинить версию до слияния.

...