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 itemspecelementu , 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 differencenarzę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 versionspecelementu , bieżąca wersja obszaru roboczego elementu jest domyślnie porównywana z podstawową wersją obszaru roboczego. Na przykład tf 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 pliku itemspec, na przykład tf 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 na diff -c system UNIX.

  • RCS format jest podobny do /format:unixformatu , z wyjątkiem wierszy kontekstu nie są dostarczane. Na końcu pliku nie podano żadnych specjalnych rąk dla brakującego znacznika linii.

  • SSjest domyślnym formatem wyjściowym różnicy dla źródła wizualnego Sejf. Aby uzyskać więcej informacji, zobacz Diff (wiersz polecenia).

  • SS_SideBySideto 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.

  • Unifiedformat pochodzi z formatu danych wyjściowych opartych diff -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.

  • UnixTyp danych wyjściowych pochodzi z formatu wyjściowego polecenia opartego diff 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