При использовании меркуриальных при работе с большими изменениями я сделаю несколько коммитов (как безопасные точки или поделиться своим успехом со своими коллегами). У меня все закончилось, я хочу внести изменения в основной репозиторий. Прежде чем я это сделаю, я хочу сделать «hg pull -u & & hg merge», чтобы получить изменения, произошедшие со времени моего последнего притяжения, и просмотреть мои изменения.Как отображать исходящий diff без слияний?
Поскольку у меня есть несколько наборов изменений, запуск hg diff по каждому из них не является хорошим решением.
Я попытался запустить hg diff -c «исходящий() и не объединить()», чтобы показывать только diff для моих исходящих наборов изменений (без слияния, поскольку это имеет тенденцию только добавлять шум, который я хочу избежать).
Однако, это все еще не подходит для меня, поскольку ртуть, кажется, пропускает некоторую информацию, и я не понимаю, на каком основании. Пожалуйста, обратитесь к ниже сценарию:
полный сценарий:
# clean working directory
rm -fr base clone
#prepare reference repo
mkdir base; cd base
hg init
touch 1.txt
echo " 1\n2" >>1.txt
hg add 1.txt
touch 2.txt
hg add 2.txt
hg commit -m"initial commit"
cd ..
hg clone base clone
cd base
#update ref repo.
echo "foo" >> 1.txt
hg commit -m"update file on remote repository"
#make changes locally
cd ../clone
echo "foo" >> 2.txt
hg commit -m "update initial file"
#now we are ready to push
hg pull -u && hg merge
hg commit -m"merge"
#actually...
sed -i -e 's/foo/bar/' 2.txt
hg commit -m"changed my mind"
hg out
changeset: 1:fce14ac089b2
date: Thu Nov 14 11:17:08 2013 +0100
summary: update initial file
changeset: 3:1967c50242c0
parent: 1:fce14ac089b2
parent: 2:2cdaf75afc6d
date: Thu Nov 14 11:17:10 2013 +0100
summary: merge
changeset: 4:120a0b8a0ede
tag: tip
date: Thu Nov 14 11:18:54 2013 +0100
summary: changed my mind
#try to display my changes
hg diff -c"outgoing() and not merge()"
--- a/2.txt Thu Nov 14 11:17:10 2013 +0100
+++ b/2.txt Thu Nov 14 11:18:54 2013 +0100
@@ -1,1 +1,1 @@
-foo
+bar
#only one change here!
#but
hg log -r"outgoing() and not merge()"
changeset: 1:fce14ac089b2
date: Thu Nov 14 11:17:08 2013 +0100
summary: update initial file
changeset: 4:120a0b8a0ede
tag: tip
date: Thu Nov 14 11:18:54 2013 +0100
summary: changed my mind
#is ok
Так, может кто-нибудь, пожалуйста, объясните мне, почему ртутные скачет fce14ac089b2 целиком набор изменений? То, что я ожидаю, является консолидированной продукцией, то есть:
--- a/2.txt
+++ b/2.txt
@@ -1,1 +1,1 @@
+bar
Большое спасибо.