Умный способ добавить файлы в changeset после коммита? - PullRequest
0 голосов
/ 29 апреля 2010

Иногда со мной случается, что я забываю включить файл в набор изменений (то есть фиксацию ряда измененных файлов, которые принадлежат друг другу, например, "Исправление ошибки # 45")

Обычно я просто делаю второй коммит с тем же сообщением коммита.

Есть ли какой-нибудь умный и простой способ добавить опоздавшего к первому коммиту как-нибудь? Без svn dump ing и svndumpfilter ing?

Ответы [ 4 ]

2 голосов
/ 29 апреля 2010

Нет, в SVN ничего подобного нет. Я бы предложил сделать второе сообщение журнала

- Followup to bug #45

- Followup to revision 123132
1 голос
/ 29 апреля 2010

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

Кажется, вы изучили очевидные методы отката коммита, используя "svn dump" и "svn dumpfilter". Единственными другими вариантами являются получение резервной копии дерева SVN «как раз перед», чтобы сделать фиксацию по ошибке. Удачи в вашем алгоритме предотвращения ошибок!

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

Лучшим решением, по-видимому, является аннотирование ваших коммитов как части набора изменений для той же ошибки. Таким образом, поиск исправления ошибки приведет к появлению двух записей в журнале, который в основном описывает, что обе фиксации были необходимы, чтобы «исправить» проблему. Это может оказать некоторое влияние на инструменты интеграции, так как если вы используете хуки или инструменты для проверки ваших журналов, они должны выдержать несколько коммитов на одну ошибку. Часто это означает ручное обновление ошибки как «готовой к сборке», потому что вы никогда не знаете, когда ошибка исправлена ​​одним коммитом, или если для ее завершения требуется другой коммит из-за забвения.

1 голос
/ 29 апреля 2010

Нет, нет.

1 голос
/ 29 апреля 2010

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

т. «Исправляет ошибку № 45 (1/2)» или «Исправляет ошибку № 45 (см. Также ред. 1232,1233)»

Вы должны убедиться, что на вашем сервере установлен хук pre-revprop, позволяющий вам редактировать примечания к коммиту

...