Import a migrace úložišť z TFVC do Gitu

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Kód můžete migrovat z existujícího úložiště TFVC do nového úložiště Git v rámci stejné organizace. Migrace na Git je zahrnutý proces pro velká úložiště a týmy TFVC. Centralizované systémy správy verzí, jako je TFVC, se chovají odlišně od Gitu základními způsoby. Přepínač zahrnuje mnohem víc než učení nových příkazů. Jedná se o rušivý změnu, která vyžaduje pečlivé plánování. Potřebujete uvažovat o:

  • Revize nástrojů a procesů
  • Odebírání binárních souborů a spustitelných souborů
  • Školení týmu

Před zahájením migrace důrazně doporučujeme přečíst centralizovanou správu verzí do Gitu a následující část Migrace z TFVC na Git .

Prostředí pro import je skvělé pro malá jednoduchá úložiště TFVC. Je také vhodné pro úložiště, která už byla "vyčištěna", jak je uvedeno v Centralizované správě verzí do Gitu , a následující část Migrace z TFVC do Gitu . Tyto části také doporučují další nástroje pro pokročilejší konfigurace úložiště TFVC.

Důležité

Vzhledem k rozdílům v tom, jak TFVC a Git ukládají historii správy verzí, doporučujeme migrovat historii. Tento přístup Microsoft zaujal při migraci systému Windows a dalších produktů z centralizované správy verzí do Gitu.

Import úložiště

  1. Vyberte Úložiště, Soubory.

    Zobrazení větví

  2. V rozevíracím seznamu úložiště vyberte Importovat úložiště.

    Možnost importu úložiště

  3. V rozevíracím seznamu Typ zdroje vyberte TFVC.

  4. Zadejte cestu k úložišti / větvi / složce, kterou chcete importovat do úložiště Git. Například $/Fabrikam/FabrikamWebsite

  5. Pokud chcete migrovat historii z úložiště TFVC, klikněte na Migrovat historii a vyberte počet dní. Od nejnovější sady změn můžete migrovat až 180 dnů historie. Do potvrzovací zprávy o 1. sadě změn, která se migruje do Gitu, se přidá odkaz na úložiště TFVC. V případě potřeby tak můžete snadno najít starší historii.

  6. Pojmenujte nové úložiště Git a klikněte na Importovat. V závislosti na velikosti importu bude vaše úložiště Git připravené během několika minut.

    Dialogové okno Importovat úložiště

Řešení problému

Toto prostředí je optimalizované pro malá, jednoduchá úložiště nebo úložiště TFVC, která jsou připravená na migraci. To znamená, že má několik omezení.

  1. Migruje pouze obsah kořenové větve nebo větve. Pokud máte například projekt TFVC, ve $/Fabrikam kterém je pod ní 1 větev a 1 složka, cesta k importu $/Fabrikam by tuto složku naimportovala, zatímco $/Fabrikam/<branch> by importovala jenom větev.
  2. Importované úložiště a přidružená historie (pokud jsou importovány) nesmí překročit velikost 1 GB.
  3. Historii můžete importovat až 180 dnů.

Pokud některý z výše uvedených kroků představuje blokování pro import, doporučujeme vyzkoušet externí nástroje, jako je Git-TFS pro import a čtení našich dokumentů white paper – Centralizovaná správa verzí do Gitu a následující část Migrace z TFVC do Gitu.

Důležité

Používání externích nástrojů, jako je Git-TFS s produkty, službami nebo platformami Microsoftu, je zcela zodpovědností uživatele. Společnost Microsoft nepodporuje, nepodporuje ani nezaručuje funkčnost, spolehlivost ani zabezpečení těchto rozšíření třetích stran.

Migrace z TFVC na Git

Před migrací zdrojového kódu z centralizovaného systému správy verzí do Gitu se seznamte s rozdíly mezi nimi a připravte se na migraci.

Požadavky

Aby se migrace zjednodušily, před importem postupu úložiště v předchozí části tohoto článku existuje několik požadavků.

  • Migrujte jenom jednu větev. Při plánování migrace zvolte novou strategii větvení pro Git. Migrace pouze hlavní větve podporuje pracovní postup založený na tématu, jako je GitFlow nebo GitHub Flow.
  • Proveďte tip migrace stejně jako v případě, že importujete pouze nejnovější verzi zdrojového kódu. Pokud je historie TFVC jednoduchá, existuje možnost migrovat určitou historii až 180 dní, aby tým mohl pracovat jenom z Gitu. Další informace najdete v tématu Plánování migrace na Git.
  • Vylučte binární prostředky, jako jsou obrázky, vědecké datové sady nebo herní modely z úložiště. Tyto prostředky by měly používat rozšíření Git LFS (Large File Storage), které nástroj pro import nekonfiguruje.
  • Ponechte importované úložiště nižší než 1 GB.

Pokud úložiště tyto požadavky nesplňuje, použijte k migraci nástroj Git-TFS.

Důležité

Používání externích nástrojů, jako je Git-TFS s produkty, službami nebo platformami Microsoftu, je zcela zodpovědností uživatele. Společnost Microsoft nepodporuje, nepodporuje ani nezaručuje funkčnost, spolehlivost ani zabezpečení těchto rozšíření třetích stran.

Postup migrace

Proces migrace z TFVC je obecně jednoduchý:

  1. Podívejte se na nejnovější verzi větve z TFVC na místním disku.
  2. Odeberte binární soubory a nástroje sestavení z úložiště a nastavte systém pro správu balíčků, jako je NuGet.
  3. Převeďte direktivy konfigurace specifické pro správu verzí. Například převést soubory do a převést .tfignore.tpattributes soubory na .gitattributes..gitignore
  4. Zkontrolujte změny a proveďte migraci na Git.

Kroky 1 až 3 jsou volitelné. Pokud se v úložišti nenacházejí binární soubory a není potřeba nastavovat .gitignore ani provádět .gitattributeszměny vrácení se změnami, můžete pokračovat přímo ke změnám vrácení se změnami a provést krok migrace .

Podívejte se na nejnovější verzi

Vytvořte nový pracovní prostor TFS a namapujte pracovní složku pro adresář serveru migrovaný do Gitu. To nevyžaduje úplné mapování pracovních složek. Pouze mapovat složky, které obsahují binární soubory, které se mají odebrat z úložiště a složek, které obsahují konfigurační soubory specifické pro správu verzí, jako .tfignoreje .

Po nastavení mapování získejte složku místně:

tf get /version:T /recursive

Odebrání binárních souborů a nástrojů sestavení

Vzhledem ke způsobu, jakým Git ukládá historii změněných souborů tím, že poskytuje kopii každého souboru v historii každému vývojáři, vrácení binárních souborů přímo do úložiště způsobí, že se úložiště rychle zvětší a může způsobit problémy s výkonem.

V případě nástrojů sestavení a závislostí, jako jsou knihovny, využijte řešení balení s podporou správy verzí, jako je NuGet. Mnoho opensourcových nástrojů a knihoven je již k dispozici v galerii NuGet, ale pro proprietární závislosti vytvořte nové balíčky NuGet.

Jakmile se závislosti přesunou do NuGetu, nezapomeňte je přidat do .gitignoreúložiště Git.

Převod konfigurace specifické pro správu verzí

Správa verzí Team Foundation poskytuje .tfignore soubor, který zajistí, že se určité soubory nepřidají do úložiště TFVC. Soubor můžete použít .tfignore pro automaticky vygenerované soubory, jako je výstup sestavení, aby se nechtěně neohlásily.

Pokud projekt spoléhá na toto chování, převeďte .tfignore soubor na .gitignore soubor.

Klienti TFVC pro různé platformy také poskytují podporu .tpattributes souboru, který určuje, jak se soubory umístí na místní disk nebo se změnami do úložiště. .tpattributes Pokud se soubor používá, převeďte ho .gitattributes na soubor.

Vrácení změn se změnami a provedení migrace

Zkontrolujte všechny změny, které odeberou binární soubory, migrují do správy balíčků nebo převedou konfiguraci specifickou pro správu verzí. Jakmile provedete tuto konečnou změnu v TFVC, můžete provést import.

Podle postupu importu úložiště proveďte import.

Pokročilé migrace

Nástroj Git-TFS je obousměrný most mezi Správa verzí Team Foundation a Gitem a můžete ho použít k provedení migrace. Git-TFS je vhodný pro migraci s úplnou historií, více než 180 dnů, které nástroj Import podporuje. Nebo můžete použít Git-TFS k pokusu o migraci, která zahrnuje více větví a slučovacích relací.

Než se pokusíte o migraci pomocí Git-TFS, mějte na paměti, že existují základní rozdíly mezi tím, jakým způsobem se TFVC a historie úložiště Gitu liší:

  • Git ukládá historii jako snímek úložiště v čase, zatímco TFVC zaznamenává diskrétní operace, ke kterým došlo v souboru. Typy změn v TFVC, jako je přejmenování, zrušení odstranění a vrácení zpět, nejde v Gitu vyjádřit. Místo toho, aby se soubor A přejmenoval na soubor B, sleduje pouze odstraněný soubor A a soubor B byl přidán do stejného potvrzení.
  • Git nemá přímou analogii popisku TFVC. Popisky můžou obsahovat libovolný počet souborů v libovolné konkrétní verzi a můžou odrážet soubory v různých verzích. I když jsou značky Git koncepčně podobné, odkazují na snímek celého úložiště v určitém okamžiku. Pokud projekt spoléhá na popisky TFVC, aby věděl, co bylo doručeno, značky Git tyto informace nemusí poskytovat.
  • Sloučení v TFVC probíhá na úrovni souboru, ne v celém úložišti. Z jedné větve do druhé je možné sloučit pouze podmnožinu změněných souborů. Zbývající změněné soubory se pak můžou sloučit v následující sadě změn. Sloučení v Gitu ovlivňuje celé úložiště a obě sady jednotlivých změn se nedají považovat za sloučení.

Vzhledem k těmto rozdílům se doporučuje provést migraci tipu a zachovat úložiště TFVC online, ale jen pro čtení, abyste mohli zobrazit historii.

Pokud se chcete pokusit o pokročilou migraci pomocí Git-TFS, podívejte se na klonování jedné větve s historií nebo klonování všech větví s historií sloučení.

Důležité

Používání externích nástrojů, jako je Git-TFS s produkty, službami nebo platformami Microsoftu, je zcela zodpovědností uživatele. Společnost Microsoft nepodporuje, nepodporuje ani nezaručuje funkčnost, spolehlivost ani zabezpečení těchto rozšíření třetích stran.

Aktualizace pracovního postupu

Přechod z centralizovaného systému správy verzí na Git je více než jen migrace kódu. Tým potřebuje školení, aby porozuměl tomu, jak se Git liší od stávajícího systému správy verzí a jak tyto rozdíly ovlivňují každodenní práci.

Přečtěte si další informace o migraci z centralizované správy verzí na Git.