Hoe kan ik een vertakking differentiëren met mijn standaard vertakking

Ik schakelde over naar een branch op mijn lokale repo en merkte dat ik een bericht kreeg met x-bestanden bijgewerkt. Dit verbaasde me omdat ik niet wist dat er verschillen waren in die branche. Hoe vergelijk ik die vertakking met de standaard vertakking om te zien wat er is veranderd?


Antwoord 1, autoriteit 100%

Gebruik hg diff -r BRANCH1:BRANCH2, waarbij BRANCH1 en BRANCH2 de namen van de takken zijn. Dit laat je de verschillen zien tussen de koppen van de twee takken.

Je kreeg het bericht over “x bestanden bijgewerkt” omdat er bestanden zijn gewijzigd in de oorspronkelijke vertakking, niet noodzakelijkerwijs omdat er bestanden zijn gewijzigd in de andere vertakking. Mercurial toont u de unie van de sets van gewijzigde bestanden van beide branches.


Antwoord 2, autoriteit 5%

Als u alleen de bestanden met verschillen wilt weergeven, voegt u de optie –stat toe:

hg diff --stat -r BRANCH1:BRANCH2

Dit geeft de volgende output:

mypath/file1.cpp    |    1 -
mypath/file2.cpp    |  143 ++++++++++
mypath/file3.cpp    |   18 +-
3 files changed, 160 insertions(+), 2 deletions(-)

Of om de uitvoer een beetje op te schonen, pijp het door sed om alles na de pijpsymbolen te verwijderen:

hg diff --stat -r BRANCH1:BRANCH2 | sed "s/|.*$//g"

Dit geeft je alleen een lijst van de gewijzigde bestanden en de samenvattingsregel aan het einde:

mypath/file1.cpp
mypath/file2.cpp
mypath/file3.cpp
3 files changed, 160 insertions(+), 2 deletions(-)

Antwoord 3

Om een ​​diff van branch otherbranchte bekijken met de huidige branch:

hg diff -r otherbranch

Other episodes