Udostępnij za pośrednictwem


Polecenie Różnicy

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Program Visual Studio 2022

Polecenie Kontroli wersji programu 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 plikiem lokalnym lub serwerowym.

Warunki wstępne

Aby użyć polecenia difference, należy mieć uprawnienie Odczyt dla wszystkich określonych elementów ustawionych na Zezwalaj na. Aby uzyskać więcej informacji, zobacz Domyślne uprawnienia serwera TFVC.

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ów

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 na temat analizowania itemspec w 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>

Fakultatywny. Element, do którego należy porównać itemspec. Jeśli nie podasz drugiego itemspec, zostanie użyta najnowsza wersja serwera usługi Azure DevOps.

<filetype>

Zawiera wartość opcji /type. Można określić binary lub text oraz numer strony kodowej lub przyjazną nazwę strony kodowej.

<format>

Używany z opcją /format, aby określić format 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 przez użytkownika dla opcji /version. 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ść opcji /login. Wartość nazwy użytkownika można określić jako DOMAIN\username lub username.

Opcje

opcji

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 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 argument format.

/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óra traktuje osiem spacji identycznie z jednym. Jeśli jednak używasz opcji /ignoreeol 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, opcja /ignoreeol zignorowałaby 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. Aby uzyskać więcej informacji, zobacz Skojarz typ pliku z narzędziem różnicy i Skojarz typ 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ć 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 Skojarz typ 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

Nuta

Aby uruchomić to polecenie, możesz wpisać tf diff lub tf difference w wierszu polecenia.

Możesz użyć polecenia difference do porównania 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ć polecenia difference, aby porównać zarówno pliki z wersjami, jak i bez wersji.

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 opcji /type.

Pliki binarne można porównać, ale nie można ich scalić. Po przekazaniu co najmniej jednego pliku binarnego do polecenia difference funkcja TFVC wskazuje, czy istnieją między nim różnice 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 itemspec do polecenia różnicy:

  • Jeśli nie podasz versionspec, 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ę header.h z wersją, na której jest oparty header.h.

  • Jeśli uwzględnisz versionspec w itemspec, na przykład tf difference header.h;LBeta1, kontrola wersji serwera TFVC porównuje 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 są porównywane.

Aby uzyskać więcej informacji na temat korzystania z narzędzia wiersza polecenia tf, zobacz 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ę.

  • format Context zawiera wiersze kontekstu różnic w plikach. Ten format pochodzi z formatu wyjściowego diff -c opartego na systemie UNIX.

  • RCS format jest podobny do /format:unix, 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 danych wyjściowych różnicy dla programu Visual SourceSafe. Aby uzyskać więcej informacji, zobacz Diff (wiersz polecenia).

  • SS_SideBySide jest domyślnym formatem danych wyjściowych obok siebie dla programu Visual SourceSafe.

  • SS_Unix jest podobny do formatu danych wyjściowych /format:unix, ale /format:ss_unix zawiera wiersze kontekstu i nie /format:unix.

  • format Unified pochodzi z formatu wyjściowego diff -u opartego na systemie UNIX. /format:context powtarza identyczne wiersze kontekstu między ciągami różnicy, ale /format:unified nie.

    Unified format tworzy nowy ujednolicony ciąg różnicowy (@@ ... @@) 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 diff opartego na systemie UNIX.

    Format danych wyjściowych Unix 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 wyewidencjonowana 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 PeerCodeReview8 i wersję podstawowego zestawu na półce, na podstawie których opierają się na zmianach. Dane wyjściowe pokazują również typy zmian oczekujących na e271.cs, gdy użytkownik odłożył.

c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs

W poniższym przykładzie przedstawiono różnice między wszystkimi plikami w zestawie PeerCodeReview2 na półce i podstawową wersją tych plików.

c:\projects> tf difference /shelveset:PeerCodeReview2