Apa perbedaan besar antara TFVC (TFS Version Control) dan Git untuk kontrol sumber saat menggunakan Visual Studio 2013?

Ada banyak sekali pertanyaan dan jawaban tentang Git versus Kontrol Sumber TFVC, tetapi saat ini tidak ada jawaban yang mencakup integrasi Git ke Server/Layanan Team Foundation yang dapat saya temukan.

Saya memulai pengembangan padang rumput hijau menggunakan berbagai macam bahasa (C#, C++, PHP, Javascript, MySSQL) menggunakan Visual Studio 2013. Kedepannya, akan ada beberapa pengembangan iOS. Saya sangat akrab dengan SVN, VSS dan TFVC untuk kontrol sumber. Namun, saya belum pernah menggunakan Git. Saya lebih suka TFS untuk manajemen proses/pengembangan tangkas... Ini tidak sempurna, tetapi terintegrasi dengan baik ke dalam Visual Studio.

Jadi, untuk membantu saya memutuskan antara kedua sistem ini...

Apa perbedaan besar antara TFVC dan Git untuk kontrol sumber saat menggunakan Visual Studio 2013?

  • Apakah satu-satunya manfaat dalam kasus saya adalah repositori lokal (bukan berarti itu tidak signifikan) dan dukungan pengembangan iOS?
  • Adalah satu-satunya kelemahan Git pada antarmuka baris perintah (beberapa orang berpendapat itu bukan kelemahan ;-P).
  • Pernahkah Anda mengalami GUI Visual Studio 2013 untuk Git? Apakah itu cukup untuk mendukung percabangan/penggabungan dasar tanpa antarmuka baris perintah?
  • Apakah ada panduan start-up terperinci untuk Git yang menunjukkan Git digunakan dengan Visual Studio 2013? Microsoft memiliki video untuk mengintegrasikan repositori Git yang ada ke dalam Visual Studio 2013, tapi saya sedang mencari awal dari awal dengan Git dan VS 2013.

Saya tidak mencari buku di sini, tetapi hanya beberapa poin penting dan mungkin beberapa tautan relevan dari orang-orang yang telah menggunakan TFVC dan Git.


person Greg Grater    schedule 20.11.2013    source sumber


Jawaban (3)


Memperbarui

Sejak 2013 banyak hal yang telah terjadi:

  • Microsoft telah menambahkan dukungan ssh ke Team Foundation Server, Azure DevOps Server, dan Azure DevOps.
  • Visual studio 2019 16.8+ dikirimkan dengan klien git yang sepenuhnya diperbarui.
  • Microsoft telah memindahkan produk internalnya dari TFVC. Sumber Windows dan Office sekarang ada di Git di Azure DevOps.
  • Microsoft telah membeli GitHub yang kini menjadi fokus utama penawaran terkait DevOps, sebagai konsekuensinya banyak orang yang berkontribusi pada Azure DevOps telah pindah ke GitHub.
  • Sistem File Virtual untuk Git & Sistem File Besar Git telah menyelesaikan banyak alasan mengapa orang tetap menggunakan TFVC.
  • Azure DevOps memiliki alat migrasi bawaan yang dapat mengubah (sebagian) riwayat TFVC Anda menjadi repo git.

Selama ini sangat sedikit yang terjadi pada TFVC:

  • Pipeline YAML belum menerima dukungan TFVC 2 tahun setelah diperkenalkan (saya tidak mengharapkan ini sama sekali).
  • Team Explorer sekarang disebut Legacy di Visual Studio
  • TFVC telah dinyatakan fiturnya lengkap
  • Dukungan TFVC untuk Eclipse dan Visual Studio Code dan Linux/Mac secara resmi tidak digunakan lagi/masa pakainya sudah habis.

Cukup jelas siapa yang menang: Git.


Apa perbedaan besar antara TFS dan Git untuk kontrol sumber saat menggunakan VS 2013?

MSDN memiliki halaman yang sangat luas tentang semua fitur dan perbedaan antara Kontrol Versi Team Foundation dan Git.

Apakah satu-satunya manfaat dalam kasus saya adalah repositori lokal (bukan berarti itu tidak signifikan) dan dukungan pengembangan IoS?

Tidak, masih banyak lagi, tetapi sering kali merupakan skenario lanjutan dari Git. Repo Lokal, dukungan offline, dan kesetiaan lokal penuh pada sejarah sangatlah hebat, Anda dapat mewujudkannya dengan Visual Studio. Ada beberapa fitur lain yang juga bagus! Kemampuan untuk membuat cabang dan menggabungkan dari satu repositori ke repositori lainnya sangat kuat. Saya sarankan Anda mencari buku Pro Git untuk mengetahui hal tersebut. Git di TFS hanyalah server git lainnya, ia memiliki hampir semua fitur yang dimiliki Git standar.

Kemampuan untuk menulis ulang riwayat sebelum penggabungan memungkinkan Anda menghapus atau menggabungkan sejumlah kumpulan perubahan yang lebih kecil, sehingga riwayat lebih bersih dan mudah dibaca oleh manusia.

Adalah satu-satunya kelemahan Git pada antarmuka baris perintah (beberapa orang berpendapat itu bukan kelemahan ;-P).

TFVC juga memiliki baris perintah, hanya saja orang tidak menggunakannya. Bagi orang yang ingin menggunakan Git dan tidak pernah melakukan lebih dari TFVC, mereka mungkin tidak perlu meninggalkan UI, mereka tidak akan mendapatkan banyak fitur keren...

Mungkin ada beberapa kelemahan lainnya, sebagian besar disebabkan oleh fakta bahwa ini berbeda dari yang biasa dilakukan orang. Tidak terlalu sulit untuk menyalahkan diri sendiri jika Anda tidak meluangkan waktu untuk mempelajari apa yang git lakukan ketika Anda melakukan sesuatu. Hal-hal seperti Rebase dan Squash benar-benar kuat dan menciptakan riwayat yang sangat bersih, tetapi dapat meninggalkan masalah bagi orang-orang yang tidak dapat digabungkan lagi jika digunakan secara tidak benar. TFS memiliki kemampuan untuk menempatkan beberapa pengaturan keamanan untuk menghilangkan hak untuk membuat keputusan yang sangat bodoh pada repositori git.

Add-on yang sangat keren untuk pengguna Git di Windows adalah PoSHGit. ini menyediakan pelengkapan otomatis perintah pada baris perintah Powershell.

Pernahkah Anda mengalami GUI VS 2013 untuk Git? Apakah itu cukup untuk mendukung percabangan/penggabungan dasar tanpa antarmuka baris perintah?

Ia memiliki semua yang Anda perlukan untuk pengoperasian dasar. Namun Anda harus mampu memvisualisasikan berbagai cabang untuk mengetahui apa yang terjadi. Karena server Git dan repo lokal hanyalah Git, klien git mana pun dapat membantu Anda di sini. SourceTree adalah pilihan di sini. Klien Git untuk Windows adalah hal lain.

Untuk operasi standar, check-in, check-out, menggabungkan, mencabangkan (atau mendorong, menarik, mengambil, melakukan, menggabungkan) UI berfungsi dengan baik.

Apakah ada panduan start-up terperinci untuk Git yang menunjukkan Git digunakan dengan VS 2013? MS memiliki video untuk mengintegrasikan repo Git yang ada ke VS 2013, tapi saya ingin memulai dari awal dengan Git dan VS 2013?

Dimulai dengan Git tersedia di sejumlah tempat... Ini adalah beberapa opsi:

Bacaan bagus lainnya:

Dan beberapa alat yang layak dipasang:

person jessehouwing    schedule 21.11.2013
comment
ALM Rangers akan segera merilis panduan Git untuk pengguna TFVC di sini: vsarbranchingguide.codeplex.com/releases. Rilis Beta saat ini belum memilikinya, saya perkirakan akan dirilis pada batch berikutnya :). - person jessehouwing; 07.05.2014
comment
Setelah hampir setahun sejak postingan awal saya, saya pikir saya akan memberi tahu Anda semua bahwa kami telah berhasil menggunakan VS2013 dengan Git. Saya menyukai kemampuan untuk membuat banyak repositori dalam satu Proyek Tim. Kami mengalami beberapa masalah dalam penggabungan. Dalam beberapa kasus, pilihan penggabungan otomatis salah. Jadi apa yang tampak seperti penggabungan yang sukses sebenarnya tidak berhasil. Kami sekarang memeriksa ulang semua file yang digabungkan. Selain itu, ada kejadian tertentu di mana penggabungan terhenti dan menimbulkan kesalahan di UI VS (konflik penggabungan libgit2). Untuk memperbaikinya, kita harus membuka prompt cmd dan mengeluarkan git pull (tidak menyenangkan). - person Greg Grater; 06.11.2014
comment
Saya tahu akan ada perbaikan untuk kesalahan terakhir tersebut sebagai bagian dari Pembaruan 4. Dan ada beberapa kasus di mana pengaturan garis akhir berbeda antar pengembang yang dapat menyebabkan masalah ini terjadi. - person jessehouwing; 06.11.2014
comment
Kami telah menggunakan VS 2013 dengan Pembaruan 4 sejak dirilis beberapa bulan yang lalu dan tampaknya telah memperbaiki semua masalah Git kami dari GUI. Kami mempunyai kebiasaan menarik secara teratur dari server jarak jauh yang membantu menjaga repositori lokal kami tetap mutakhir. Selain itu, MS telah melalui beberapa pembaruan positif pada Product Backlog/Papan Tugas akhir-akhir ini. Langsung dari papan, kini Anda dapat mengedit deskripsi, menetapkan, mengatur status, dan menyesuaikan prioritas/urutan item. - person Greg Grater; 19.03.2015
comment
Tautan Git vs TFVC tertaut ke Memulai menggunakan Git. Apakah ini berarti kita sebaiknya menggunakan Git daripada TFVC? ;D menemukan tautan baru: visualstudio.com/en-us /docs/tfvc/perbandingan-git-tfvc - person Martin Schneider; 05.07.2016
comment
4 tahun kemudian dan saya masih mendapatkan tindakan pada postingan ini. Telah menggunakan VS 2015 dengan kontrol sumber VSTS dan Git untuk sementara waktu sekarang. Sebagian besar tindakan umum didukung langsung melalui IDE VS 2015 tanpa memerlukan alat eksternal atau dukungan baris perintah. Sedikit dukungan baris perintah yang diperlukan didokumentasikan dengan baik oleh komunitas dan mudah dicari di Google. Antarmuka VSTS Agile/Scrum sangat baik untuk melacak pekerjaan dan berintegrasi secara mulus dengan VS 2015, kontrol sumber Git, dan Manajemen Rilis. Banyak pelatihan online yang bagus mengenai hal ini di PluralSight. - person Greg Grater; 02.02.2017
comment
versi server git apa yang digunakan oleh server TFS @jessehouwing - person Ram; 17.03.2017
comment
@ram, ia menggunakan implementasi protokolnya sendiri berdasarkan libgit2 dengan penyimpanan di server SQL. - person jessehouwing; 17.03.2017

Untuk menjernihkan beberapa terminologi campuran membingungkan yang sering digunakan dengan TFS

Team Foundation Server (TFS) adalah alat manajemen siklus hidup aplikasi, yang mencakup komponen sistem kontrol versi (VCS) sumber.

Komponen VCS yang TFS gunakan pada dasarnya adalah Team Foundation Version Control (TFVC)

Jadi, pertanyaannya adalah TFVC vs Git

(Faktanya, TFS mendukung Git sebagai opsi VCS.)

Jadi, pertanyaannya adalah: TFVC vs Git

jessehouwing memiliki jawaban bagus yang membahas hal ini dengan sangat rinci, jadi harap referensikan itu

Sejauh memilih mana yang akan digunakan, menurut saya Git menang

  1. Ringan: Mudah diatur dan mulai digunakan.
  2. Sifatnya yang terdistribusi berarti sangat tahan terhadap bencana, seseorang akan selalu memiliki salinan reponya.
  3. Pekerjaan offline itu sederhana, Anda bekerja dengan repositori lengkap Anda sendiri. Anda dapat melakukan perubahan, mengembalikan, menelusuri riwayat, dll. Anda hanya perlu online saat ingin melakukan sinkronisasi dengan repositori jarak jauh.
  4. Di TFS tidak ada cara sederhana untuk menyimpan status perubahan Anda (penambahan file, modifikasi, penghapusan file), dan beralih ke status kode lain. (Misalnya, untuk mengerjakan dua fitur dan beralih bolak-balik). Di git, Anda cukup checkout cabang lain.
person James Wierzba    schedule 27.11.2017
comment
TFS memiliki cabang dan kumpulan rak (yang memungkinkan #5) dan Anda bahkan dapat mengonfigurasi proyek Anda untuk menggunakan git jika Anda benar-benar menginginkannya. TFS VCS juga memiliki baris perintah untuk #. Ini tidak ringan tetapi melakukan lebih banyak hal daripada git karena ia memiliki manajemen proyek penuh/pelacakan bug/pelacakan pekerjaan/manajemen rilis/manajemen pembangunan/kebijakan check-in/pengujian bawaan. - person Matthew Whited; 23.07.2018
comment
@MatthewWhited Tentu saja mungkin, tetapi ini sangat rumit dibandingkan dengan git, karena implementasi berbasis direktori versus implementasi berbasis grafik git. Perhatikan bahwa saya menyatakan bahwa tidak ada simple cara untuk melakukannya. - person James Wierzba; 23.07.2018
comment
@MatthewWhited Juga, saya setuju dengan perkakas siklus hidup aplikasi tambahan, tapi saya membatasi jawaban saya hanya untuk solusi pengontrol versi kode sumber. - person James Wierzba; 23.07.2018
comment
IDK... Menurut saya TFS cukup mudah digunakan. Meskipun saya juga tidak menyukai semua cabang yang dibuat oleh GIT karena membuatnya lebih rumit untuk memastikan semua orang memiliki kode yang sama dengan churn cepat untuk beberapa sementara lambat untuk yang lain. - person Matthew Whited; 23.07.2018
comment
Tidak tahu. GIT terlalu rumit untuk tugas yang ingin diselesaikannya dan sangat tidak intuitif (mengapa ini merupakan permintaan tarik dan bukan permintaan push?!). Kontrol sumber TF sangat sederhana dan dapat dijelaskan kepada pengembang baru mana pun di tim saya dalam hitungan menit. Saya juga melihat mendorong bekerja secara lokal sebagai sebuah kerugian besar dalam sebuah tim dan bahkan secara individu. Bagaimana Anda mencegah kehilangan pekerjaan Anda di Git tanpa mengotori proyek dengan cabang? (Untuk ini ada rak di TFS - DI SERVER) - person Cesar; 17.07.2020
comment
pengembang meminta agar perubahannya ditarik ke cabang master. tetapi Anda dapat dengan mudah memikirkannya dalam kaitannya dengan permintaan pengembang untuk memasukkan perubahan mereka ke cabang master - person James Wierzba; 18.07.2020

Adalah satu-satunya kelemahan Git pada antarmuka baris perintah (beberapa orang berpendapat itu bukan kelemahan ;-P).

Jika Anda merasa tidak nyaman dengan antarmuka baris perintah, ada beberapa antarmuka GUI yang tersedia untuk Git. Git sendiri sebenarnya berisi alat GUI browser repositori yang disebut gitk dan git-gui - GUI untuk git. Lalu ada aplikasi pihak ketiga seperti git-cola, TortoiseGit dan lainnya.

person kralyk    schedule 18.05.2014
comment
Tentu saja Visual Studio sendiri menyediakan GUI untuk Git. Namun selalu ada saatnya Anda ingin masuk ke baris perintah untuk melakukan hal-hal yang tidak mungkin dilakukan. GUI yang menampilkan semua perintah Git sama sulitnya dengan baris perintah. - person jessehouwing; 21.05.2014
comment
Ada perkakas listrik baris perintah. Misalnya untuk menghilangkan sepenuhnya suatu cabang dari keberadaannya. - person Engineer; 09.04.2019