LINUX.ORG.RU

Bazaar 2.5

 bzr,


0

1

Сегодня вышла система контроля версий от Canonical.
Основные изменения:

  • Замена конфигурационных опций в команде.
  • Теперь, если кодировка явно не указана, используется utf-8.(Раньше, без явного указания кодировки, невозможно было работать с файлами с названиями в не-ascii)
  • Базовая поддержка размещения разных веток в одной директории.
  • Улучшена скорость работы с историей.
  • Добавлена поддержка SSL проверки сертификатов в urlib https бекенде.
  • Более быстрый smart сервер.
  • GPG подписи.

>>> Подробности



Проверено: DoctorSinus ()
Последнее исправление: DoctorSinus (всего исправлений: 4)
Ответ на: комментарий от tailgunner

А у него как минимум один форк: url=https://bitbucket.org/mponomarenko/hg-fixutf8

До 2011-го в консоли^Wcmd.exe ни одно нормально не заработало, пришлось допиливать своё https://bitbucket.org/mecareful/hg-fixutf8-backbone.

Но, имхо, как в Gitorious private-repos домержат, свалю на Git. Скорость и сжатие лучше, возможность безболезненного удаления веток без необходимости делать клоны или ставить расширения.
Что касается преобразования кодировок, то костыли это, имхо, и не нужно кроме UTF-8. Либо уж имена в латинице.
Что, если Вы создали репозиторий, в именах файлов которого >256 символов. Назад их преобразовать уже не получится даже в теории.

backbone
()
Ответ на: комментарий от backbone

Скорость и сжатие лучше

возможность безболезненного удаления веток без необходимости делать клоны или ставить расширения.

/me пожимает плечами в полном недоумении. Скорость чего, какие объемы тебе сохраняет разница в степени сжатия, с каких пор «безболезненное удаление веток без SMS^Wрасширений» стало важным юзкейсом?

tailgunner
()
Ответ на: комментарий от ZyX

hg-git отлично работает (правда, медленно).

hg clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
backbone
()
Ответ на: комментарий от tailgunner

Скорость клонирования репов. Волей судьбы приходится прыгать между компами.
Сжатие у Git выше раза в 3 в среднем, чем у Mercurial, мне это важно.
Удаление ненужных веток тоже важно. Конфиги храню в Mercurial, репозиторий быстро растёт.

backbone
()
Ответ на: комментарий от backbone

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

backbone
()
Ответ на: комментарий от backbone

Скорость клонирования репов.

Неужели? Вообще-то и в Git, и в Mercurial клонирование в пределах локальной ФС производится хардлинками. Что, для Git вызов link(2) работаепт быстрее?

Волей судьбы приходится прыгать между компами.

Мде. А судя по «свалю на Git» («свалю» - единственное число) ты используешь Git в чисто персональных целях и/или на короткоживущих проектах?

Сжатие у Git выше раза в 3 в среднем, чем у Mercurial

4.2

Удаление ненужных веток тоже важно. Конфиги храню в Mercurial, репозиторий быстро растёт.

А для программироваания ты Mercurial вообще используешь или нет? Потому что я не представляю себе, как можно программировать, но не включить при этом mq (одна строчка в конфиге).

P.S. насчет «расширений»...

$ file /usr/bin/git-merge
/usr/bin/git-merge: POSIX shell script text executable
$

в этом вашем Git без расширений и шагу не ступишь.

tailgunner
()
Ответ на: комментарий от AVL2

кстати да, есть такое... меня тоже расстроило. причём товарищ льёт из-под венды - на гитхабе квакозябры, забирает из-под венды - норм. Считает, что так и должно быть =)

а я пытался ту же репу из линукса слить - угадайте результат...

нет ли какого-нибудь hard fix? костыля какого-то, чтоб всё нормально было?

да... и раз уж тебя про bazaar - в нём таких проблем нет?

BattleCoder
()
Ответ на: комментарий от tailgunner

Неужели? Вообще-то и в Git, и в Mercurial клонирование в пределах локальной ФС производится хардлинками. Что, для Git вызов link(2) работаепт быстрее?

Я не спорю на счёт теории, простые тесты показывают, что git clone быстрее отрабатывает.

