Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
Pilih Repos, File.
Dari menu tarik-turun repositori, pilih Impor repositori.
Pilih TFVC dari menu dropdown Jenis sumber
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$/Fabrikambawahnya, jalur untuk mengimpor$/Fabrikamakan mengimpor folder sementara$/Fabrikam/<branch>hanya akan mengimpor cabang.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.
Beri nama ke repositori Git baru dan pilih Impor. Tergantung pada ukuran impor, repositori Git Anda akan siap dalam beberapa menit.
Pemecahan masalah
Pengalaman ini dioptimalkan untuk repositori TFVC kecil dan sederhana, atau repositori yang disiapkan untuk migrasi. Ini berarti memiliki beberapa batasan.
- Ini hanya memigrasikan isi dari root atau cabang. Misalnya, jika Anda memiliki proyek TFVC di mana memiliki satu cabang dan satu folder di
$/Fabrikambawahnya, jalur untuk mengimpor$/Fabrikamakan mengimpor folder sementara$/Fabrikam/<branch>hanya akan mengimpor cabang. - Repositori yang diimpor dan riwayat terkait (jika diimpor) tidak boleh melebihi ukuran 1 GB.
- 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:
- Lihat versi terbaru cabang dari TFVC pada disk lokal Anda.
- Hapus biner dan alat build dari repositori dan siapkan sistem manajemen paket seperti NuGet.
-
Konversi direktif khusus konfigurasi kontrol versi. Misalnya, konversi
.tfignorefile ke.gitignore, dan konversi.tpattributesfile ke.gitattributes. - 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
Adiganti namanya menjadi fileB, itu hanya melacak fileAyang dihapus dan fileBditambahkan 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.