Polecenie Różnicy
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Polecenie Kontrola wersji serwera Team Foundation (TFVC) difference
porównuje, a jeśli to możliwe, różnice między dwoma plikami, plikami w dwóch folderach lub zestawem na półce i lokalnym lub plikiem serwera.
Wymagania wstępne
Aby użyć difference
polecenia, musisz mieć uprawnienie Odczyt dla wszystkich określonych elementów ustawionych na Zezwalaj. Aby uzyskać więcej informacji, zobacz Domyślne uprawnienia kontroli wersji serwera Team Foundation.
Składnia
tf diff[erence] itemspec [/version:versionspec] [/type:filetype]
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive]
[/options][/noprompt][/login:username,[password]]
tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format]
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options] [/noprompt][/login:username,[password]]
tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]]
shelveset_itemspec [/type:filetype]
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase]
[/recursive] [/options] [/noprompt][/login:username,[password]]
tf diff[erence] /configure
Parametry
Argumenty
Argument
Opis
<itemspec>
Wymagane. Określa element do porównania. Jeśli nie określono wersji lub ścieżki, przyjmuje się bieżącą wersję obszaru roboczego. Akceptuje ścieżki serwera lokalnego i usługi Azure DevOps.
Aby uzyskać więcej informacji o sposobie analizowania kontroli wersji serwera TEAMVC w itemspec
celu określenia, które elementy znajdują się w zakresie, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).
Polecenie difference
nie obsługuje symboli wieloznacznych.
Nie można połączyć tego parametru z opcją /shelveset
.
<itemspec2>
Opcjonalny. Element, do którego itemspec
ma zostać porównany. Jeśli nie podasz drugiego itemspec
elementu , zostanie użyta najnowsza wersja serwera usługi Azure DevOps.
<filetype>
Zawiera wartość /type
opcji. Można określić binary
lub text
i numer strony kodowej lub przyjazną nazwę strony kodowej.
<format>
Służy do określania /format
formatu danych wyjściowych jednego z następujących typów:
Visual
Brief
Context
RCS
SS
SS_SideBySide
SS_Unix
Unified
Unix
Te formaty danych wyjściowych zostały wyjaśnione w sekcji Uwagi.
<versionspec>
Wartość podana /version
przez użytkownika dla opcji. Aby uzyskać więcej informacji na temat analizowania specyfikacji wersji w celu określenia, które elementy znajdują się w jego zakresie, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).
<shelvesetowner>
Identyfikuje właściciela zestawu półek według nazwy użytkownika. Jeśli nie podano wartości dla tego parametru, przyjmuje się, że bieżący użytkownik.
<shelvesetname>
Określa nazwę zestawu na półce. Można utworzyć więcej niż jeden zestaw półek o tej samej nazwie na serwerze, na którym działa serwer TFVC, o ile inny użytkownik jest właścicielem każdego zestawu półek.
<shelveset_itemspec>
Określa nazwę folderu lub pliku w zestawie na półce do porównania z podstawową wersją zestawu półek.
<username>
Udostępnia wartość /login
opcji. Możesz określić wartość nazwy użytkownika jako DOMAIN\username
lub username
.
Opcje
Opcja
Opis
/type
Zastępuje wszelkie wykryte kodowania i używa określonego kodowania do prezentowania plików aparatowi różnicowemu.
/version
Określa wersję pliku lub folderu do porównania. Domyślnie serwer TFVC używa wersji obszaru roboczego, jeśli nie podasz elementu versionspec
.
Zamiast używać flagi /version
, można określić wersje, dołączając średnik i specyfikator wersji na końcu każdej nazwy pliku.
/format
Określa format danych wyjściowych określony przez format
argument.
/ignorespace
Nie wyróżnia odstępów między porównywanymi plikami.
/ignoreeol
Ignoruje różnice między nowymi znakami wiersza w dwóch plikach lub wersjach plików. /ignoreeol
działa inaczej niż ignorespace
, który traktuje osiem spacji identycznie z jednym. Jeśli jednak używasz /ignoreeol
opcji i Plik A ma dwa nowe znaki wiersza między niezmienionym obszarem tekstu, a plik B ma jeden, wynik jest wyświetlany jako różnica. Jeśli oba pliki mają tylko jeden nowy wiersz, ale plik A używa \r\n
jako nowego wiersza, a plik B używa \n
, /ignoreeol
opcja zignoruje to jako różnicę.
/ignorecase
Nie wyróżnia różnic w wielkości liter między porównywanymi plikami.
/recursive
Porównuje różnice między bieżącym folderem a wszystkimi jego podfolderami.
/options
Określa ciąg opcji, który ma być wywoływany przez difference
narzędzie . Aby uzyskać więcej informacji, zobacz Kojarzenie typu pliku z narzędziem różnicy i Kojarzenie typu pliku z narzędziem scalania.
/shelveset
Określa zestaw na półce do porównania z wersją serwera Usługi Azure DevOps, na której bazuje zestaw półek.
Tej opcji nie można połączyć z argumentem itemspec
. Aby porównać poszczególne elementy na półce, możesz podać element shelveset_itemspec
.
/noprompt
Pomija wszystkie okna dialogowe, które w przeciwnym razie będą wyświetlane podczas kończenia tej operacji.
/configure
Wywołuje okno dialogowe Konfigurowanie narzędzi użytkownika z interfejsu użytkownika programu Visual Studio. Aby uzyskać więcej informacji, zobacz Kojarzenie typu pliku z narzędziem różnicy.
/login
Określa nazwę użytkownika i hasło do uwierzytelniania użytkownika za pomocą kontroli wersji serwera Team Foundation.
Uwagi
Uwaga
Możesz wpisać tf diff
polecenie lub tf difference
w wierszu polecenia, aby uruchomić to polecenie.
Możesz użyć difference
polecenia , aby porównać i, jeśli to możliwe, różnice między:
Dwa różne pliki lub dwie wersje tego samego pliku.
Co najmniej jeden element w folderze.
Jeden, część lub wszystkie elementy w zestawie na półce na serwerze Usługi Azure DevOps.
Możesz użyć difference
polecenia , aby porównać zarówno pliki z wersjami, jak i pliki inne niż wersjonowane.
TfVC kategoryzuje wszystkie pliki według typu. Pliki tekstowe mogą być scalane i porównywane obok siebie i wiersz po wierszu, o ile oba pliki mają takie samo kodowanie. Jeśli chcesz porównać dwa pliki, których kodowanie nie jest takie samo, możesz tymczasowo maskować lub zastępować właściwość kodowania dla pliku przy użyciu /type
opcji .
Pliki binarne można porównać, ale nie można ich scalić. Po przekazaniu co najmniej jednego pliku binarnego do difference
polecenia funkcja TFVC wskazuje, czy istnieją różnice między nim a elementem, do którego jest porównywany. Aby uzyskać więcej informacji o tym, jak funkcja TFVC rozróżnia pliki różnych typów i traktuje je, zobacz Zarządzanie typami plików.
Jeśli określisz dwie nazwy plików, zostaną porównane dwa pliki. Zamiast używać flagi /version , można określić wersje, dołączając średnik i specyfikator wersji na końcu każdej nazwy pliku.
Jeśli przekażesz tylko jeden do itemspec
polecenia różnicy:
Jeśli nie podasz
versionspec
elementu , bieżąca wersja obszaru roboczego elementu jest domyślnie porównywana z podstawową wersją obszaru roboczego. Na przykładtf difference header.h
porównuje bieżącą wersję pliku header.h z wersją, na której bazuje nagłówek.h .Jeśli uwzględnisz element
versionspec
w plikuitemspec
, na przykładtf difference header.h;LBeta1
, funkcja TFVC porównuje taką wersję z bieżącą wersją obszaru roboczego na dysku.Jeśli określisz zakres wersji, takich jak
/version:C1~C4
, wersje pliku w dwóch punktach końcowych zakresu zostaną porównane.
Aby uzyskać więcej informacji na temat korzystania z tf
narzędzia wiersza polecenia, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).
Typy formatów danych wyjściowych
Parametr format
używany z opcją /format
określa wiele różnych formatów danych wyjściowych. Dostępne są następujące typy danych wyjściowych:
Visual
typ formatu otwiera aplikację różnicy zewnętrznej. Domyślnie jest uruchamiana diffmerge.exe .Brief
format drukuje, czy porównywane pliki różnią się.Context
format zawiera wiersze kontekstu dla różnic w plikach. Ten format pochodzi z formatu danych wyjściowych opartych nadiff -c
system UNIX.RCS
format jest podobny do/format:unix
formatu , z wyjątkiem wierszy kontekstu nie są dostarczane. Na końcu pliku nie podano żadnych specjalnych rąk dla brakującego znacznika linii.SS
jest domyślnym formatem wyjściowym różnicy dla źródła wizualnego Sejf. Aby uzyskać więcej informacji, zobacz Diff (wiersz polecenia).SS_SideBySide
to domyślny format danych wyjściowych side-by-side dla elementu Visual Source Sejf.SS_Unix
jest podobny do formatu wyjściowego/format:unix
, ale/format:ss_unix
zawiera wiersze kontekstu i/format:unix
nie.Unified
format pochodzi z formatu danych wyjściowych opartychdiff -u
na system UNIX./format:context
powtarza identyczne wiersze kontekstu między ciągami różnic, ale/format:unified
nie.Unified
format tworzy nowy ujednolicony ciąg różnicowy (@@ ... @@
) wiersz tylko wtedy, gdy odległość do następnego ciągu różnicy jest większa niż liczba wierszy kontekstu.Unix
Typ danych wyjściowych pochodzi z formatu wyjściowego polecenia opartegodiff
na system UNIX.Unix
Format danych wyjściowych jest skonstruowany w następujący sposób:<metadataline> "< " line prefix for lines from the first file "---" line "> " line prefix for lines from the second file <metadataline> can be one of these possibilities: #a#,# -- add lines from line # in file1 into file2 at lines #-># #,#d# -- delete lines from line # -> # in file 1 from file2 at line # #,#c#,# -- change lines from line # -> # in file1 into the lines in file2 at line # -> # # signs separated by commas indicate a line range. # signs before the character indicate line numbers in the first file. # signs after the character indicate line numbers in the second file. /// No end of line marker at the end of the file: /// \ No newline at end of file
Przykłady
W poniższym przykładzie przedstawiono różnice między lokalną wersją 314.cs a wersją obszaru roboczego 314.cs, która jest wersją pliku wyewidencjonowany z serwera Usługi Azure DevOps.
c:\projects>tf difference 314.cs
Poniższy przykład przedstawia wszystkie pliki, które zostały zmienione w folderze src , ale nie wyświetla plików, które zostały zmienione w podfolderach src.
c:\projects>tf difference src /format:visual
W poniższym przykładzie przedstawiono różnice między zestawem zmian 3 i zestawem zmian 8 1254.cs.
c:\projects>tf difference /version:C3~C8 1254.cs
W poniższych przykładach przedstawiono różnice między wersją 314.cs należącą do etykiety release
a wersją, która należy do zestawu zmian 3200.
c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200
— lub —
c:\projects>tf difference 314.cs;Lrelease~C3200
W poniższym przykładzie przedstawiono różnicę między wersjami e271.cs, na których użytkownik o nazwie Pat odłożył na półce i wersję podstawowego zestawu półekPeerCodeReview8
, na podstawie których się zmienia. Dane wyjściowe pokazują również typy zmian oczekujących na e271.cs
odłożone przez użytkownika.
c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs
W poniższym przykładzie przedstawiono różnice między wszystkimi plikami w PeerCodeReview2
zestawie na półce i podstawową wersją tych plików.
c:\projects> tf difference /shelveset:PeerCodeReview2