Что произойдет, если мы отправим неверный проект в другой удаленный репозиторий? - PullRequest
1 голос
/ 29 августа 2010

Скажем, если у нас есть проект, известный как main, а затем у нас есть проект analytics, и в Bash мы находимся в рабочем каталоге analytics и случайно отправляем в удаленный репозиторий main.Будут ли все файлы из analytics добавлены в проект main и является ли он обратимым?

Ответы [ 2 ]

3 голосов
/ 29 августа 2010

Вы получите жалобу от Mercurial, и пуш будет отменен.Это выглядит так:

# create main repo:
% hg init main
% touch main/a.txt
% hg -R main commit --addremove -m main
adding a.txt

# create analytics repo
% hg init analytics
% touch analytics/a.txt
% hg -R analytics commit --addremove -m analytics
adding a.txt

# try the push:
% hg -R analytics push main
pushing to main
searching for changes
abort: repository is unrelated

Mercurial знает, связаны ли два хранилища на основе их корневых узлов.То есть репозитории A и B связаны, если они имеют общий корневой узел.

0 голосов
/ 29 августа 2010

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

histedit - это расширение Hg, которое не входит в комплект Hg. После установки вы можете использовать его следующим образом:

> hg histedit <rev>

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

...