Мде. А судя по «свалю на Git» («свалю» - единственное число) ты используешь Git в чисто персональных целях и/или на короткоживущих проектах?

Свалю на личных проектах (если dcvs пользуется один человек в команде, то это проблема, я в курсе).

4.2

Ну сами потестируйте, зачем спорить? git gc разве что на бинарных файлах не даст выигрыша.

А для программироваания ты Mercurial вообще используешь или нет? Потому что я не представляю себе, как можно программировать, но не включить при этом mq (одна строчка в конфиге).

┌─[kolan@corka (13:26)]──(~)
└─[% > grep mq .hgrc                                                                                                                                                                (hg)-[/desktop/gentoo/kolan/corka] 
mq =

обхожусь пока что.

backbone
()
Ответ на: комментарий от backbone

Я не спорю на счёт теории, простые тесты показывают, что git clone быстрее отрабатывает.

На каких репозиториях проверено?

Ну сами потестируйте, зачем спорить?

Я помню результаты тестов, когда git только входил в моду. Там даже в худшем случае не было 3-кратного выигрыша, не говоря уже о среднем.

git gc разве что на бинарных файлах не даст выигрыша.

Мде. Причем git gc к бинарным файлам? Это костыль для чистки базы объектов от мусора.

обхожусь пока что.

Я ничего не понял из твоего ASCII-арта, но, если ты обходишься без mq, то учи матчасть, окупится.

tailgunner
()
Ответ на: комментарий от tailgunner

На каких репозиториях проверено?

Я тестировал на личных репозиториях, но вот, к примеру, ссылка на тесты с OpenSource проектами http://vcscompare.blogspot.com/2008/06/git-mercurial-bazaar-repository-size.html

Я помню результаты тестов, когда git только входил в моду. Там даже в худшем случае не было 3-кратного выигрыша, не говоря уже о среднем.

Может быть, я не знаю, меня тогда не было.

Мде. Причем git gc к бинарным файлам? Это костыль для чистки базы объектов от мусора.

Просто констатирую факт, что если в репозитории большие бинарные файлы, то в результате git gc особых изменений не будет.

Я ничего не понял из твоего ASCII-арта, но, если ты обходишься без mq, то учи матчасть, окупится.

ок.

backbone
()
Ответ на: комментарий от backbone

вот, к примеру, ссылка на тесты с OpenSource проектами http://vcscompare.blogspot.com/2008/06/git-mercurial-bazaar-repository-size.html

Тесту скоро 4 года, и там опять же нет 3-кратного превосходства git над hg.

Просто констатирую факт, что если в репозитории большие бинарные файлы, то в результате git gc особых изменений не будет.

Да и не должно (особенно если настроен автозапуск gc).

tailgunner
()
Ответ на: комментарий от BattleCoder

да... и раз уж тебя про bazaar - в нём таких проблем нет?

У базара с юникодом полный порядок.

Кстати, у «отсталого» SVN тоже, как выяснилось.

vasilenko
()

Сегодня вышла система контроля версий от Canonical.

Для соблюдения точности формулировок поправлю, что Canonical лишь только спонсирует разработку (не знаю, как выглядит это спонсорство), но Bazaar - это часть проекта GNU.

http://bazaar.canonical.com/en/

What is Bazaar?

Bazaar is a version control system that helps you track project history over time and to collaborate easily with others. Whether you're a single developer, a co-located team or a community of developers scattered across the world, Bazaar scales and adapts to meet your needs. Part of the GNU Project, Bazaar is free software sponsored by Canonical.

Zubok
()
Ответ на: комментарий от anonymous

Скажу по секрету: оно кроме самой Canonical никому не нужно. Все нормальные люди пользуются либо Git, либо Hg.

GNU использует Bazaar. Например, для разработки Emacs и др.

Zubok
()

Заходишь в тему - и правда, базар.

И модераторам жаловаться бессмысленно.

deb
()
Ответ на: комментарий от JackyTreehorn

Вообще-то mq с его разными «фронтэндами» уже давно в основном пакете. Ветки удаляются совершенно без проблем.

Работает, спасибо!

backbone
()
Ответ на: комментарий от deb

нет. это потому, что человек чувствует себя комфортно только с теми инструментами, к которым привык (то есть с «любимыми»), а на переучивание требуется время ;)

