LINUX.ORG.RU

[Mercurial] Опять ничего не понимаю

 


0

1

Доброго времени суток, я продолжаю свою серию вопросов о Mercurial :) вот ветки моей репы:

@    changeset:   16:3f1f648a4d6a
|\   branch:      scrollbars
| |  tag:         tip
| |  parent:      11:6f05cbed48a0
| |  parent:      15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 10:06:08 2012 +0600
| |  summary:     merge
| |
| o  changeset:   15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 00:54:02 2012 +0600
| |  summary:     Column header pixmap
| |
| o  changeset:   14:9b2c29aee6b4
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 22:11:43 2012 +0600
| |  summary:     A small fixes
| |
| o  changeset:   13:79849b3bd26e
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 21:17:01 2012 +0600
| |  summary:     Draw groupbox. Removed unneeded files
| |
| o  changeset:   12:c09799ee9233
| |  parent:      10:2639cb5c5a99
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Thu Feb 02 23:15:02 2012 +0600
| |  summary:     Draw header arrow
| |
o |  changeset:   11:6f05cbed48a0
|/   branch:      scrollbars
|    user:        Olifiro Kirill <olkir@bk.ru>
|    date:        Thu Feb 02 02:04:05 2012 +0600
|    summary:     Begin work on scrollbar

Намудрил у себя в репе, намудрил... есть две ветки scrollbars и default, мне нужно было все изменения из default перетянуть в scrollbars(чтобы держать её в более-менее актуально состоянии). Но я зачем-то сделал merge. Вообщем слил эти две ветки в одну, теперь никак не могу избавиться от последнего коммита, делаю:

hg revert --all
Ноль реакции, после выполнения команды, смотрю hg glog - коммит на месте. Мне нужно этот последний коммит убрать/удалить, как будто я его и не делал, с файлами также, вернуть их в состояние до мержа. Пробовал ещё hg rollback, но в этом случае коммит то удаляется, а файлы в ветке оказываются измененёнными и на каждый чик, типа переключения на другую ветку, он мне предлагает закомитить :(

★★★★★
Ответ на: комментарий от xterro

Кстати, а стандартных средств нет для этого?

А mq и есть стандартное средство, просто выключено по-умолчанию.

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

Я имел ввиду не плагин, mq это же плагин, т.е его надо подключить, вдруг пользователь не знает о его существовании )

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

Можно ещё вопрос? На битбакете у меня такая ситуация:

o    changeset:   17:f25f8ab712de
|\   branch:      scrollbars
| |  tag:         tip
| |  parent:      11:6f05cbed48a0
| |  parent:      15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 12:40:03 2012 +0600
| |  summary:     merge with default
| |
+---o  changeset:   16:3dda7490d83a
| |/   branch:      scrollbars
| |    parent:      11:6f05cbed48a0
| |    parent:      15:52d46b061f84
| |    user:        Olifiro Kirill <olkir@bk.ru>
| |    date:        Sat Feb 04 01:16:40 2012 +0600
| |    summary:     Merge with 'default'
| |
| @  changeset:   15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 00:54:02 2012 +0600
| |  summary:     Column header pixmap
| |
| o  changeset:   14:9b2c29aee6b4
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 22:11:43 2012 +0600
| |  summary:     A small fixes
| |
| o  changeset:   13:79849b3bd26e
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 21:17:01 2012 +0600
| |  summary:     Draw groupbox. Removed unneeded files
| |
| o  changeset:   12:c09799ee9233
| |  parent:      10:2639cb5c5a99
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Thu Feb 02 23:15:02 2012 +0600
| |  summary:     Draw header arrow
| |
o |  changeset:   11:6f05cbed48a0
|/   branch:      scrollbars
|    user:        Olifiro Kirill <olkir@bk.ru>
|    date:        Thu Feb 02 02:04:05 2012 +0600
|    summary:     Begin work on scrollbars

Мне нужно удалить 16 коммит, я два раза на сервер пушнул, этот комит по сути лишний и «портит картину». Я делаю: hg strip -n 16 и получаю:

o    changeset:   16:f25f8ab712de
|\   branch:      scrollbars
| |  tag:         tip
| |  parent:      11:6f05cbed48a0
| |  parent:      15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 12:40:03 2012 +0600
| |  summary:     merge with default
| |
| @  changeset:   15:52d46b061f84
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Sat Feb 04 00:54:02 2012 +0600
| |  summary:     Column header pixmap
| |
| o  changeset:   14:9b2c29aee6b4
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 22:11:43 2012 +0600
| |  summary:     A small fixes
| |
| o  changeset:   13:79849b3bd26e
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Fri Feb 03 21:17:01 2012 +0600
| |  summary:     Draw groupbox. Removed unneeded files
| |
| o  changeset:   12:c09799ee9233
| |  parent:      10:2639cb5c5a99
| |  user:        Olifiro Kirill <olkir@bk.ru>
| |  date:        Thu Feb 02 23:15:02 2012 +0600
| |  summary:     Draw header arrow
| |
o |  changeset:   11:6f05cbed48a0
|/   branch:      scrollbars
|    user:        Olifiro Kirill <olkir@bk.ru>
|    date:        Thu Feb 02 02:04:05 2012 +0600
|    summary:     Begin work on scrollbars
Вроде как всё правильно, типа «подчистил». Теперь пытаюсь залить на удалённый сервер, смотрю: hg outgoing:
no changes found
Как будто я ничего и не менял, как поправить? Нужно на сервере сделать «красиво»

xterro ★★★★★
() автор топика

revert откатывает незакоммиченные изменения также как и в svn

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

Я до этого уже сделал push -f, что и привело к появлению этого коммита, если я сейчас нова его сделаю, наверняка ещё чего-нибудь всплывёт? А что касается mq, то я и так сейчас с помощью hg strip отменяю коммиты, можно сказать использую mq :)

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

Это называется решил поиграться с ветками, не всё же «по линейке идти», делал себе коммит за коммитом в default и горя не знал, решил поэкспериментировать )

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

Как будто я ничего и не менял, как поправить?

Нельзя в удаленном (считай чужом) репозитории удалять коммиты через push/pull. Один раз поделился своим коммитом - он разошелся по чужим клонам и просто так его уже не удалить.

И делать named branch для feature как-то несовсем правильно, т.к. засоряется пространство имен веток. Мне кажется named branches должно быть как можно меньше в репозитории. Для feature лучше использовать bookmark.

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

Не удалить так не удалить :( Что касается веток, то мне тут уже подсказали, что для фич лучше использовтаь безымянные ветки. Сделал ветку, наклепал в ней пару-тройку коммитов, затем можно сливать с основной. Хотя по сути они ничем не отличаются, только тем что есть имя, так ведь удобней )

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

Не удалить так не удалить :(

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

На bitbucket вроде тоже можно делать strip: https://bitbucket.org/site/master/issue/186/strip-functionality-for-repositories

по сути они ничем не отличаются, только тем что есть имя, так ведь удобней )

Проблема в том что это имя становится глобальным и распространяется по всем клонам, т.е. видно всем остальным разработчикам (почти как с ветками в svn/cvs). И еще такие ветки нужно специально закрывать, чтобы они не показывались в hg heads.

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

Чтобы удалить - нужно во всех клонах делать strip, при распределенной разработке с большим количеством участников это не реально.

Хорошо, что репа есть только на bitbucket и у меня на копе. Кстати, если кто-то клонирует с сервака мою репу, я об этом могу узнать?

На bitbucket вроде тоже можно делать strip: https://bitbucket.org/site/master/issue/186/strip-functionality-for-repositories...

Во... ща сделал, красота, удалилось, спасибо. Я видел этот пункт, но как-то прошёл мимо )

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

> Я имел ввиду не плагин, mq это же плагин,

В меркуриале политика такая - все, что изменяет историю вынесено в плагины.

provaton ★★★★★
()

укажи версию mercurial (я не нашел, с телефона тут)

пользуся tortoiseHg и забудь о этих странных проблемах навсегда

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Чёткие пацаны юзают консоль ))) Да и черепаха имеет смысл имхо в IDE, а я так, в текстовом редакторе ваяю

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

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

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

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