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

101

Ada banyak sekali pertanyaan dan jawaban tentang Git versus TFVC Source Control, tetapi tidak ada jawaban terkini yang mencakup integrasi Git ke dalam 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. Nantinya, 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 di antara dua 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 tidak signifikan) dan dukungan pengembangan iOS?
  • Merupakan satu-satunya kelemahan Git antarmuka baris perintah (beberapa orang akan berpendapat itu bukan kelemahan ;-P).
  • Pernahkah Anda berpengalaman dalam Visual Studio 2013 GUI untuk Git? Apakah itu cukup untuk mendukung percabangan / penggabungan dasar tanpa antarmuka baris perintah?
  • Apakah ada panduan start-up rinci untuk Git yang menunjukkan Git digunakan dengan Visual Studio 2013? Microsoft memiliki video untuk mengintegrasikan repositori Git yang ada ke dalam Visual Studio 2013, tetapi saya sedang mencari permulaan dari awal dengan Git dan VS 2013.

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

Greg Grater
sumber

Jawaban:

115

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, tapi seringkali itu skenario lanjutan dari Git. Repo Lokal, dukungan offline, dan ketepatan lokal penuh pada sejarah sangat kuat, Anda mendapatkannya dari kotak dengan Visual Studio. Ada beberapa fitur lain yang juga bagus! Kemampuan untuk bercabang dan menggabungkan dari satu repositori ke repositori lainnya sangat kuat. Saya sarankan Anda mencari buku Pro Git untuk itu. 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 untuk menghapus atau menggabungkan sejumlah set perubahan yang lebih kecil, sehingga riwayat lebih bersih dan lebih mudah dibaca sebagai manusia.

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

TFVC memiliki baris perintah juga, 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 kekurangan 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 dilakukan git saat Anda melakukan sesuatu. Hal-hal seperti Rebase dan Squash benar-benar kuat dan menciptakan riwayat yang sangat bersih, tetapi dapat membuat orang-orang memiliki masalah sehingga mereka tidak dapat menggabungkan 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 .

Pengaya yang sangat keren untuk pengguna Git di Windows adalah PoSHGit . itu menyediakan perintah pelengkapan otomatis 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 butuhkan untuk operasi dasar. Tetapi Anda harus dapat memvisualisasikan berbagai cabang untuk mengetahui apa yang sedang terjadi. Karena server Git dan repo lokal hanyalah Git, klien git mana pun dapat membantu Anda di sini. SourceTree adalah opsi di sini. Klien Git untuk Windows adalah yang lain.

Untuk operasi standar, check-in, check-out, gabung, percabangan (atau push, pull, fetch, commit, gabungkan) UI berfungsi dengan baik.

Apakah ada panduan start-up rinci untuk Git yang menunjukkan Git digunakan dengan VS 2013? MS memiliki video untuk mengintegrasikan repo Git yang sudah ada ke dalam VS 2013, tetapi saya mencari permulaan dari awal dengan Git dan VS 2013?

Dimulai dengan Git tersedia di sejumlah tempat ... Berikut beberapa pilihan:

Bacaan bagus lainnya:

Dan beberapa alat yang layak dipasang:

