Как стать автором
Обновить

Контролируем коммиты в SVN под Windows

Время на прочтение2 мин
Количество просмотров9.8K
Работая с svn нередко появляются моменты, когда во время коммита твой рабочий каталог становится неактуальным. При этом приходится обновлять свою локальную копию из репозитория и составлять коммит по-новой. Хорошо когда коммитить нужно всё, а если нужны лишь три файла из ста? В таком случае приходится по новой искать свои файлы. Хотя TortoiseSVN и упрощает жизнь в таких случаях, бережно сохраняя комментарий, но всё равно, время, потраченное на обновление каталога и получение дерева с удаленного SVN сервера не вернуть. Создатели TortoiseSVN упростили нам жизнь ещё больше, создав небольшую утилиту, речь о которой и пойдет в данной статье – CommitMonitor.

Программа минимум

CommitMonitor проверяет репозиторий с интервалом, указанным в настройках на наличие обновлений и уведомляет хозяина небольшим всплывающим окошком внизу экрана. Я создал в рамках этой программы несколько проектов, которые физически лишь указывают на разные ветки одного проекта, куда я периодически коммичу изменения.

image

Программа позволяет следить или игнорировать коммиты только выбранных личностей. Удобно сразу добавить себя в игнор-лист, чтобы свои коммиты не маячили перед глазами. Проверка изменений не требует больших ресурсов системы и вполне реально выставить интервал проверки в 2 минуты. Из интерфейса программы можно просмотреть изменения в конкретном коммите. Кстати говоря, если в системе установлен TortoiseSVN, то CommitMonitor по-умолчанию будет отображать изменения с помощью этого набора утилит, но никто не мешает указать другой diff-редактор.

Программа максимум

Плюс ко всему можно задать cmd-комманду, которая будет вызываться при нахождении новых коммитов в проекте. Я выполняю обновление рабочего каталога. Если обновления в автоматическом режиме всё-таки нежилательны, то можно временно отключить их. Как пример, предлагается использовать TortoiseProc:

TortoiseProc /command:update /url:%url /path:"d:\workspaces\%project"

Конечно путь к TortoiseProc в данном случае должен быть прописан в переменной окружения Path, иначе в комманде следует указать полный путь до ToroiseProc.exe.

В итоге

Рабочий каталог всегда в актуальном состоянии и я всегда в курсе последних изменений в проекте.

Альтернативые решения

Прямая альтернатива: SVN Monitor
Можно использовать более качественные, но платные продукты, которые объединяют в себе функциональность SVN клиента, монитора и других плюшек:
  1. SmartSVNподсказал easterism
  2. Vercueподсказал centur

Чтобы при конфликтном коммите сохранять данные коммита(список файлов, комментарий), то можно настроить TortoiseSVN, чтобы в такой ситуации диалог коммита не закрывался — «Right click/TortoiseSVN/Settings/Dialogs 2/Reopen commit and branch/tag dialog after a commit failed».(с подсказки moiseir'а)

Доп. материалы

Оффициальный сайт с подробностями
Для админов, которые желают огородить проект от наблюдения
Немного о TortoiseProc на хабре
Програмка лежит на гуглокоде
Теги:
Хабы:
Всего голосов 27: ↑22 и ↓5+17
Комментарии24

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область