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

Системы управления версиями *

GIT, SVN и иже с ними

Сначала показывать
Порог рейтинга
Уровень сложности

Hg Init: Часть 1. Переобучение для пользователей Subversion

Время на прочтение9 мин
Количество просмотров123K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →
Всего голосов 119: ↑116 и ↓3+113
Комментарии125

HgAssist — программа для уведомления о забытых push'ах

Время на прочтение2 мин
Количество просмотров1.1K

HgAssist — repositories are synced!



Пользуясь системой управления кодом Mercurial мы часто сталкивались с тем, что забывали делать push после того, как в локальный репозиторий были сделаны комиты.

Когда различных репозиториев несколько штук, то действительно трудно помнить об их синхронизации и можно легко оставить центральный репозиторий без наших изменений.

Поэтому мы написали HgAssist.
продолжить чтение
Всего голосов 31: ↑28 и ↓3+25
Комментарии22

Чего не может SVN

Время на прочтение3 мин
Количество просмотров2.3K
Когда вышла версия SVN 1.5, помню, мы с коллегами очень обрадовались долгожданной поддержке записи истории переноса изменений (merge), которую до тех пор мы вели в комментариях к правкам и это, конечно, очень нас напрягало. На радостях нам в голову начали приходить различные идеи, как можно использовать эту новую возможность, и однажды мы решили реализовать с ее помощью модульность на уровне исходного кода.

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

Вначале ничего не предвещало проблем
Всего голосов 49: ↑43 и ↓6+37
Комментарии62

Истории

Установка Subversion на Synology DS210j

Время на прочтение2 мин
Количество просмотров6.9K
imageВ свое время озадачился добавлением в свою небольшую домашнюю сеть компактного сервера, для хранения и закачки медиа контента, iTunes/UPnP сервера, backup своих проектов, TimeMachinе и.т.д.
В ходе чтения обзоров остановился на недавно вышедшей модели DS210j от Synology. В ходе переноса данных на NAS для хранения проектов решил установить Систему контроля версий — Subversion.
Если интересно добро пожаловать под кат.

Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии21

Github теперь поддерживает Subversion

Время на прочтение1 мин
Количество просмотров2.3K
Github наc заинтересовал с тех пор, как части проекта www.azati.com мы стали выпускать под AGPL лицензией. 1 апреля этого года Github объявил поддержку Subversion в режиме «только для чтения» для своих репозитариев. До сегоднешнего дня я был уверен, что это была первоапрельская шутка. Но вчера они объявили, что ввели поддержку Subversion еще и в режиме записи. Похоже Github целится в лидеры и настроен на пользователей которые уже устали от Subversion, но еще не созрели на Git. Ведь врядли те, кто уже использует Github с Git захочет использовать Subversion. Однако теперь многие поклонники Google code будут думать над переездом. Набор инструментов для работы с Subversion не меняется, глядишь, потом и Git можно попробовать ничего не теряя.
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии12

Вышли Mercurial 1.5 и TortoiseHg 1.0

Время на прочтение1 мин
Количество просмотров2.7K
Вышла новая версия распределённой системы управления версиями Mercurial и user-friendly клиента для этой системы — TortoiseHg.

Список изменений под катом
Всего голосов 50: ↑44 и ↓6+38
Комментарии39

Mantis + Subversion у себя на компьютере с Windows XP. Пошаговая инструкция для удобной организации работы с кодом

Время на прочтение6 мин
Количество просмотров5.6K

Исторически сложилось, что багтрекер в нашей команде – это Mantis. Для работы над ошибками очень хорошая и простая в обучении система. Буквально садись и работай. Но для удобной организации работы ей явно не хватает связки с Subversion. В связке Subversion+Mantis помогают организовать работу с кодом небольшой команды программистов. Более подробно про организацию работы у нас я описал в прошлой статье.
А сейчас давайте поговорим, как установить Subversion у себя на компьютере и связать его с Mantis на сервере.
Читать дальше →
Всего голосов 60: ↑49 и ↓11+38
Комментарии43