jessehouwing
sumber
3
ALM Rangers akan segera merilis panduan pengguna Git untuk TFVC di sini: vsarbranchingguide.codeplex.com/releases . Rilis Beta saat ini belum memilikinya, saya berharap ini akan turun dengan batch berikutnya :).
jessehouwing
8
Setelah hampir setahun sejak posting asli saya, saya pikir saya akan memberi tahu Anda semua bahwa kami telah menggunakan VS2013 dengan Git dengan sukses. Suka kemampuan untuk membuat banyak repositori di bawah satu Proyek Tim. Kami mengalami beberapa masalah saat menggabungkan. Dalam beberapa kasus, penggabungan otomatis salah memilih. Jadi apa yang tampak seperti penggabungan yang berhasil sebenarnya bukanlah. Kami sekarang memeriksa ulang semua file yang digabungkan. Selain itu, ada beberapa contoh di mana penggabungan tersedak dan memunculkan kesalahan di UI VS (konflik penggabungan libgit2). Untuk memperbaikinya, kita harus membuka prompt cmd dan mengeluarkan git pull (tidak menyenangkan).
Greg Grater
1
Saya tahu ada perbaikan yang akan datang untuk kesalahan terakhir itu sebagai bagian dari Pembaruan 4. Dan ada kasus di mana pengaturan garis akhir berbeda antara pengembang yang dapat menyebabkan masalah ini terjadi.
jessehouwing
5
Kami telah menggunakan VS 2013 dengan Pembaruan 4 sejak dijatuhkan beberapa bulan yang lalu dan tampaknya telah memperbaiki semua masalah Git kami dari GUI. Kami memiliki kebiasaan menarik secara teratur dari server jarak jauh yang membantu menjaga repositori lokal kami tetap mutakhir. Juga, MS telah melalui beberapa pembaruan positif pada Product Backlog / Task board akhir-akhir ini. Langsung dari papan, Anda sekarang dapat mengedit deskripsi, menetapkan, mengatur status, dan menyesuaikan prioritas / urutan item.
Greg Grater
1
Tautan "Git vs TFVC" tertaut ke "Mulailah menggunakan Git". Apakah ini berarti sekarang kita sebaiknya menggunakan Git daripada TFVC? ; D menemukan tautan baru: visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc
Martin Schneider
17

Untuk menjernihkan beberapa terminologi campuran yang membingungkan yang sering digunakan dengan TFS

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

The VCS komponen yang TFS menggunakan terutama Team Foundation Versi 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 mencakup ini dengan detail yang baik, jadi harap rujuk itu

Sejauh memilih mana yang akan digunakan, menurut saya Git menang

  1. Ringan: Mudah diatur dan mulai digunakan.
  2. Sifatnya yang terdistribusi artinya sangat tahan terhadap bencana, seseorang akan selalu memiliki salinan repo.
  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 menyinkronkan 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 maju mundur). Di git, Anda cukup melakukan pembayaran di cabang yang berbeda.
James Wierzba
sumber
1
TFS memiliki cabang dan kumpulan rak (yang memungkinkan untuk # 5) dan Anda bahkan dapat mengkonfigurasi proyek Anda untuk menggunakan git jika Anda benar-benar menginginkannya. TFS VCS juga memiliki baris perintah untuk #. Ini tidak ringan tetapi melakukan lebih banyak di luar kotak daripada git karena memiliki manajemen proyek lengkap / pelacakan bug / pelacakan kerja / manajemen rilis / manajemen membangun / kebijakan check-in / pengujian
bawaan
@MatthewWhited Tentu itu mungkin, tetapi ini sangat rumit dibandingkan dengan git, karena implementasi berbasis direktori versus implementasi berbasis grafik git. Perhatikan bahwa saya menyatakan bahwa tidak ada simplecara untuk melakukannya.
James Wierzba
@MatthewWhited Selain itu, saya menyetujui perangkat siklus hidup aplikasi tambahan, tetapi saya memeriksa jawaban saya hanya untuk solusi pengendalian versi kode sumber.
James Wierzba
1
IDK ... Saya menemukan TFS cukup mudah digunakan. Meskipun saya juga tidak menyukai semua cabang yang dibuat oleh GIT karena membuatnya lebih rumit untuk memastikan setiap orang memiliki kode yang sama dengan churn cepat untuk beberapa sementara lambat untuk yang lain.
Matthew Whited
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 kerugian besar di dalam tim dan bahkan secara individu. Bagaimana Anda mencegah kehilangan pekerjaan Anda di Git tanpa mengotori proyek dengan cabang? (Untuk ini ada rak di TFS - ON THE SERVER)
Cesar
4

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

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

kralyk.dll
sumber
2
Tentu saja Visual Studio sendiri menyediakan GUI untuk Git. Tetapi selalu ada saat-saat Anda mungkin ingin masuk ke baris perintah untuk melakukan hal-hal yang sebaliknya tidak mungkin. GUI yang mengekspos semua perintah Git sama sulitnya dengan commandline.
jessehouwing
Ada alat-alat listrik baris perintah. Misalnya untuk sepenuhnya menghilangkan cabang dari keberadaan.
Insinyur