Как посмотреть различия между главой локального репозитория и главой удаленного репозитория? - PullRequest
12 голосов
/ 14 января 2012

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

Ответы [ 2 ]

23 голосов
/ 15 января 2012

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

$ 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()"

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

11 голосов
/ 15 января 2012

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

$ hg outgoing -p

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

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

$ hg incoming

Опять же, есть форма -p, если хотите.


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

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

hg pull
hg heads                     # find revision number of new head 
hg diff -r 124992            # or whatever the revision number is.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...