Mercurial hgwebdir через FCGI + несколько разных хранилищ

Время на прочтение5 мин
Количество просмотров1.9K

Введение и отмазка


Доброго времени утра,

Возможно, всё о чём я сейчас буду рассказывать делается проще, правильнее, уже сделано, придумали ещё австралопитеки. Возможно это даже будет воспринято как издевательство над всем упомянутым, а вы зря потратите несколько минут своего драгоценного времени. Знайте — я предупреждал!

Если ещё не закрыли статью — обрисую ситуацию:

Что у нас есть


У нас есть nginx, mercurial несколько самостоятельных проектов, на каждый из которых имеется 3-4 репозитория. Ещё у нас иногда могут появляться сторонние разработчики, которым часть этих проектов показывать совершенно не обязательно.

Что со всем этим делать?

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии5

GIT, HG и прочие DVCS vs VSS, SVN и прочих SVCS: в первых деревья ортогональны, во вторых — смешаны!

Время на прочтение2 мин
Количество просмотров3.4K
imageКажись, я просёк то, что нигде никто явно не пытается писать — а мне без этого как-то непонятно было. У меня довольно большой опыт работы в VSS и некий опыт присматривания к SVN. А сейчас вот и к GIT-ам всяким присматриваюсь.

На страничке mercurial.selenic.com/wiki/UnderstandingMercurial в конце сказано, что если вы думаете держать в одном репозитории HG несколько родственных проектов, как привыкли в системах типа SVN, то лучше одумайтесь, ибо HG на это не рассчитан. Похоже это потому, что он всегда работает со всей рабочей папкой в целом.

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

Читать дальше →
Всего голосов 11: ↑2 и ↓9-7
Комментарии23

Mercurial для параллельной работы с несколькими похожими проектами, часть 1

Время на прочтение2 мин
Количество просмотров2.5K

Введение


В статье рассматриваются несколько проблем (и полезных возможностей) при работе с mercurial и предлагаются варианты их решения.

Несколько проектов на одном фреймворке

Предположим, мы используем какой-то фреймворк сразу в нескольких проектах. Для этого мы, как правило, клонируем базовый репозиторий и начинаем менять в нём файлы, связанные только с нашим проектом, тестируем, коммитим, пушим — всё как обычно.
Внезапно… мы обнаруживаем, что в самом фреймворке есть баг или нам, ну просто сил нет, нужно добавить какую-то функциональность, да заодно потестировать её с текущим проектом.
При этом мы понимаем, что эти изменения должны рано или поздно попасть в репозиторий фреймворка.

Что же делать?
Читать дальше →
Всего голосов 34: ↑18 и ↓16+2
Комментарии9

GUI SVN клиент для Linux

Время на прочтение2 мин
Количество просмотров56K
Доброго времени пребывания, уважаемые Хабровцы 8)
Наткнулся я недавно, на бескрайних просторах, на очень полезную и долгожданную штуковину. Что за штуковина — читай сабж.

Выглядит всё это, как всем известный TortoiseSVN для Windows. Только называется RabbitVCS и уже для Linux.
Если не верите, смотрите скриншоты :)
image
Читать дальше →
Всего голосов 82: ↑70 и ↓12+58
Комментарии66

Gource — визуализируем историю работы над проектом

Время на прочтение1 мин
Количество просмотров22K
Спешу рассказать хабрасообществу о, относительно новом, дьявольски завораживающем проекте Gource которое еще не упоминалось. Это приложение позволяет визуализировать историю изменений в системе контроля версии. Отрисовывает невероятно красиво при помощи OpenGL.


Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии51

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

12 – 13 июля
Геймтон DatsDefense
Онлайн
19 сентября
CDI Conf 2024
Москва

Branching Guidance от Microsoft

Время на прочтение1 мин
Количество просмотров1.1K
Добрейшего.

Набрёл на неплохой текст от команды Microsoft Team Foundation Server: Branching Guidance
Будущим и нынешним пользователям обозначенной системы предлагается:
  1. проникнуться важностью ветвления и слияния изменений для работы больших команд;
  2. узнать, какие типы веток бывают и как строить изоляцию работы на их основе;
  3. посмотреть на практических примерах как надо правильно отращивать и мёржить изменения.
Что пишут?
Всего голосов 17: ↑11 и ↓6+5
Комментарии2

Линус Торвальдс о GIT на Google Talks [видеоперевод 8 частей]

Время на прочтение1 мин
Количество просмотров4.1K
Два года назад Линус Торвальдс рассказал представителям Google об использовании GIT (распределённой системы контроля версий) для ядра Linux. Посчитав, что многие могут пропустить эту интересную лекцию по причине незнания языка, я осмелился озвучить её по-русски.



а так же плейлист целиком.
пояснения...
Всего голосов 103: ↑100 и ↓3+97
Комментарии42

GIT для пользователей subversion (и др scm)

Время на прочтение4 мин
Количество просмотров6.1K
Git это еще одна системы для управления исходным кодом, аналогичная subversion, cvs и другим. Почему аналогичная, а не «новая», «быстрая» и тп? SCM (source code management) прежде всего инструмент, который позволяет выполнять операции необходимые для одного разработчика и команды в целом. При каждый инструмент имеет свои достоинства и недостатки.

В этой статье мы сосредоточимся на основных функциях, без сравнительного анализа (чтобы не повторять миллионы заметок в web). И покажем пример, как применять git при работе с subversion.
Читать дальше →
Всего голосов 76: ↑71 и ↓5+66
Комментарии53

История о том как SVN copy победил SVN merge

Время на прочтение3 мин
Количество просмотров1.8K
Итак, сразу опишу нашу ситуацию и потом объясню почему дал этой статье такое глупое название :-)

Наша команда из 4х человек работает на одном проекте (пока не буду говорить, что за проект, надеюсь, напишу о нем позже)

У нас было 3 SVN ветки: Production (стабильная ветка, которая обслуживает запросы пользователей), Staging (промежуточная ветка), Trunk (девелоперская ветка).

Читать дальше →
Всего голосов 8: ↑4 и ↓40
Комментарии30

Решаем проблему с svn: Revision range is not allowed

Время на прочтение1 мин
Количество просмотров1.1K
Эта заметка будет интересна тем кто работает с subversion и должен переносить исходники из репозитория на сайт в «ручную», через консоль.
Не много предыстории.
Я достаточно часто обновляю файлы для нашего проекта Закладки на картинки (picfor.me) и для этого пользовался командой svn export …, но вот беда если мне надо закачать только изменения между ревизиями, то в консоли это сделать не так просто:
  1. $ svn export  -r1123:1167 . /tmp/export_dir
  2. svn: Revision range is not allowed



Есть конечно решений, если использовать клиента TortoiseSVN, вот статья с хабра где это описано.

Я же придумал решение для консоли.
Читать дальше
Всего голосов 7: ↑3 и ↓4-1
Комментарии14

В Google Code добавлена поддержка Mercurial

Время на прочтение1 мин
Количество просмотров1.4K
Как сообщает Google Code Blog, в скором времени хостинг для опенсорсных проектов от гугла будет поддерживать Mercurial наряду с Subversion для контроля версий.

Разработчики тщательно выбирали между разными распределенными системами, и в конце концов остановили выбор именно на mercurial, а процессу выбора между mercurial и git посвящен этот интересный документ. Mercurial победил в «конкурсе», поскольку:
  • он лучше интегрировался в инфраструктуру гугла: меньше сложностей с хранением данных, проще и «чище» HTTP интерфейс;
  • удобнее для windows-пользователей ( официальный windows-порт git использует cygwin);
  • кривая обучения менее, гм, кривая.


Гуглоразработчикам пришлось частично переписать mercurial, вместо стандартного дискового хранилища у них используется BigTable.
Всего голосов 49: ↑47 и ↓2+45
Комментарии48

Вклад авторов