Bagikan melalui


Mengimpor dan memigrasikan repositori dari TFVC ke Git

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Anda dapat memigrasikan kode dari repositori Team Foundation Version Control (TFVC) yang ada ke repositori Git baru dalam organisasi yang sama. Migrasi ke Git adalah proses yang terlibat untuk repositori dan tim TFVC besar. Sistem kontrol versi terpusat, seperti TFVC, berprilaku berbeda dari Git dengan cara mendasar. Perubahan melibatkan lebih dari sekadar mempelajari perintah baru. Ini adalah perubahan mengganggu yang membutuhkan perencanaan yang cermat. Anda perlu memikirkan:

  • Merevisi alat dan proses
  • Menghapus biner dan executable
  • Melatih tim Anda

Prasyarat

Kategori Persyaratan
Akses proyek Anggota proyek .
Permissions - Lihat kode dalam proyek pribadi: Setidaknya akses Dasar .
- Mengkloning atau berkontribusi pada kode dalam proyek privat: Menjadi anggota dari grup keamanan Kontributor atau memiliki izin yang diperlukan dalam proyek.
- Mengatur izin cabang atau repositori: Mengelola izin adalah izin untuk cabang atau repositori.
- Mengubah cabang default: Kebijakan pengeditan merupakan izin untuk repositori.
- Impor repositori: Anggota Administrator Proyek grup keamanan atau tingkat proyek Git Buat repositori dengan izin diatur ke Izinkan. Untuk informasi selengkapnya, lihat Mengatur izin repositori Git.
Services Repos diaktifkan.
Tools Fakultatif. Gunakan az repos perintah: Azure DevOps CLI.

Nota

Dalam proyek publik, pengguna dengan akses Stakeholder memiliki akses penuh ke Azure Repos, termasuk melihat, menyalin, dan berkontribusi pada kode.

Kategori Persyaratan
Akses proyek Anggota proyek .
Permissions - Lihat kode: Setidaknya akses Dasar.
- Mengkloning atau berkontribusi pada kode: Anggota kelompok keamanan Kontributor atau memiliki izin yang sesuai di dalam proyek.
Services Repos diaktifkan.

Sebaiknya baca kontrol versi terpusat ke Git dan bagian Migrasi dari TFVC ke Git sebelum memulai migrasi.

Pengalaman impor sangat ideal untuk repositori TFVC kecil dan sederhana. Ini juga cocok untuk repositori yang sudah bersih, seperti yang diuraikan dalam kontrol versi terpusat ke Git dan bagian Migrasi dari TFVC ke Git . Bagian ini juga merekomendasikan alat lain untuk konfigurasi repositori TFVC yang lebih canggih.

Penting

Karena perbedaan dalam bagaimana riwayat kontrol versi penyimpanan TFVC dan Git, kami sarankan untuk tidak memigrasikan riwayat Anda, yang merupakan pendekatan yang diambil Microsoft ketika memigrasikan Windows dan produk lain dari kontrol versi terpusat ke Git.

Mengimpor repositori

  1. Pilih Repos, File.

    Lihat cabang Anda

  2. Dari menu tarik-turun repositori, pilih Impor repositori.

    Opsi Impor Repositori

  3. Pilih TFVC dari menu dropdown Jenis sumber

  4. Ketik jalur ke repositori TFVC yang ingin Anda impor ke repositori Git. Jalur harus dalam format $/TFVCRepositoryName. Untuk mengimpor cabang tertentu, gunakan format $/TFVCRepositoryName/BranchName. Untuk mengimpor folder tertentu, termasuk subfoldernya, gunakan format $/TFVCRepositoryName/FolderName. Proses impor TFVC hanya memigrasikan konten akar atau cabang. Misalnya, jika Anda memiliki proyek TFVC di mana memiliki satu cabang dan satu folder di $/Fabrikam bawahnya, jalur untuk mengimpor $/Fabrikam akan mengimpor folder sementara $/Fabrikam/<branch> hanya akan mengimpor cabang.

  5. Jika Anda ingin memigrasikan riwayat dari repositori TFVC, pilih Migrasi riwayat dan pilih jumlah hari. Anda dapat memigrasikan hingga 180 hari riwayat mulai dari set perubahan terbaru. Tautan ke repositori TFVC ditambahkan dalam pesan penerapan set perubahan pertama yang dimigrasikan ke Git, yang memudahkan untuk menemukan riwayat yang lebih lama saat diperlukan.

  6. Beri nama ke repositori Git baru dan pilih Impor. Tergantung pada ukuran impor, repositori Git Anda akan siap dalam beberapa menit.

    Dialog Impor Repositori

Pemecahan masalah

Pengalaman ini dioptimalkan untuk repositori TFVC kecil dan sederhana, atau repositori yang disiapkan untuk migrasi. Ini berarti memiliki beberapa batasan.

  1. Ini hanya memigrasikan isi dari root atau cabang. Misalnya, jika Anda memiliki proyek TFVC di mana memiliki satu cabang dan satu folder di $/Fabrikam bawahnya, jalur untuk mengimpor $/Fabrikam akan mengimpor folder sementara $/Fabrikam/<branch> hanya akan mengimpor cabang.
  2. Repositori yang diimpor dan riwayat terkait (jika diimpor) tidak boleh melebihi ukuran 1 GB.
  3. Anda dapat mengimpor riwayat hingga 180 hari.

Jika salah satu informasi yang tercantum sebelumnya adalah pemblokir untuk impor Anda, sebaiknya coba alat eksternal seperti Git-TFS untuk mengimpor dan membaca laporan resmi kami - Kontrol versi terpusat ke Git dan bagian Migrasi dari TFVC ke Git berikut.

Penting

Penggunaan alat eksternal seperti Git-TFS dengan produk, layanan, atau platform Microsoft sepenuhnya menjadi tanggung jawab pengguna. Microsoft tidak mendukung, mendukung, atau menjamin fungsionalitas, keandalan, atau keamanan ekstensi non-Microsoft tersebut.

Migrasi dari TFVC ke Git

Sebelum Anda memigrasikan kode sumber dari sistem kontrol versi terpusat ke Git, pahami perbedaan antara keduanya dan bersiap untuk migrasi.

Persyaratan

Untuk mempermudah migrasi, ada banyak persyaratan sebelum mengikuti prosedur impor repositori di bagian sebelumnya dari artikel ini.

  • Hanya migrasikan satu cabang. Saat merencanakan migrasi, pilih strategi pencabangan baru untuk Git. Migrasi hanya cabang utama yang mendukung alur kerja berbasis cabang topik seperti Gitflow atau GitHub Flow.
  • Lakukan migrasi tip, yaitu impor hanya versi terbaru dari kode sumber. Jika riwayat TFVC sederhana, Anda dapat memilih untuk memigrasikan beberapa riwayat, hingga 180 hari, sehingga tim hanya dapat bekerja dari Git. Untuk informasi selengkapnya, lihat Merencanakan migrasi Anda ke Git.
  • Kecualikan aset biner seperti gambar, himpunan data ilmiah, atau model game dari repositori. Aset ini harus menggunakan ekstensi Git LFS (Large File Storage), yang tidak dapat dikonfigurasi oleh alat impor.
  • Pertahankan repositori yang diimpor di bawah ukuran 1GB.

Jika repositori tidak memenuhi persyaratan ini, gunakan alatGit-TFS untuk melakukan migrasi Anda sebagai gantinya.

Penting

Penggunaan alat eksternal seperti Git-TFS dengan produk, layanan, atau platform Microsoft sepenuhnya menjadi tanggung jawab pengguna. Microsoft tidak mendukung, mendukung, atau menjamin fungsionalitas, keandalan, atau keamanan ekstensi non-Microsoft tersebut.

Bermigrasi

Proses untuk bermigrasi dari TFVC sangat mudah:

  1. Lihat versi terbaru cabang dari TFVC pada disk lokal Anda.
  2. Hapus biner dan alat build dari repositori dan siapkan sistem manajemen paket seperti NuGet.
  3. Konversi direktif khusus konfigurasi kontrol versi. Misalnya, konversi .tfignore file ke .gitignore, dan konversi .tpattributes file ke .gitattributes.
  4. Periksa perubahan dan lakukan migrasi ke Git.

Langkah 1-3 bersifat opsional. Jika tidak ada biner di repositori dan tidak perlu menyiapkan .gitignore atau .gitattributes, Anda dapat langsung melanjutkan ke langkah Memeriksa perubahan dan melakukan migrasi.

Lihat versi terbaru

Buat ruang kerja baru dan petakan folder kerja untuk direktori server yang sedang dimigrasikan ke Git. Tindakan ini tidak memerlukan pemetaan folder kerja penuh. Hanya folder peta yang berisi biner yang akan dihapus dari repositori dan folder yang berisi file konfigurasi khusus sistem kontrol versi seperti .tfignore.

Setelah pemetaan disiapkan, dapatkan folder secara lokal:

tf get /version:T /recursive

Menghapus biner dan perangkat pembangun

Karena Git menyimpan riwayat file yang diubah dengan memberikan salinan setiap file dalam riwayat kepada setiap pengembang, memeriksa file biner langsung ke repositori dapat menyebabkan repositori tumbuh dengan cepat dan menyebabkan masalah performa.

Untuk alat build dan dependensi seperti pustaka, adopsi solusi pengemasan dengan dukungan penerapan versi, seperti NuGet. Banyak alat dan pustaka sumber terbuka sudah tersedia di Galeri NuGet, tetapi untuk dependensi kepemilikan, buat paket NuGet baru.

Setelah dependensi dipindahkan ke NuGet, pastikan dependensi tersebut tidak disertakan dalam repositori Git dengan menambahkannya ke .gitignore.

Ubah konfigurasi yang khusus untuk kontrol versi

Kontrol Versi Team Foundation menyediakan .tfignore file, yang memastikan bahwa file tertentu tidak ditambahkan ke repositori TFVC. Anda dapat menggunakan file .tfignore untuk file yang dihasilkan secara otomatis, seperti keluaran build, sehingga file tersebut tidak dicek masuk tanpa sengaja.

Jika proyek bergantung pada perilaku ini, konversikan .tfignore file ke .gitignore file.

Klien TFVC lintas platform juga menyediakan dukungan untuk .tpattributes file yang mengontrol bagaimana file ditempatkan pada disk lokal atau diperiksa ke repositori. Jika file .tpattributes sedang digunakan, konversikan menjadi file .gitattributes.

Periksa perubahan dan lakukan migrasi

Periksa perubahan apa pun yang menghapus biner, bermigrasi ke manajemen paket, atau mengonversi konfigurasi khusus kontrol versi. Setelah Anda membuat perubahan akhir ini di TFVC, Anda dapat melakukan impor.

Migrasi tingkat lanjut

Alat Git-TFS adalah jembatan dua arah antara TFVS dan Git, dan Anda dapat menggunakannya untuk melakukan migrasi. Git-TFS sesuai untuk migrasi dengan riwayat penuh, lebih dari 180 hari yang didukung alat Impor. Atau Anda dapat menggunakan Git-TFS untuk mencoba migrasi yang menyertakan beberapa cabang dan menggabungkan hubungan.

Sebelum Anda mencoba migrasi dengan Git-TFS, ketahui perbedaan mendasar berikut antara cara riwayat penyimpanan TFVC dan Git:

  • Git menyimpan riwayat sebagai rekam jepret repositori tepat waktu, sementara TFVC merekam operasi diskrit yang terjadi pada file. Jenis perubahan di TFVC seperti mengganti nama, memulihkan, dan membatalkan penghapusan tidak dapat diekspresikan di Git. Alih-alih melihat bahwa file A diganti namanya menjadi file B, itu hanya melacak file A yang dihapus dan file B ditambahkan dalam penerapan yang sama.
  • Git tidak memiliki analog langsung dari label TFVC. Label dapat berisi sejumlah file pada versi tertentu dan dapat mencerminkan file pada versi yang berbeda. Meskipun secara konseptual mirip, tag Git menunjuk ke rekam jepret seluruh repositori pada titik waktu tertentu. Jika proyek bergantung pada label TFVC untuk mengetahui apa yang dikirimkan, tag Git mungkin tidak memberikan informasi ini.
  • Penggabungan dalam TFVC terjadi pada tingkat file, bukan di seluruh repositori. Hanya subset file yang diubah yang dapat digabungkan dari satu cabang ke cabang lainnya. File yang diubah yang tersisa kemudian dapat digabungkan dalam set perubahan berikutnya. Di Git, penggabungan memengaruhi seluruh repositori, dan kedua set perubahan individual tidak dapat dilihat sebagai penggabungan.

Karena perbedaan ini, kami sarankan Anda melakukan migrasi tip dan menjaga repositori TFVC Anda tetap online, tetapi hanya baca saja, untuk melihat riwayat.

Untuk mencoba migrasi lanjutan dengan Git-TFS, lihat mengkloning satu cabang dengan riwayat atau mengkloning semua cabang dengan riwayat penggabungan.

Penting

Penggunaan alat eksternal seperti Git-TFS dengan produk, layanan, atau platform Microsoft sepenuhnya menjadi tanggung jawab pengguna. Microsoft tidak mendukung, mendukung, atau menjamin fungsionalitas, keandalan, atau keamanan ekstensi non-Microsoft tersebut.

Memperbarui alur kerja

Berpindah dari sistem kontrol versi terpusat ke Git lebih dari sekadar memigrasikan kode. Tim perlu pelatihan untuk memahami bagaimana Git berbeda dari sistem kontrol versi yang ada dan bagaimana perbedaan ini memengaruhi pekerjaan sehari-hari.

Pelajari selengkapnya tentang cara bermigrasi dari kontrol versi terpusat ke Git.