Вопросы по переходу с SVN на Hg
Или, если я вдруг почему-то не заметил, то можешь, плиз, указать конкретное место?
Насколько я понял, Hg всегда работает с целым репозиторием, поэтому под каждый проект отдельный репозиторий (а не отдельный каталог, как можно было делать в SVN).И в svn и в mercurial это вопрос вкуса и соглашений между разработчиками по большому счету. В svn создать и менеджить новый репозиторий сопряжено с большим геомороем поэтому там обычно идут путем каталогов. В mercurial этой проблемы нет, поэтому логичнее делать один проект - один или несколько реп.
Я нашел, как конвертировать существующий svn-репозиторий в локальный hg-репозиторий, но теперь не совсем понимаю, как залить это на центральный сервер (который админы, вроде, подняли c помощью hgweb и он доступен по http)? То есть мне нужно как-то создать репозиторий на центральном сервере и пропихнуть тута уже существующий локальный репозиторий.Ну так тут же по шагам все расписано: http://hginit.com/02.html
Вообще, для организации работы для команды рекомендуется использовать что-либо вроде http://www.lshift.net/mercurial-server.html - сильно упрощает управление центральными репозиториями (в отличие от svn, в mercurial при работе команды их будет МНОГО).
2) Как все-таки правильно работать с ветками в Hg? Я смотрю, что там для этого можно использовать и hg branch, и hg clone. Опять-таки это нужно делать на центральном сервере, чтобы с созданной веткой могли работать несколько человек.С ветками можно работать сильно по-разному. Вот тут достаточно подробно расписывают за и против всех популярных вариантов: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-me...
Ну так тут же по шагам все расписано: http://hginit.com/02.htmlЯ понял, что неправильно сформулировал вопрос. У меня нет консольного доступа к центральному серверу, то есть на нем я не могу выполнить никаких команд - только http. Я правильно понимаю, что так новый репозиторий не создать - нужно дергать админов?
Вообще, для организации работы для команды рекомендуется использовать что-либо вроде http://www.lshift.net/mercurial-server.html - сильно упрощает управление центральными репозиториями (в отличие от svn, в mercurial при работе команды их будет МНОГО).
А с установкой отдельного сервера проблема в том, что у нас требуется, чтобы была интеграция с какой-то системой управления правами (точно название сейчас не вспомню для интеграции с которой есть модуль к апачу, поэтому и Mercurial ставился как модуль к апачу.
С ветками можно работать сильно по-разному. Вот тут достаточно подробно расписывают за и против всех популярных вариантов: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-me...Эту статью я как раз только что закончил читать, заодно просматривая соответствующие разделы с http://mercurial.selenic.com/ - значит, она все еще актуальная, а том меня смутил год
В общем, понял, что из-за невозможности самому создавать репозитории в нашем случае лучшего всего подойдет hg branch.
Я правильно понимаю, что так новый репозиторий не создать - нужно дергать админов?Меркурий же распределенная vcs, создать реп ты можешь локально, а далее синхронизировать с сервером как потребуется.
Я понял, что неправильно сформулировал вопрос. У меня нет консольного доступа к центральному серверу, то есть на нем я не могу выполнить никаких команд - только http. Я правильно понимаю, что так новый репозиторий не создать - нужно дергать админов?Скорее всего да. Если только админы не разрешили доступ по WebDAV. В общем, в любом случае узнавать у админов что и как они там понастраивали.
А с установкой отдельного сервера проблема в том, что у нас требуется, чтобы была интеграция с какой-то системой управления правами (точно название сейчас не вспомню для интеграции с которой есть модуль к апачу, поэтому и Mercurial ставился как модуль к апачу.Ну вообще, использование mercurial-server обычно не противоречит этим требованиям Еще можно посмотреть в сторону http://www.scm-manager.org/, http://rhodecode.org/, но ими я лично не пользовался.
2) Не надо на центральном сервере делать hg clone ... пускай будет один репозитарий, пускай будут теже ветки что были в svn (примерно). Тут смысл в том, что ты можешь у себя локально миллион репозитариев понаделать, в ходе экспериментов в сотне из них что то сделать полезное, в итоге десяток из них запушить в один главный, в нем все это смержить и из него уже отправить в центральный реп.
Тут смысл в том, что ты можешь у себя локально миллион репозитариев понаделать, в ходе экспериментов в сотне из них что то сделать полезное, в итоге десяток из них запушить в один главный, в нем все это смержить и из него уже отправить в центральный реп.
Это особенность mercurial? Или есть другие подобные?
А собственно имеет смысл подобное использовать если разработчик только 1?
Или оно всё равно удобнее того же SVN?
Например, чтобы завести репозиторий, не нужно трахаться с базой данных.
Ну и гитхаб конечно не был бы таким популярным, если б в основе там был svn или что-то ему подобное.
Или это уже определяется поддержкой конкретных сред разработки?
Тут на мой взгляд одинаково, на практике осваивается быстро и то, и то
Например, чтобы завести репозиторий, не нужно трахаться с базой данных.На каком этапе настройки svn тебе приходилось трахаться с БД?
Тут смысл в том, что ты можешь у себя локально миллион репозитариев понаделать, в ходе экспериментов в сотне из них что то сделать полезное, в итоге десяток из них запушить в один главный, в нем все это смержить и из него уже отправить в центральный реп.Это я понимаю, но мне нужны ветки именно в центральном репозитории, чтобы над одной веткой могли работать несколько разработчиков.
А кто-нибудь может объяснить преимущества bookmarks перед branches? То есть в каком случае используют bookmarks?
А кто-нибудь может объяснить преимущества bookmarks перед branches? То есть в каком случае используют bookmarks?Бранчи тяжелее, репозиторий разрастается. Впрочем, сейчас это уже почти никому не актуально.
Как все-таки правильно работать с ветками в Hg? Я смотрю, что там для этого можно использовать и hg branch, и hg cloneТы что-то не так понял. Clone создает отдельный репозиторий - полную копию склонированного. Branch изменяет существующий - добавляет новую (именованную) ветку. Clone ты используешь ровно один раз - склонировать репозиторий с сервера. Branch логично использовать, когда начинаешь разработку отдельной фичи, которую нет смысла мержить в главную ветку, пока она не убдет полностью готова.
с аутентификацией на винде
Оставить комментарий
ifani
Всем приветНамучившись с мерджами между ветками в Svn, решил, наконец-то, перевести проект на Hg. Но что-то после Svn довольно сложно дается понимание того, как правильно организовывать процесс разработки в Hg Возникли следующие вопросы:
1) Насколько я понял, Hg всегда работает с целым репозиторием, поэтому под каждый проект отдельный репозиторий (а не отдельный каталог, как можно было делать в SVN).
Я нашел, как конвертировать существующий svn-репозиторий в локальный hg-репозиторий, но теперь не совсем понимаю, как залить это на центральный сервер (который админы, вроде, подняли c помощью hgweb и он доступен по http)? То есть мне нужно как-то создать репозиторий на центральном сервере и пропихнуть тута уже существующий локальный репозиторий.
2) Как все-таки правильно работать с ветками в Hg? Я смотрю, что там для этого можно использовать и hg branch, и hg clone. Опять-таки это нужно делать на центральном сервере, чтобы с созданной веткой могли работать несколько человек.
Сорри, если вопросы глупые, но большинство статей на тему работы с локальным репозиторием (типа, сделали hg clone и в новой папке получили новый репозиторий, из которого потом можно легко пропихнуть изменения в исходный а мне нужно в контексте работы с центральным.