Совместно используйте распространенный / полезные [закрытые] рычаги SVN перед фиксацией

Открыть или переключиться на уже открытую страницу параметров (вместо открытия дубликата):

var optionsUrl = chrome.extension.getURL('options.html');

chrome.tabs.query({url: optionsUrl}, function(tabs) {
    if (tabs.length) {
        chrome.tabs.update(tabs[0].id, {active: true});
    } else {
        chrome.tabs.create({url: optionsUrl});
    }
});
40
задан 6 revs, 4 users 67% 18 October 2012 в 11:55
поделиться

20 ответов

У нас есть ловушка фиксации сообщения, которая отправляет сообщение в учетную запись Twitter. Использует twitsvn (отказ от ответственности: я участник этого проекта).

Глупо? Может быть ... но это оказалось для нас хорошим способом сообщить о том, что происходит в нашем репозитории, некоторым членам нашей команды, столкнувшимся с проблемой контроля версий. Когда SVN начал разговаривать с ними через свой твиттер-клиент, он уже не был похож на черный ящик.

8
ответ дан 27 November 2019 в 01:02
поделиться

Вставьте примечание в багтрекер Mantis с подробностями списка изменений на основе сообщения фиксации, имеющего "номер проблемы" или т.п., через RegEx.

2
ответ дан 27 November 2019 в 01:02
поделиться

Я проверяю тип файла и убеждаюсь, что некоторые запрещенные типы не были зафиксированы случайно (например, .obj, .pdb). Ну, не с тех пор, как в первый раз кто-то проверил 2 гигабайта временных файлов, сгенерированных компилятором: (

для Windows:


@echo off

svnlook log -t "%2" "%1" | c:\tools\grep -c "[a-zA-z0-9]" > nul
if %ERRORLEVEL% NEQ 1 goto DISALLOWED

echo Please enter a check-in comment 1>&2
exit 1


:DISALLOWED
svnlook changed -t %2 %1 > c:\temp\pre-commit.txt

findstr /G:"%1\hooks\ignore-matches.txt"  c:\temp\pre-commit.txt > c:\temp\precommit-bad.txt
if %ERRORLEVEL% NEQ 0 exit /b 0

echo disallowed file extension >> c:\temp\precommit-bad.txt
type c:\temp\precommit-bad.txt 1>&2
exit 1
7
ответ дан 27 November 2019 в 01:02
поделиться
  • Проверьте наличие вкладок и отклоните регистрироваться.
  • Проверить, нет ли непоследовательной строки окончания и отклонить регистрацию.
  • Проверить наличие "CR: [имя пользователя] "и отклонить регистрацию заезда если нет проверки кода.
13
ответ дан 27 November 2019 в 01:02
поделиться

Мне нравится использовать хуки svn , чтобы:

  • обеспечить более строгие требования стиля кода
  • проверить очевидный синтаксис ошибки
  • убедитесь, что специальные ключевые слова Trac, такие как «Исправления» или «Адреса», действительно предшествуют соответствующему номеру проблемы
8
ответ дан 27 November 2019 в 01:02
поделиться

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

13
ответ дан 27 November 2019 в 01:02
поделиться

Проверка абсолютных путей в различных текстовых файлах (например, VRML, XML и т. Д.). У большей части зарегистрированного кода никогда не должно быть абсолютных путей, тем не менее, некоторые люди и инструменты настаивают на создании жестко запрограммированного кода.

20
ответ дан 27 November 2019 в 01:02
поделиться

Что пользователь фактически ввел комментарий к сообщению фиксации и что оно содержит конкретный номер проблемы, которую необходимо отслеживать.

45
ответ дан 27 November 2019 в 01:02
поделиться

Я использую ловушку после фиксации, чтобы переписать свойство автора в дружественное имя из нашего дерева ldap. (аутентификация с идентификатором сотрудника)

6
ответ дан 27 November 2019 в 01:02
поделиться

Отличный прием фиксации, который у нас есть в нашем архиве, - это проверить все проекты Visual Studio .VCPROJ (или .CSPROJ), чтобы убедиться, что выходные каталоги не были изменены на что-либо локальное (обычно используется для отладки).

Эти проблемы будут компилироваться правильно, но сборка по-прежнему прерывается из-за отсутствия исполняемых файлов.

6
ответ дан 27 November 2019 в 01:02
поделиться

Как насчет ловушки для компиляции проекта? например, Выполнить, сделать все. Это гарантирует, что никто не проверяет код, который не компилируется! :)

