В нашей компании мы используем SVN-репозиторий. Я занимаюсь программированием как с работы (основное место), так и дома (в основном эксперименты и рефакторинг). Это две разные машины, в разных сетях и почти никогда не включаемые одновременно (ведь я либо на работе, либо дома ...)
Я хотел дать шанс некоторой распределенной системе управления версиями и решить некоторые проблемы, связанные с процессом на основе SVN и наличием двух машин. Из мерзавцев, Mercurial и Bazaar я решил начать с Bazaar, поскольку он утверждает, что он предназначен для использования людьми. Это был мой первый раз с распределенной системой и с приятным и простым пользовательским интерфейсом.
Особенности, которые я хотел достичь, были:
- Возможность обновления из репозитория SVN и фиксации его.
- Возможность локально совершать шаги моей работы над заданием.
- Возможность иметь несколько отдельных задач одновременно в своих локальных филиалах.
- Возможность делить эти ветви между моей работой и домашним компьютером.
В качестве средства передвижения между работой и домашним компьютером я хотел использовать перьевой привод. Сервер компании не будет работать, так как я не могу ничего там установить. Ни один из них не будет работать с хранилищем веб-сервисов, так как я не могу загружать исходный код в сеть (особенно, если он будет общедоступным, что, как представляется, является распространенным случаем в бесплатных веб-сервисах).
Этот транспорт должен быть базирован на Bazaar (или чем-нибудь еще, чем я буду заканчивать), чтобы он мог выполняться более или менее автоматически, но вручную копировать и вставлять некоторые папки или генерировать файлы исправлений (при условии, что они будут работать - у меня плохой опыт работы с файлами исправлений) в SVN) будет работать, если нет лучшего решения.
Тем не менее, ручка-ручка должна использоваться только для транспортировки. Я не хочу редактировать или строить там.
Я попытался следовать рекомендациям Bazaar для интеграции с SVN. Но я потерпел неудачу. Я пробовал оба
bzr svn-import
а также
bzr checkout
предоставляя URL из моего хранилища в виде https://...
и svn+https://...
В некоторых случаях у него были некоторые проблемы с сертификатами, но в выводе указывался аргумент для их игнорирования, поэтому я сделал это. Иногда он просил меня войти (в других случаях, может быть, он вспомнил ... Я не знаю), что я и сделал.
Все они работали очень медленно (это может быть проблема с нашим сервером) и в какой-то момент были прерваны из-за разрыва соединения (это почти наверняка является проблемой нашего сервера: через некоторое время оно обрезает соединение). Но поскольку (в отличие от SVN) перезапуск начинается заново, а не с того места, где он был прерван, я не смог достичь всех ~ 19000 ревизий (обычно заканчивающихся где-то около 150).
Что и как мне делать с базаром? Можно ли как-то импортировать SVN-репозиторий из локальной проверки (чтобы я не терпел усечение соединения)? Мне сказали, что коллега, который работал с нами, сделал нечто подобное (импортировал SVN-репозиторий с полной историей) с Mercurial, как в мгновение ока. Поэтому я серьезно подумываю о том, чтобы попробовать Mercurial, даже если только посмотреть, сработает ли это.
Но также каковы ваши общие рекомендации для достижения перечисленных функций?