Мне лично удобнее mercurial и bitbucket. Намного проще заливать новый проект на сервер, намного проще ветвиться, чем в git. Использую TortoiseHG, но и в консоли можно работать.
На bitbucket надо залить свой публичный ключ ssh, и дальше когда создаёшь проект, всё написано - по какому урлу залить. В Tortoise потом вставляешь урл ssh для работы, и всё.
Добавлю, что гуй в работе в ветками очень нужен, потому что 1) сильно снижает вероятность закоммитить правки не в ту ветку 2) облегчает работу с анонимными ветками в Mercurial.
Про github уже всё сказали, могу только присоединиться. Единственное что мне не нравится - недоделанные синтаксисы в wiki - что родной markdown, что mediawiki’вский, в итоге, скажем, вложенные списки толком не сделать.
А Git лучше всего осваивать по http://progit.org/book/ru/ - после её прочтения и нескольких экспериментов локально, всё становится на свои места. Я, к сожалению, про неё поздно узнал, а интернет завален гайдами, howto и книгами вида (init/clone + много-много про интерактивный add + commit + чуть-чуть про push/pull), и ничего про такие важные вещи как fast-forward, rebase, remote и управление удалёнными ветками, только поэтому трудности и были.
Перевел локальный проект с Svn на Git + Git Extension. Всё нравится, только полностью отсутствует какая-либо автоматизация по именованию версий. В SVN было понятно - r123 и далее, в GIT нет такого. Нагуглил только git describe
но для этой команды надо не забывать вручную ставить тэги, автоматически ставить их по commit он не умеет. Кто как справляется с этой проблемой ?
Спасибо.
Что конкретно нужно, зачем ставить тэги по коммиту? Отделные коммиты адресуются по хэшу, для остального есть ветки и тэги, последние могут быть как просто меткой, так и иметь самостоятельное описание.
AMDmi3
siberiano
Общий смысл - автоматически проставить версию в #define, чтобы впоследствии идентифицировать исходник. Нашел какие-то скрипты для внедрения в Pre-Build Event (VS2005), буду копать в их сторону.