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

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

Время на прочтение2 мин
Количество просмотров9.9K
Работая с 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

Публикации

Истории

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

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань