LINUX.ORG.RU

[bzr vs hg] subrepos, bigfiles и другие вопросы


0

2

Окончательно задрал меня hg тем что не умеет subrepos c бранчами. Ну и по мелочи.

А тут как раз недавно статейка подвернулась почему bzr круче всех. Только вот как работать со вложенными репозиториями я никак найти не могу. Он умеет такое? Заодно хотелось бы узнать что оно умеет делать с большими бинарными файлами для которых не нужна полная история изменений. Гугление показало что нет ни того ни другого, но я может плохо искал.

И второй вопрос: есть ли _проверенные_ альтернативы subrepos для hg? Можно даже костыльные, лишь бы нормально с бранчами работало.

★★★★★

Современное расширение для больших файлов называется largefiles.

subrepos не нужны, vendor import наше ффсио :)

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

А что именно Вы хотите от subrepos в плане бранчей?

хочу чтобы оно работало. Щас ругается что не может создать удалённый бранч, приходится лазить по индивидуальным репам и делать hg push --new-branch

ну и subrepos кривоват в плане синхронизации изменений. Он пытается со всех репозиториев push сделать, даже с тех в которых не было изменений.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

vendor import

что это?

Это техника работы с внешними источниками кода. Отличается простотой и очевидностью - просто сохраняешь чужое дерево исходников в своем репозитории где-нибудь в vendor/ или lib/.

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

Щас ругается что не может создать удалённый бранч, приходится лазить по индивидуальным репам и делать hg push --new-branch

Насчёт этого напишите в рассылку или заведите баг, наверняка поправят, если в 2.1 еще не поправили.

ну и subrepos кривоват в плане синхронизации изменений. Он пытается со всех репозиториев push сделать, даже с тех в которых не было изменений.

А как еще по текущему репозиторию узнать, есть ли в нём новые изменения по сравнению с удалённым репозиторием? Хотя спец.ключик для push для принудительной неотправки изменений других репозиториев не помешал бы наверное. И посмотрите в 2.1: наверное при помощи phases можно определять это автоматически.

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

а он ведёт историю изменений в .hgsubstate. так что всё может, только не хочет.

И посмотрите в 2.1

спасибо, гляну

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

сохраняешь чужое дерево исходников в своем репозитории где-нибудь в vendor/ или lib/.

oh shi~...

1) Не, у меня куча своих «проектов», они на друга завязаны. Кучу копий держать это хреново. Правда, я симлинки делаю иногда....

2) Тут самое главное это удобство. Хочется ррраз и одной коммандой всё обновить и не париться. Тем более щас 3 активных проекта с кучей под-проектов, не набирать же в каждом update/commit/pull/push индивидуально? Короче, с индивидуальными репами мне неудобненько.

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

Сделать из них отдельные библиотеки?

сделано, это и есть библиотеки :). Они в нескольких репах. Ну, если быть точнее, одна библиотека в одной репе и несколько программ которые её используют. Проги тоже в разных репах.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Ну, если быть точнее, одна библиотека в одной репе и несколько программ которые её используют. Проги тоже в разных репах.

А что библиотека делает в репе программы, когда должна быть установлена в системе?

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

можно и не *под*-репозиторий, можно репозиторий сбоку.

Это я перевёл слово subrepos на русский.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

хочу чтобы оно работало. Щас ругается что не может создать удалённый бранч, приходится лазить по индивидуальным репам и делать hg push --new-branch

hg onsub? :)
Но, имхо, удалённые бранчи, тем более в Mercurial, надо делать только в случае крайней необходимости.

ну и subrepos кривоват в плане синхронизации изменений. Он пытается со всех репозиториев push сделать, даже с тех в которых не было изменений.

Так а он же не может узнать, что изменений не было. Вдруг для них не делался push или вручную поменяли «default = ...» .hg/hgrc файле. Ну и, плюс, ему нужно убедиться, что требуемая ревизия для субрепозитория доступна в удалённом клоне.

Вообще, Subrepositories в Mercurial классно сделаны, только в .hgrc надо добавить

[subpaths]
http[s]?://(.*)/(.*)/../(.*) = https://\1/\2/\3
http[s]?://(.*)/(.*)/(.*) = https://\1/\2/../\3
, чтобы можно было все удалённые [суб]репозитории хранить в одной директории и что-то типа
%include ~/.netrc.hg
, чтобы не спрашивал пароли при множественном push/pull.

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

Так а он же не может узнать, что изменений не было

Пусть учится :(

чтобы не спрашивал пароли

я по ssh синкаюсь, «пароль» лежит в ssh-agent.

И вообще он задрал переустанавливать соединение на каждый репозиторий. Надо чтобы по одному синкал. Кстати, что-то такое было в ssh, надо посмотреть...

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

Да, ControlMaster auto и ControlPath во многом решили проблему тормозов. Жаль что при этом надо одно соединение в фоне держать.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Пусть познаёт либастрал :)
А мы тут RhodeCode решили поставить, но там только https.
Насчёт соединений - та же фигня...

backbone ★★★★★
()
4 мая 2012 г.
Ответ на: комментарий от true_admin

И кстати, при апдейте тянутся все ветки суб-репозитория, хотя это нафиг не нужно.

anonymous
()
12 июня 2012 г.
Ответ на: комментарий от backbone

а ты работал со всякими mercurial-server итп? Как оно? Умеет одну комманду на все репы пременять? Ну типа onsub.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Этот mercurial-server? В 1-ый раз вижу, честно.
Если там доступ по ssh с возможностью удобного добавления пользователей/прав, как в Rhodecode или зачатки того, было бы здорово. И если там одно общее соединение будет на все push/pull, то вообще замечательно.
Что-то https часто стал выдавать «Connection timeout», в то время, как git по git/ssh без ошибок работал.
Надо попробовать будет обязательно, как до Линуксов доберусь. ;-)

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