Wednesday, 26 March 2008

codeville: первый взгляд

Случайно наткнулся на очередную scm: codeville.

В debian’е она оказалась, причем свежей версии, так что рассказ пойдет про нее.

Первым делом я зашел на сайт в раздел Docs, где меня встретила стандартная страница MionMion’а, как выяснилось проблема была из-за русской локали, и в wiki что-то даже есть.

Во время установки поразило что мне добавили в сервер этой scm, да еще прописали на автоматический старт. Странно.

Начало использования

После

cdv init

оказывается что надо обозвать себя, путем присвоение переменной user какого значения

cdv set user catap

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

Моё кощунство в лице работы в репозитории, путь до которого имеет русские буквы система пережила. Она даже смогла добавить такой вот файл:

cdv add файл

Но на этом я не остановился, и при

cdv commit

решил указать русский комментарий. Молодцы, все прошло отлично, даже удалось лог посмотреть. Правда вместо log’а тут

cdv history

сокращение команд до

cdv hi

вполне работает, что приятно

Несколько разработчиков говорите, да?

В начале я попытался сделать clone, но мне сказали что такой команды нет (о ужас!). Потом я полез смотреть документацию и оказалось, что единственный способ «расшарить» свой репозиторий это выложить его на сервер. Ну раз мне поставили сервер, будем его настраивать.

В начале надо привезти /etc/cdvserver.conf к нормальному виду или написать свой конфиг. Я не долго думая получил (да, я люблю /tmp, ибо оно самоочищаемое);

[control]
datadir=/tmp/cdvserver/
pidfile=/tmp/cdvserver.pid
logfile=/tmp/cdvserver.log
backup=False
port=6601
user=catap

После этого надо создать datadir. Если запустить сейчас cdvserver нам вывалится трейс, который гласит что не хватает файла с паролями. Окей, создаем:

cdvpasswd -f /tmp/cdvserver/passwd add catap

Вместо add можно сделать set (заменить пароль) и delete для его удаления.

На этом приключения не заканчиваются, надо сделать инициализацию путем запуска его с ключом -i

cdvserver -i

После успешной инициализации можно запускать его просто:

cdvserver

Теперь надо установить для нашего репозитория ссылку на удаленный репозиторий:

cdv set repository cdv://localhost/repo1

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

Для получения изменений из удаленого репозиторий надо использовать

cdv update

Если мы будем пытаться комитить изменения, которые будут конфликтовать с изменениями в удаленном репозитории, нас попросят сделать update и исправить, ручками, все конфликты.

Что бы получить изменения из репозитория с другого сервера (не того что мы прописали) надо указывать его конкретно:

cdv -R cdv://localhost/repo2 update

Что бы послать изменения в другой репозитарий, его надо указать при commit’е:

cdv -R cdv://localhost/repo2 commit

Branches

Как таковых branches тут нет, зато работа с ними происходит через другие репозитории, наверное это удобно.

Итоги

Минусы

  • Не умеет протоколы отличные от своего
  • В ToDo написано «support for binaries» (в разделе larger features)
  • Неочевидная настройка
  • Неудобно, что нельзя прописать часть опций глобально
  • Нельзя сделать cdv clone url, т.е. надо инициализировать руками и руками прописать настройки. Для версии 0.1 я бы это простил, но для 0.8.0 извините.
  • Не умеет всякие мелочи (игнорирование файлов и многое другое, что привычно из «больших» scm)

Плюсы

  • Простая и прозрачная работа с удаленными репозиториями
  • Тупая как валенок, что приятно, ибо, наверное, удобно будет хакать (по sloccount’у ~9 тысяч строк кода).
  • Есть man-page в которой описано все что она умеет.

Очередная scm. Сильно напомнила мне svn. Интересная идея с убиранием веток как таковых и представлением их как отдельный репозиторий (напоминает мне tla, darcs и компанию).

Write on: 3:30 | 4 comments | | tags: , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Comments

Vyazovoi Pavel 26.03.2008 20:35

Кроме как “ну и зачем ещё одно” ничего не напрашивается. Учитывая что ничего нового я не вижу.

reply
Kirill A. Korinskiy 26.03.2008 22:08

Они писали что фишка у них супер merge. Как я понял вся фишка их merge, что ты можешь сделать update c многих источников и потом сделать merge.

Спорная фишка, имхо.

reply
Vyazovoi Pavel 28.03.2008 6:24

Хм, а я вот даже не проверял — что будет в mercurial если сделать merge на несколько апдейтов. Наверно последние два обработаются. Фишка может и интересная — только наверно на практике такая ситуация редкость и можно обойтись откатами а затем последовательными объединениями.

reply
Kirill A. Korinskiy 28.03.2008 18:54

Мне вот не совсем понятно, зачем это нужно.

reply

Comment form for «codeville: первый взгляд»

Required. 30 chars of fewer.

Required.