Как просмотреть разницу между заголовком локального репозитория и главой удаленного хранилища?

Прежде чем я перейду к удаленному репозиторию, я хочу увидеть консолидированную разницу между заголовком моего локального репозитория и заголовком репозитория, который я тоже нажимаю. Лучший способ, которым я знаю, это сделать hg clone удаленный репозиторий, получить ревизию головы, а затем сделать разницу между моей головой и этой версией. Но это отнимает много времени. Есть ли быстрый способ?

Ответ 1

В дополнение к

$ hg outgoing -p

который я обычно использую, я хотел бы указать вам на комплекты ревизий. Это язык запросов, который можно использовать с помощью hg diff (и всех других команд, которые позволяют вам указывать набор изменений). Таким образом, вы можете реализовать hg outgoing -p на

$ hg log -r "outgoing()" -p

и вы можете получить разницу между родителем первого исходящего набора изменений и последним исходящим набором изменений с помощью

$ hg diff -r "p1(first(outgoing()))" -r "last(outgoing())"

Наконец, расширение remotebranch может поддерживать локальную информацию о удаленных ветких, так что вам не нужно использовать сеть для поиска этой информации, Он позволяет использовать

$ hg log -r "not pushed()"

чтобы найти исходящие изменения, но это намного быстрее, так как там не задействованы сетевые маршруты.

Ответ 2

Если вы ищете способ получить все сделанные вами изменения, которые не находятся в удаленном репозитории.

$ hg outgoing -p

-p является необязательным и сообщает в виде патча, в противном случае он сообщает так же hg log. Это ваши изменения независимо от того, кто-то еще что-то нажал на удаленный репозиторий.

Если вы ищете изменения в удаленном репозитории, которых у вас нет, вы используете

$ hg incoming

Снова там a -p, если вы этого хотите.


Ни один из них не является именно тем, что вы просили, но я подозреваю, что вы этого действительно не хотите.

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

hg pull
hg heads                     # find revision number of new head 
hg diff -r 124992            # or whatever the revision number is.