chg
()

Оно сжимать научилось (а-ля git) или все так же, можно посадить дерево/построить дом/etc пока качаются сорцы grub?

fang90
()

зачем оно? есть же svn и git.

qbbr
()

Дааа. Живут же люди!
Мне-то до сих пор на работе приходится Visual SourceSafe использовать. Убийственная вещь - например, недавно втихую и по непонятным причинам сделала Undo check-out у коллеги, и двухдневный труд пошел коту под хвост.
Ладно хоть бэкапы были.

anonymous
()
Ответ на: комментарий от anonymous

Мне-то до сих пор на работе приходится Visual SourceSafe использовать. Убийственная вещь - например, недавно втихую и по непонятным причинам сделала Undo check-out у коллеги, и двухдневный труд пошел коту под хвост.

ухаха, отмучался я на нем в свое время, как щас помню:

«Эй, друг, собери проект, плиз! А то у меня измененения, которые пока засылать нельзя!»

nikitazu
()
Ответ на: комментарий от anonymous

Мне-то до сих пор на работе приходится Visual SourceSafe использовать.

Нафиг такую работу, нервы дороже.

gensym
()
Ответ на: комментарий от AlexM

> потому что git grep сделан для тех, кому лень написать “grep pattern $(hg locate)”.

Спасибо, было смешно.

А что не так? «hg grep» ищет в diff’ах и показывает, когда была добавлена определённая строка. «git grep» без указания ревизии работает именно как «grep pattern $(hg locate)» («grep pattern $(git ls-files)»). Если надо искать именно в другой ревизии, то придётся использовать «hg update» и, опять же, обычный grep.

ZyX
()
Ответ на: комментарий от galanthus

Во-вторых, чем плохи скрипты?

Я не говорил, что они плохи.

Они делают из «the stupid content tracker» DVCS.

Это всё еще plumbing вместо DVCS.

tailgunner
()
Ответ на: комментарий от galanthus

Во-вторых, чем плохи скрипты?

Тогда непонятны выпады Торвальдса о CVS, учитывая что в компании, где он работал, тоже использовали пачки скриптов поверх VCS.

X-Pilot
()
Ответ на: комментарий от ZyX

Только git grep делает это со скоростью, в разы, если не на порядки, превышающей grep -R *. Я понимаю, на хелловорлдах это, может, и не заметно, а когда в проекте закоммитано 56K файлов - разница, знаете ли, на лице.

AlexM
()
Ответ на: комментарий от vasilenko

Лично я для себя отметил что vasilenko скромно умолчал о CVS что выдаёт махровый коллаборационизм и комплексы. Далее, у того кто использует bzr одновременно с живым git явно не пионерский ум, а старческий маразм.

По теме можно добавить что по-умолчанию надо использовать не сраный utf-*, а сраную локаль, и делать как там написано.

alx_me
()

Bazaar не нужен. Развели, понимаешь, целый зоопарк dvcs...

geekless
()

Bazaar не плох.. и Git тоже..

удачи обоим проектам! :-)

user_id_68054
()
Ответ на: комментарий от vasilenko

Багрепорт ты отправил, надеюсь?

Нет, конечно.

1. как оказалось, баз уже был давно известен но никто его не фиксил. Что удивительно. Как-никак один из любимых продуктов Canonical.

2. на моей памяти, баги, что я репортил, как правило либо вообще никто не смотрел, либо закрывали с пометкой «так и задумано». Свежий пример - падучий weather applet. Никто и не собирается фиксить.

rtvd
()
Ответ на: комментарий от Werdn

И год назад и сейчас работает идеально с дефолтными настройками. Ставил как бинарники MsysGIT, так и самособирающуюся версию.
Но я жосский виндузятник и в консоль редко лезу окромя как написать git init, git clone. В основном пользуюсь GitExtensions.

А я пускал в Ubuntu стандартный GUI этого Bazaar. В теории, это должно быть самым стабильным подходом: дистр поддерживается теми же товарищами, что занимаются Bazaar. И в GUI чисто физически нельзя сделать слишком извращенные вещи. Да я и не собирался делать ничего особенного. Но зараза не работала. Пять минут траха, три минуты гугления, найденная не закрытая проблема -> ф топку.

rtvd
()
Ответ на: комментарий от alx_me

i18n.comitenconding=koi8-r или cp1251

Да ну нафиг. Не для того мы utf-8 внедряли, чтобы в репе эти кодировк были.

AVL2
()

Re

вобщем плюсы:

1) нормальная поддержка винды, 2) местами более прямой чем git особенно в плане переименования файлов и каталогов

недостатки:

1) тормоз ибо пайтон 2) нерассчитан на работу с бинарными файлами

cvv
()
Ответ на: комментарий от X-Pilot

Во-вторых, чем плохи скрипты?

Тогда непонятны выпады Торвальдса о CVS, учитывая что в компании, где он работал, тоже использовали пачки скриптов поверх VCS.

В git скрипты - это вызовы команд git низкого уровня. Этот низкий уровень должен гарантировать атомарность и целостность, так что результат работы скрипта не должен приводить к краху репозитория. Ну, это в теории. И вроде бы эта теория работает.

x86_64
()
Ответ на: комментарий от MrKooll

А я пускал в Ubuntu стандартный GUI этого Bazaar.

У Bazaar появился стандартный GUI?! Это bzr-gtk или qbzr так обозвали?

Тот, что Bazaar Explorer. Думаю он сделан на базе qbzr.

А стандартный он в том смысле, что его первым предлагают.

1. Идешь на http://bazaar.canonical.com/en/

2. Тыкаешь на «extras» и видишь что в категории «GUI Clients» есть только Bazaar Explorer и ссылка на «3rd party tools».

Так что Bazaar Explorer явно представлен людьми, отвечающими за bazaar как основной GUI. :-) Ты им не веришь?

rtvd
()
Ответ на: комментарий от rtvd

Не верю. Тем более explorer долго в полузамороженном состоянии был.

Вот qbzr активно разрабатывается.

MrKooll
()

Оно тоже не умеет докачку?

O02eg
()
Ответ на: комментарий от AlexM

Я где‐то написал “grep -R *”? Не надо заставлять grep дёргать каталоги, на больших репозиториях используйте xargs:

(zyx:tmp/image/linux) % time git grep abc &>/dev/null
git grep abc &> /dev/null  8,92s user 0,54s system 6% cpu 2:16,09 total
(zyx:tmp/image/linux) % time grep abc -R * &>/dev/null
grep --color=auto abc -R * &> /dev/null  3,45s user 0,47s system 9% cpu 42,277 total
(zyx:tmp/image/linux) % time git grep abc &>/dev/null 
git grep abc &> /dev/null  3,78s user 0,46s system 40% cpu 10,553 total
(zyx:tmp/image/linux) % time grep -P abc -R * &>/dev/null
grep --color=auto -P abc -R * &> /dev/null  3,15s user 0,32s system 87% cpu 3,969 total
(zyx:tmp/image/linux) % time grep -F abc -R * &>/dev/null
grep --color=auto -F abc -R * &> /dev/null  0,72s user 0,31s system 95% cpu 1,086 total
(zyx:tmp/image/linux) % time grep -P abc -R * &>/dev/null
grep --color=auto -P abc -R * &> /dev/null  3,01s user 0,28s system 98% cpu 3,337 total
(zyx:tmp/image/linux) % time git grep abc &>/dev/null    
git grep abc &> /dev/null  1,90s user 0,19s system 322% cpu 0,649 total
(zyx:tmp/image/linux) % time ( git ls-files -z | xargs -0 grep abc ) &>/dev/null
( git ls-files -z | xargs -0 grep abc; ) &> /dev/null  0,72s user 0,34s system 90% cpu 1,174 total
(zyx:tmp/image/linux) % time ( git ls-files -z | xargs -0 grep -F abc ) &>/dev/null
( git ls-files -z | xargs -0 grep -F abc; ) &> /dev/null  0,79s user 0,30s system 101% cpu 1,072 total

На первый результат смотреть не надо — это ещё кэши не заполнились.

В любом случае, что для “git grep”, что для “git ls-files | xargs grep” узким местом является файловая система и нет ровно никакой разницы, что именно использовать.

Проверялось на исходном коде ядра.

Так что покажите репозиторий, где разница будет.

ZyX
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.