1
ответ дан 27 November 2019 в 01:02
поделиться

Устранение недостатка внешних файлов в SVN 1.5 с помощью PostUpdate и PreCommit

0
ответ дан 27 November 2019 в 01:02
поделиться

Что у него есть сообщение о фиксации, и это! = Чем «исправление ошибок». Блин, я ненавидел эти бесполезные сообщения!

2
ответ дан 27 November 2019 в 01:02
поделиться

Мы используем комбинацию ловушек перед фиксацией и после фиксации, чтобы автоматически обновлять bugzilla с помощью связанной записи из фиксации svn.

Мы используем вторую ловушку (перед фиксацией), чтобы гарантировать что соответствующие свойства svn: eol-style и svn: keywords устанавливаются для файла перед его добавлением в репозиторий.

У нас есть третий (после фиксации) обработчик, который запускает сборку и отправляет результаты, если сборка не работает, и чтобы проинформировать всех, когда сборка будет снова исправлена.

У нас есть четвертый (после фиксации) перехватчик, который запускает репликацию svn, чтобы гарантировать, что репликация вне сайта является как можно более актуальной.

К сожалению, я не могу опубликовать в них исходный код, но, за исключением интеграции с Bugzilla, их достаточно легко реализовать, и Hudson , вероятно, является лучшим выбором для непрерывной интеграции.

Для интеграции с bugzilla я бы посоветовал посмотреть scmbug .

2
ответ дан 27 November 2019 в 01:02
поделиться

Некоторые предпочитают запускать инструмент, похожий на lint, для данного языка, чтобы находить общие проблемы в коде и / или применять стиль кодирования. Однако в небольшой и опытной команде я предпочитаю разрешать выполнение каждого коммита и решать возможные проблемы во время непрерывной интеграции и / или проверки кода. Благодаря этому фиксации выполняются быстрее, что способствует более частой фиксации, что упрощает интеграцию.

5
ответ дан 27 November 2019 в 01:02
поделиться

В компании, над которой я сейчас работаю, это проверено:

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

Думаю, это все.

Мне нравится идея проверки, связана ли фиксация с билетом; для меня это действительно имеет большой смысл.

6
ответ дан 27 November 2019 в 01:02
поделиться

Я использую хук предварительной фиксации check-mime-type.pl , чтобы проверить, что Параметры MIME Type и End of line устанавливаются для зафиксированных файлов. Я использую Subversion для публикации файлов, которые будут отображаться на веб-сайте с помощью DAV, и все файлы без установленного типа MIME обслуживаются как текстовые файлы (например, исходный HTML-код отображается в браузере вместо визуализированной разметки).

3
ответ дан 27 November 2019 в 01:02
поделиться

Мне бы понравилась ловушка, которая проверяет заметку [Reviewer: xyz] в сообщении фиксации и отклоняет фиксацию.

0
ответ дан 27 November 2019 в 01:02
поделиться

Я подумываю написать один, чтобы проверить doctype в файлах aspx / html, просто чтобы убедиться, что все используют правильный.

Кроме того, у вас может быть обработчик до (или после) фиксации, отправляющий уведомление на ваш CI-сервер , как описано в блоге Hudson

0
ответ дан 27 November 2019 в 01:02
поделиться

Возможно, вам стоит взглянуть на: http://svn.apache.org/repos/asf/subversion/branches/1.6.x/www/tools_contrib.html#hook_scripts (Эта страница может быть устаревшей, очевидно, она больше не поддерживается для Subversion 1.7 )

Или прямо по адресу: https://svn.apache.org/repos/asf/subversion/trunk/contrib/

11
ответ дан 27 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: