Открыть или переключиться на уже открытую страницу параметров (вместо открытия дубликата):
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});
}
});
У нас есть ловушка фиксации сообщения, которая отправляет сообщение в учетную запись Twitter. Использует twitsvn (отказ от ответственности: я участник этого проекта).
Глупо? Может быть ... но это оказалось для нас хорошим способом сообщить о том, что происходит в нашем репозитории, некоторым членам нашей команды, столкнувшимся с проблемой контроля версий. Когда SVN начал разговаривать с ними через свой твиттер-клиент, он уже не был похож на черный ящик.
Вставьте примечание в багтрекер Mantis с подробностями списка изменений на основе сообщения фиксации, имеющего "номер проблемы" или т.п., через RegEx.
Я проверяю тип файла и убеждаюсь, что некоторые запрещенные типы не были зафиксированы случайно (например, .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
Мне нравится использовать хуки svn
, чтобы:
Я подсчитываю количество слов при отправке сообщений. Они должны состоять из 5 или более слов. Это привело к некоторым комическим оскорблениям в мой адрес ...
Проверка абсолютных путей в различных текстовых файлах (например, VRML, XML и т. Д.). У большей части зарегистрированного кода никогда не должно быть абсолютных путей, тем не менее, некоторые люди и инструменты настаивают на создании жестко запрограммированного кода.
Что пользователь фактически ввел комментарий к сообщению фиксации и что оно содержит конкретный номер проблемы, которую необходимо отслеживать.
Я использую ловушку после фиксации, чтобы переписать свойство автора в дружественное имя из нашего дерева ldap. (аутентификация с идентификатором сотрудника)
Отличный прием фиксации, который у нас есть в нашем архиве, - это проверить все проекты Visual Studio .VCPROJ (или .CSPROJ), чтобы убедиться, что выходные каталоги не были изменены на что-либо локальное (обычно используется для отладки).
Эти проблемы будут компилироваться правильно, но сборка по-прежнему прерывается из-за отсутствия исполняемых файлов.
Как насчет ловушки для компиляции проекта? например, Выполнить, сделать все. Это гарантирует, что никто не проверяет код, который не компилируется! :)
Устранение недостатка внешних файлов в SVN 1.5 с помощью PostUpdate и PreCommit
Что у него есть сообщение о фиксации, и это! = Чем «исправление ошибок». Блин, я ненавидел эти бесполезные сообщения!
Мы используем комбинацию ловушек перед фиксацией и после фиксации, чтобы автоматически обновлять bugzilla с помощью связанной записи из фиксации svn.
Мы используем вторую ловушку (перед фиксацией), чтобы гарантировать что соответствующие свойства svn: eol-style и svn: keywords устанавливаются для файла перед его добавлением в репозиторий.
У нас есть третий (после фиксации) обработчик, который запускает сборку и отправляет результаты, если сборка не работает, и чтобы проинформировать всех, когда сборка будет снова исправлена.
У нас есть четвертый (после фиксации) перехватчик, который запускает репликацию svn, чтобы гарантировать, что репликация вне сайта является как можно более актуальной.
К сожалению, я не могу опубликовать в них исходный код, но, за исключением интеграции с Bugzilla, их достаточно легко реализовать, и Hudson , вероятно, является лучшим выбором для непрерывной интеграции.
Для интеграции с bugzilla я бы посоветовал посмотреть scmbug .
Некоторые предпочитают запускать инструмент, похожий на lint, для данного языка, чтобы находить общие проблемы в коде и / или применять стиль кодирования. Однако в небольшой и опытной команде я предпочитаю разрешать выполнение каждого коммита и решать возможные проблемы во время непрерывной интеграции и / или проверки кода. Благодаря этому фиксации выполняются быстрее, что способствует более частой фиксации, что упрощает интеграцию.
В компании, над которой я сейчас работаю, это проверено:
Думаю, это все.
Мне нравится идея проверки, связана ли фиксация с билетом; для меня это действительно имеет большой смысл.
Я использую хук предварительной фиксации check-mime-type.pl , чтобы проверить, что Параметры MIME Type и End of line устанавливаются для зафиксированных файлов. Я использую Subversion для публикации файлов, которые будут отображаться на веб-сайте с помощью DAV, и все файлы без установленного типа MIME обслуживаются как текстовые файлы (например, исходный HTML-код отображается в браузере вместо визуализированной разметки).
Мне бы понравилась ловушка, которая проверяет заметку [Reviewer: xyz] в сообщении фиксации и отклоняет фиксацию.
Я подумываю написать один, чтобы проверить doctype в файлах aspx / html, просто чтобы убедиться, что все используют правильный.
Кроме того, у вас может быть обработчик до (или после) фиксации, отправляющий уведомление на ваш CI-сервер , как описано в блоге Hudson
Возможно, вам стоит взглянуть на: 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/