Memilih kontrol versi yang tepat untuk proyek Anda

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Apakah proyek perangkat lunak Anda besar atau kecil, menggunakan kontrol versi sesegera mungkin adalah ide yang baik. Azure Repos mendukung dua jenis kontrol versi: Git dan Team Foundation Version Control (TFVC).

Sistem kontrol versi mana yang harus saya gunakan?

Git adalah penyedia kontrol versi default untuk proyek baru. Anda harus menggunakan Git untuk kontrol versi di proyek Anda dan mulai memindahkan proyek TFVC yang ada ke Git. TFVC dianggap fitur lengkap. Azure DevOps akan mempertahankan kompatibilitas dengan TFVC, tetapi Git akan menerima semua investasi di masa mendatang.

Anda dapat menggunakan repositori TFVC dengan Git dalam proyek yang sama, jadi mudah untuk menambahkan TFVC nanti jika Anda memerlukan kontrol versi terpusat. Untuk menyiapkan jenis repositori baru untuk proyek yang sudah ada, gunakan instruksi ini.

Git (didistribusikan)

Git adalah sistem kontrol versi terdistribusi. Setiap pengembang memiliki salinan repositori sumber di mesin dev mereka. Pengembang dapat menerapkan setiap set perubahan pada mesin dev mereka dan melakukan operasi kontrol versi seperti riwayat dan membandingkan tanpa koneksi jaringan. Cabang bersifat ringan. Saat perlu beralih konteks, Anda dapat membuat cabang lokal privat. Anda dapat dengan cepat beralih dari satu cabang ke cabang lainnya untuk berputar di antara berbagai variasi dasarkode. Kemudian, Anda dapat menggabungkan, menerbitkan, atau membuang cabang.

Catatan

Git di Visual Studio, Azure DevOps Services, dan Azure DevOps Server adalah Git standar. Anda dapat menggunakan Visual Studio dengan layanan Git pihak ketiga, dan Anda juga dapat menggunakan klien Git pihak ketiga dengan Azure DevOps Server.

Untuk mempelajari selengkapnya, lihat Git dan Azure Repos.

TFVC (terpusat)

Team Foundation Version Control (TFVC) adalah sistem kontrol versi terpusat. Biasanya, anggota tim hanya memiliki satu versi untuk setiap file di mesin pengembangan mereka. Data historis dipertahankan hanya di server. Cabang berbasis jalur dan dibuat di server.

TFVC memiliki dua model alur kerja:

  • Ruang kerja server - Sebelum membuat perubahan, anggota tim memeriksa file secara publik. Sebagian besar operasi mengharuskan pengembang untuk terhubung ke server. Sistem ini memfasilitasi alur kerja penguncian. Sistem lain yang berfungsi dengan cara ini termasuk Visual Source Brankas, Perforce, dan CVS. Dengan ruang kerja server, Anda dapat meningkatkan skala ke basis kode yang sangat besar dengan jutaan file per cabang dan file biner besar.

  • Ruang kerja lokal - Setiap anggota tim mengambil salinan basis kode versi terbaru dengan mereka dan bekerja offline sesuai kebutuhan. Pengembang memeriksa perubahan mereka dan menyelesaikan konflik seperlunya. Sistem lain yang bekerja dengan cara ini adalah Subversion.

Untuk mempelajari lebih lanjut, lihat Apa itu Kontrol Versi Team Foundation?

Pindah dari TFVC ke Git

Jika Anda memiliki repositori TFVC yang ada, Anda dapat memigrasikannya ke repositori Git menggunakan alat git-tfs. Alat ini memungkinkan Anda untuk memigrasikan repositori TFVC ke repositori Git hanya dalam beberapa perintah.

Kemampuan Git dan TFVC

Tabel berikut ini menyediakan ringkasan tentang bagaimana TFVC dan Git mendukung kemampuan utama kontrol versi.

Kemampuan

TFVC

Git


Perubahan

Anggota tim dapat secara bersamaan mengubah file pada komputer dev mereka. Anda mengunggah set perubahan (check-in) ke server saat membuatnya. Anda dapat mengunggah perubahan kapan saja. Namun, Anda mungkin terganggu oleh konflik.

Anda dapat mengubah komentar set perubahan setelah Anda memeriksanya. Anda dapat menautkan set perubahan ke item kerja dan mengaitkannya dengan build yang telah selesai.

Anggota tim dapat secara bersamaan mengubah file pada komputer dev mereka. Anda membuat penerapan pada komputer dev Anda secara independen untuk menyumbangkannya ke tim. Setelah siap, Anda harus menarik penerapan terbaru sebelum mengunggah (mendorong) anda ke server. Saat menarik, Anda mungkin terganggu oleh konflik.

Anda dapat mengubah penerapan lokal terbaru. Anda tidak dapat mengubah penerapan yang lebih lama. Anda dapat menautkan penerapan ke item kerja dan mengaitkannya dengan build yang telah selesai.

Anda dapat memodifikasi dan menggabungkan penerapan lokal dari prompt perintah.

Pencabangan

Cabang berbasis jalur sebagian besar digunakan sebagai konstruksi jangka panjang untuk mengisolasi risiko perubahan di antara tim fitur dan rilis. Anggota tim biasanya menyiapkan ruang kerja yang berbeda untuk setiap cabang yang mereka kerjakan.

Perubahan di setiap cabang independen satu sama lain, jadi Anda tidak perlu memeriksanya sebelum beralih dari satu cabang ke cabang lain. Penggabungan antara cabang saudara kandung memerlukan penggabungan tanpa dasar.

Anda bisa mendapatkan visualisasi struktur cabang Anda dan tempat changeset Anda telah digabungkan.

Lihat Menggunakan cabang untuk mengisolasi risiko dalam Kontrol Versi Team Foundation.

Percabangan ringan dan jalur independen. Banyak pengembang membuat cabang untuk setiap fitur baru yang mereka coding, kadang-kadang setiap hari. Anda dapat dengan cepat beralih dari satu cabang ke cabang lainnya untuk berputar di antara berbagai variasi dasarkode. Anda dapat membuat cabang yang hanya ada di komputer dev Anda dan membagikannya jika dan kapan Anda siap.
Anda harus menerapkan, cabang, menyimpan, atau membatalkan perubahan sebelum beralih cabang. Penggabungan sederhana dan independen dari penerapan yang didasarkan pada cabang. Anda dapat membandingkan cabang untuk melihat penerapan mana yang ada di cabang mana.

Lihat Menggunakan cabang Git untuk beralih konteks, menangguhkan pekerjaan, dan mengisolasi risiko.

Resolusi konflik

Anda mungkin harus mengatasi konflik saat mendapatkan, cek masuk, gabungkan, atau batalkan. Anda dapat mengatasi semua jenis konflik di Visual Studio.

Anda mungkin harus mengatasi konflik saat menarik atau menggabungkan. Anda dapat mengatasi konflik konten di Visual Studio atau dari prompt perintah.

Penyimpanan file

Anda dapat memeriksa file biner besar. Anda mungkin juga ingin menggunakan NuGet dalam kombinasi atau sebagai alternatif.

Anda dapat memeriksa file biner kecil seperti yang Anda lakukan pada file reguler. Saat bekerja dengan file biner besar, gunakan Git-LFS untuk menyimpan file biner besar Anda di Azure Repos.

Riwayat

Riwayat file tidak direplikasi pada komputer dev klien sehingga hanya dapat dilihat saat Anda tersambung ke server. Anda dapat melihat riwayat di Visual Studio dan di portal web. Anda dapat membuat anotasi file untuk melihat siapa yang mengubah baris, dan kapan mereka mengubahnya.

Riwayat file direplikasi pada komputer dev klien dan dapat dilihat bahkan ketika tidak terhubung ke server. Anda dapat melihat riwayat di Visual Studio dan di portal web. Anda dapat membuat anotasi file untuk melihat siapa yang mengubah baris, dan kapan mereka mengubahnya.

Tandai file Anda

Anda dapat menerapkan label ke versi satu atau beberapa file dari Visual Studio atau prompt perintah. Setiap file dapat memiliki label yang diterapkan ke versi yang berbeda.

Anda dapat menerapkan tag dari prompt perintah ke penerapan individual. Tampilkan tag di jendela riwayat Visual Studio.

Gulung balik perubahan

Anda dapat mengembalikan penerapan.

Sisik

Anda dapat mengerjakan proyek skala kecil atau sangat besar menggunakan ruang kerja lokal. Mendukung skala besar (jutaan file per cabang dan file biner besar) menggunakan ruang kerja server.

Anda dapat dengan cepat memulai proyek kecil. Anda dapat meningkatkan skala ke proyek yang sangat besar, tetapi Anda harus merencanakan ke depan untuk memodulasi basis kode Anda. Anda dapat membuat beberapa repositori dalam proyek.

Server

Tabel berikut ini meringkas fitur yang tersedia dengan server yang didukung untuk setiap sistem kontrol versi.

Kemampuan

TFVC

Git


Server

Azure DevOps Services, Azure DevOps Server

Layanan Azure DevOps, Azure DevOps Server, dan layanan pihak ketiga Git

Peringatan

Anggota tim dapat menerima pemberitahuan email saat penerapan didorong ke server.

Kemampuan audit

Karena tim Anda memeriksa semua pekerjaan mereka ke dalam sistem terpusat, Anda dapat mengidentifikasi pengguna mana yang memeriksa set perubahan dan menggunakan dibandingkan untuk melihat apa yang mereka ubah. Melihat file, Anda dapat membuat anotasi untuk mengidentifikasi siapa yang mengubah blok kode, dan kapan mereka melakukannya.

Anda dapat mengidentifikasi pengguna mana yang mendorong penerapan. (Siapa pun dapat mengklaim identitas apa pun sebagai penulis atau orang yang melakukan penerapan.) Anda dapat mengidentifikasi kapan perubahan dilakukan dan apa yang diubah menggunakan riwayat, bandingkan, dan anotasi.

Build (otomatis oleh TFBuild)

Anda dapat menggunakan semua kemampuan TFBuild untuk membangun kombinasi konten apa pun yang Anda inginkan dalam koleksi proyek.

Anda dapat menggunakan sebagian besar kemampuan TFBuild untuk membangun satu proyek sekaligus, dan satu atau beberapa repositori sekaligus.

Peninjauan kode

Lihat Hari dalam kehidupan pengembang devops: Menangguhkan pekerjaan, memperbaiki bug, dan melakukan tinjauan kode. Untuk diskusi yang lebih ringan, Anda juga dapat mengomentari dan mengirim email tentang set perubahan dari portal web.

Lihat Meninjau permintaan pull. Untuk diskusi yang lebih ringan, Anda juga dapat mengomentari dan mengirim email tentang penerapan dari portal web.

File

Setiap proyek berisi semua file di bawah satu jalur akar (misalnya: $/FabrikamTFVC). Anda dapat menerapkan izin di tingkat file. Anda dapat mengunci file.

Anda dapat menelusuri file di portal web dan menggunakan Penjelajah Kontrol Sumber di Visual Studio.

Proyek Anda hanya ada di satu server.

Setiap proyek dapat berisi satu atau beberapa repositori Git, dan setiap repositori Git dapat berisi satu atau beberapa cabang. Izin paling terperinci yang dapat Anda terapkan adalah ke repositori atau cabang. File tidak dapat dikunci.

Anda dapat menelusuri file Anda di portal web.

Anda dapat mendorong penerapan ke beberapa repositori jarak jauh, misalnya ke repositori proyek Anda dan ke situs web Anda yang dihosting di Azure.

Gerbang berkualitas

Anda dapat menggunakan build integrasi berkelanjutan (CI), build check-in terjaga, dan kebijakan check-in.

Anda dapat menggunakan build CI dan build check-in terjaga melalui kebijakan cabang.

Klien

Tabel berikut ini meringkas fitur yang didukung klien yang tersedia tergantung pada sistem kontrol versi yang Anda pilih.

Kemampuan

TFVC

Git


Perangkat lunak klien

Visual Studio

Visual Studio, Visual Studio Code, Eclipse, dan alat pihak ketiga lainnya

File

Anda dapat menelusuri file menggunakan Penjelajah Kontrol Sumber di Visual Studio, atau dengan menggunakan Windows File Explorer atau prompt perintah.

Anda dapat menelusuri file dengan menggunakan Windows File Explorer atau prompt perintah.

Mengelola pekerjaan di komputer dev Anda

Perubahan tertunda dan halaman Pekerjaan Saya di Visual Studio Team Explorer.

Halaman perubahan, penerapan, dan cabang.

Menangguhkan pekerjaan Anda

Anda dapat menangguhkan pekerjaan dari halaman Kerja Saya atau Menyimpan perubahan Anda di halaman Perubahan Tertunda. Untuk informasi selengkapnya, lihat Menangguhkan pekerjaan Anda dan mengelola rak Anda.

Anda dapat membuat cabang dari Visual Studio atau prompt perintah, atau menyimpan dari prompt perintah.

Kompatibilitas Visual Studio

Anda dapat menggunakan semua versi Visual Studio yang didukung.

Anda dapat menggunakan semua versi Visual Studio yang didukung.

Portal web

Anda dapat menelusuri basis kode Anda (termasuk cabang), melihat riwayat, membuat anotasi dan mengomentari changeset dan shelveset, dan melakukan tugas lain seperti pengunduhan ad hoc bagian yang dipilih dari basis kode Anda sebagai file .zip .

Anda dapat menelusuri basis kode, melihat riwayat, membandingkan cabang, membuat anotasi, dan mengomentari penerapan, dan melakukan tugas lain seperti mengunduh ad hoc dari bagian basis kode yang dipilih sebagai file .zip .

Migration

Untuk mempelajari cara bermigrasi dari TFVC ke Git, lihat Migrasi dari TFVC ke Git.