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

Контролируем коммиты в 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

Публикации

Истории

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн