LINUX.ORG.RU

«живучесть» Mercurial


0

0

Есть ли для него способы повредить историю? Проблемы со сложными merge, команды, результаты работы которых нельзя отменить и т. п? Хочу заранее спрогнозировать, что можно встретить.


достаточно соорудить коллизию которую запаришься разруливать. Да же если откатишься, то мержить то всеравно придется.

ну и традиционный фокус с переименованием директории

wfrr ★★☆
()

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

gavv
()

> Есть ли для него способы повредить историю?

А что такое "повреждение истории"? :)

> Проблемы со сложными merge, команды, результаты работы которых нельзя отменить и т. п?

Пока ты не сделал push в общий репозиторий, комбинация clone -r и strip позволит выпутаться из любой фигни. И даже когда сделал, проверка blacklist в хуке довольно неплохо выкручивает руки товарищам :)

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

А что такое «повреждение истории»? :)

Например, что-то такое:

$ echo 111 > file1

$ hg add file1
$ hg commit -m'initial'

$ echo 222 >> file1
$ hg commit -m'next'

$ hg log
changeset:   1:46af447334c7
summary:     next

changeset:   0:409d1671963d
summary:     initial

$ hg rollback
rolling back last transaction
$ hg log
changeset:   0:409d1671963d
summary:     initial

Как видно, один changeset бесследно исчез. Но поскольку rollback может откатывать только одну транзакцию, с ним сильно не разгонишься. А вот если бы были команды помощнее...

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

>> А что такое "повреждение истории"? :)

> Например, что-то такое:

Я вижу редактирование истории, а не повреждение.

> А вот если бы были команды помощнее...

Они приведены выше.

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

>Я вижу редактирование истории, а не повреждение.

Речь просто о возможности "отстрелить себе ногу". Пример "безопасной" команды - backout, просто добавляет новый changeset с изменениями, не удаляя ничего из истории. То, что редактирование не нужно, не утверждаю.

>Они приведены выше.

Да, упустил. Спасибо.

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

> ну и традиционный фокус с переименованием директории

что за фокус?

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

> Как видно, один changeset бесследно исчез.

он не исчез, ты его удалил. сделай hg ci и он вернётся. Тут речь не о том как запороть репозиторий насильственно (mq, кстати, подходит гораздо лучше для того что ты сделал), а о том есть ли грабли в меркуриал на которые можно _случайно_ наступить.

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

>Что за такая "проверка blacklist"? А то хочется кое-кому руки повыкручивать...
В hook'ах можно сделать проверки и запретить, например, делать pull из репозитария unstable в stable.

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