Система контроля версий Subvervion, она же SVN, чрезвычайно удобна для небольшой группы, особенно если серьёзных требований по веткам и их слиянию не предъявляется. И хотя в консоли Subversion пользоваться удобно и просто, иногда бывает удобнее просмотреть графически историю версий или быстро вытащить нужный файл определённой ревизии - тут нам поможет svn клиент kdesvn.
Просмотр и управление содержимым репозитория SVN
Собственно, kdesvn удобен тем, что позволяет быстро и легко просматривать истории ревизий какого-то конкретного файла, посмотреть на репозиторий "с высоты птичьего полёта":
Так же очень удобно быстро посмотреть, в каком состоянии были файлы в определённой ревизии (например, меню Subversion - Репозиторий - Select browse revision), а потом посмотреть на файл или (что чаще) скопировать из текста какой-нибудь удачный кусок, который был удалён раньше:
Выделив один файл, можно просмотреть его историю его правок (blame). И если разработчик не ленился описывать коммиты, то у нас останется полная история того, что изменилось, а так же кто и когда это сделал:
И немного о самих коммитах по мотивам замечательного поста "чеклист по правильным коммитам":
- коммиты должны быть логичными: коммит должен соответствовать одной структурной единице (новому файлу, новому блоку, новому классу);
- коммит может быть свободно откачен с уверенностью, что откатилось в точности одно логическое изменения;
- коммиты должны быть хорошо документированными (пустые журнальные сообщения это худшее, что может быть;
- перед коммитом необходимо просматривать диффы
- перед коммитом нужно проследить за новыми файлами, не добавленными в репозиторий, и добавлять их;
- при переименовании файла и внесении в него изменений следует отдельно закоммитить переименование, а отдельно изменение.
11 комментариев: |высказаться!| RSS-лента дискуссии.|
fossil наше все! Небольшой, удобный с вики и баг-трекером в комплекте. =)
Сейчас начнется. Все будет советовать свою VCS. )) А я продолжу.
git gui + gitk мне хватает выше крыши ))
На самом деле этим постом я хотел собрать мнения о том, что народ использует - мало ли, я в танке, а там вышло какое-нибудь зверобойное приложение, и я на него сразу же пересяду. Так что троллим вдоволь :-)
@Kostya комментирует...
fossil наше все!
О, круто. Не знал. А чего его в Дебиане нету? Только в сквизи... Ладно, будем ждать.
Да, а оно для продакшено уже того, созрело, или только для октябрят? :-)
@Сергей Любимов комментирует...
Все будет советовать свою VCS.
Мне так в прошлый заезд HG присоветовали. Я доволен. Решил ещё разок закинуть еды зелёной фауне :-))
git gui + gitk мне хватает выше крыши ))
Насчёт похоливарить и потроллить - это пожалуйста. Я вот, например, органически не перевариваю git, и не хочу курить Донской Премиум, чтобы понять процедуру git push, которая меня просто убивает своим маразмом: если я сказал, например, hg add *.tex, это значит то, что я сказал - добавить все файлы TeX в репозиторий. То есть не просто добавить, а закомиттить при следующем коммите. Но нет, только не в гите. А на кой хрен добавлять файлы, если не коммиттить их?
Если выражаться образно, то можно системы контроля версий сравнить с дверными доводчиками.
Доводчик Mercurial: дверь закрывается плавно, и замедляет ход к закрытию. Останавливает дверь, не давая ей закрыться на 20-30 см, раздаётся негромкое предупреждение: осторожно, двери закрываются, уберите ваши яйца из дверного проёма, чтобы их не прищемило. Через 5 секунд дверь закрывается. Всё.
Доводчик Git: создан теми немногими, которые всё-таки умудрились прищемить себе яйца и теперь создали доводчик, который исключает полностью шанс акцидентной ампутации тестикул. Чтобы дверь начала закрываться, нужно пройти внутрь, развернуться и дотянуться до маленькой утопленной внутрь кнопки наверху дверного проёма, нажав её зубочисткой или скрепкой. После этого дверь начинает закрываться и резко блокируется за 15 см. до закрытия. Раздаётся вой сирены: "Внимание! В дверном проёме возможно остались яйца! В целях безопасности ваших гениталий необходимо разблокировать дверь с внешней стороны!" После этого в стене открывается панель и выпадает чемодан с инструментами, циркулярная пила BlackAndDecker и длинная верёвочная лестница. Вам предлагается забраться на дверной косяк, выпилить циркулярной пилой круглую дырку наверху, забраться внутрь, найти где-то кнопку разблокирования и нажать её. После этого дверь громко захлопывается, и вам нужно вылезти через дырку сверху двери снова.
Да, с доводчиком Git яйца прищемить вам не удастся даже теоретически, и некоторые эту "секурность" ставят выше простого удобного устройства Mercurial, созданное людьми, не курящими Донской Илитный.
Да, насчёт fossil - я проникся. Правда, оно ещё очень молодое и неотёсаное, но впечатления самые приятные: DVCS, багтракнинг, вики, всё в одном файле, приличная документация (на удивление). Одним бинарником, почти без депендансов. Блестяще! Через годик думаю на это переползать. @Kostya, больше тебе спасибо от старого дебиановского танкиста :-)
Всегда пожалуйста! Рад был поделиться "свежим опытом". =)
По поводу самого fossil'а: его пишет автор sqlite. У меня к нему какое-то подсознательное доверие, так что я уже пользуюсь. И впечатления наиположительнейшие. В части багтрекинга оно еще и легко конфигурируется. Т.е. можно настроить вид, поля, формы для редактирования.
Ну а gui, я думаю, уже оценили - чай сам сайт fossil'а на нем и крутится. :-)
У меня hg плохо переваривал большие бинарники (Часть репозитория это документы odt и картинки). Да и замену git gui я для hg не нашел (Понравилсоь делать кучу изменений а потом коммитить по строчно, т.е. одно изменения разбивать на несколько. И это все через gui.) есть конечно hg crecorв, но это немного не то. да и не так удобно.
@Kostya комментирует...
По поводу самого fossil'а: его пишет автор sqlite.
Тогда понятно, откуда эти идеи про "всё в одном файле" и "используем sqlite" :-)
И впечатления наиположительнейшие.
Это да, но оно пока несколько сыроватое, на мой взгляд. То есть бросать всё и переводить на fossil всё ещё рано. Но уже можно подумывать, ибо багтракинг с вебмордой и DVCS в одном флаконе радует неимоверно.
@Сергей Любимов комментирует...
У меня hg плохо переваривал большие бинарники
Вообще-то совать бинарники в VCS не айс :-) Не для этого она.
Да и замену git gui я для hg не нашел
Была какая-то приблуда для графического коммита для HG. Найду в записях - напишу.
> Была какая-то приблуда для графического коммита для HG. А она умела выбирать нужные строчки из непрерывного изменения в diff`е?
@Сергей Любимов комментирует...
А она умела выбирать нужные строчки из непрерывного изменения в diff`е?
Не помню. Если мне не изменяет память, это было TortoiseHG из репов в тестинге. Там ещё очень смешная русификация, типа "протолкнуть" (push) и "вкачать пачку" (add a bunch).
@virens
Все таки TortoiseHG это не то же самое, что git gui. Ближе всего, к нему http://bitbucket.org/edgimar/crecord/overview
долго юзал rapidsvn (rapidsvn.tigris.org). мне понравилось.
Отправить комментарий