Pertanyaan SVN vs. Team Foundation Server [tutup]


Beberapa bulan yang lalu tim saya mengalihkan kendali sumber kami ke Subversion Apache dari Visual SourceSafe, dan kami belum lebih bahagia.

Baru-baru ini saya sudah melihat Team Foundation Server, dan setidaknya di permukaan, tampaknya sangat mengesankan. Ada beberapa integrasi hebat dengan Visual Studio, dan banyak alat hebat untuk DBA, penguji, manajer proyek, dll.

Perbedaan paling jelas antara kedua produk ini adalah harga. Sulit mengalahkan Apache Subversion (gratis). Team Foundation Server cukup mahal, jadi fitur tambahannya benar-benar harus menendang Subversion di celana.

  • Adakah yang punya pengalaman praktis dengan keduanya?
  • Bagaimana mereka membandingkannya?
  • Apakah Team Foundation Server benar-benar sepadan dengan biayanya?

75
2017-08-07 00:43


asal


Jawaban:


Saya bergabung dengan proyek Open Source di CodePlex, baru-baru ini. Mereka menggunakan TFS untuk kontrol sumber mereka dan saya harus mengatakan bahwa itu benar-benar luar biasa. Saya sangat terkesan dengan itu, sejauh ini. Saya penggemar besar integrasi IDE dan betapa mudahnya untuk cabang dan menandai kode Anda. Menambahkan solusi ke kontrol sumber adalah sesuatu seperti dua klik, jika Anda sudah mengatur semuanya dengan benar.

Sekarang. Apakah itu layak harga yang lumayan? Saya tidak berpikir demikian. Manfaat untuk mengerjakan proyek di CodePlex adalah memungkinkan saya mendapatkan pengalaman dengan TFS yang saya perlukan, jika saya harus menggunakannya di suatu tempat nanti. Jika Anda ingin integrasi IDE yang bagus untuk Sumber Kontrol Anda, pergi ambil VisualSVN paket integrasi. Ini adalah investasi yang jauh lebih murah untuk mendapatkan banyak fitur yang sama (gratis di komputer non-domain BTW).


46
2017-08-07 00:52



Inilah perbedaan terbesar antara keduanya untuk saya, dan saya telah menggunakan keduanya:

1) TFS agak erat digabungkan dengan "Visual Studio" dalam melakukan pengembangan.  Itu tidak berarti bahwa TFS digabungkan dengan erat ke VS IDE, itu berarti TFS berjuang untuk menjaga paradigma "check in" / "check out" familiar dari Visual SourceSafe, bahkan ketika itu benar-benar bukan model yang tepat lagi. Konsep "commit" / "update" Subversion jauh lebih realistis ketika Anda memiliki pengembang yang mungkin menghabiskan waktu terputus dari jaringan. TFS mengharapkan pengembang untuk selalu terhubung ke server. Itu minus besar. Saya pribadi menemukan TFS kurang transparan tentang bagaimana file diatur di server dan di disk lokal Anda karena integrasi Visual Studio yang ketat. Bahkan pendukung TFS yang lebih besar mengakui bahwa model check-in / check-out terhubungnya bukanlah pilihan yang menarik bagi pengembang yang bekerja terputus. Dalam iklim di mana orang-orang mulai melihat opsi DVCS seperti git dan Mercurial atas SVN, model "check out" TFS sepertinya agak seperti dinosaurus.

2) Biaya.  Mereka yang mengatakan bahwa TFS tidak mahal mungkin adalah toko yang sangat kecil, atau tidak sesuai dengan ketentuan lisensi TFS. Anda memerlukan Lisensi Akses Klien untuk menisik dekat semua yang Anda lakukan. Apakah Anda seorang manajer yang mengelola bug? Anda membutuhkan $ 250 CAL (Ada 5 termasuk dengan Lisensi TFS ritel). Pengguna bisnis yang hanya ingin melaporkan masalah mereka? A $ 250 CAL. Seorang pengembang? $ 250 (Kecuali mereka memiliki MSDN dalam hal ini termasuk). Server? $ 500 (Termasuk jika Anda memiliki MSDN). Tentu saja, seseorang yang menjual salinan TFS kepada Anda akan memberi tahu Anda bahwa pelacakan item pekerjaan gratis untuk pengguna tambahan, tetapi pengguna tambahan ini hanya dapat melihat item pekerjaan yang mereka buat sendiri, dan bukan item kerja seluruh tim, yang tidak terlalu berguna dalam lingkungan yang berorientasi tim, lincah. Semua ini bertambah ketika Anda memiliki organisasi menengah, dan menjadi sulit untuk dibenarkan ketika begitu banyak produk terbaik seperti biaya tambahan SVN dan CruiseControl.net adalah $ 0. (Dalam keadilan untuk TFS, meskipun, saya masih menunggu a sangat Pelacak masalah OSS yang baik)

3) Struktur proyek.  Dalam tim besar dengan jumlah proyek yang lebih sedikit, TFS mungkin akan bekerja dengan baik. Jika Anda memiliki sejumlah aplikasi lini bisnis kecil yang tidak terhubung atau terhubung secara longgar, struktur TFS dapat mulai menjadi sombong. Untuk satu hal, tidak mungkin untuk menentukan taksonomi proyek itu sendiri - Anda dapat mengatur "Wilayah" dalam suatu proyek, tetapi semua masalah dan dokumen dilacak bersama dalam konteks dasar "proyek". Menciptakan "proyek" baru sering kali memakan waktu, dan terlalu berlebihan untuk usaha kecil. Tentu saja, SVN tidak memiliki semacam itu karena hanya berfokus pada kontrol kode sumber, tetapi jika Anda memerlukan fleksibilitas proyek kecil yang baik, SVN dan alat pelacakan masalah lain mungkin menjadi pilihan yang lebih baik.

Pendapat saya, untuk apa nilainya:

  • Untuk tim besar dengan proyek besar dan dianggarkan dengan baik, di toko Microsoft tempat para pengembang bekerja hampir secara eksklusif dalam IDE, TFS adalah pemenangnya. TFS juga menang ketika Anda perlu menegakkan kebijakan secara terpusat dengan proyek Anda.

  • Untuk sejumlah tim kecil, dengan banyak variasi, proyek yang lebih kecil, atau toko di mana biaya merupakan masalah, atau tim yang memiliki pengembang yang bekerja terputus dari kontrol sumber, ikuti SVN.


87
2017-10-25 14:33



Saya terkejut bahwa seseorang yang telah menggunakan Subversion di masa lalu bahkan akan memiliki keinginan / kebutuhan untuk kontrol sumber TFS.

Pengalaman saya dengan TFS (2005) cukup mengerikan. Saya telah membaca semua jenis buku putih & panduan bagaimana cara menyusun sumber Anda dengan tepat untuk berbagai kebutuhan pengembangan.

Situasi sederhana kami, di mana kami memiliki bagasi dengan pengembangan garis utama, dan cabang integrasi di mana kami mengintegrasikan perubahan & penerapan dari, dan cabang rilis untuk melacak rilis sebelumnya sangat umum dan lugas, tetapi kami terus mengalami masalah.

Masalah utama saya dengan TFS:

  • Penggabungan adalah PAIN dibandingkan dengan subversi.
  • Ada bug yang tidak diperbaiki. Saya bertemu dengan seseorang tentang penggantian nama / penggabungan yang telah dikenal selama 2 tahun dan perbaikan tidak akan pernah dirilis untuk tahun 2005. Kami akhirnya memindahkan cabang kami ke folder "rusak" dan kami mengabaikannya sekarang.
  • Menempatkan kunci read-only pada file Anda adalah gesekan. Siapa bilang saya perlu mengedit file batch dan membangun skrip di dalam TFS sehingga akan "check it out" untuk saya? Subversi tahu file mana yang berubah. Tidak ada kunci yang bisa dibaca di sana.
  • Kecepatan. TFS adalah anjing-lambat melalui WAN, dan itu benar-benar hanya dapat digunakan jika saya VPN ke komputer kerja saya, yang membuat pengalaman dev saya benar-benar lambat secara keseluruhan.
  • Kurangnya integrasi command-line dan explorer yang baik. Integrasi IDE benar-benar baik untuk Get-Latest sehari-hari, menambahkan file, dan memeriksa, tetapi ketika Anda perlu melakukan banyak hal di banyak proyek, itu bagus untuk memiliki alat yang baik yang Anda inginkan. Dan sebelum seseorang melompat ke tenggorokan saya mengklaim tf.exe berfungsi dengan baik ... itu tidak benar-benar alat garis cmd. Sebagai contoh, memeriksa kode seharusnya tidak memunculkan dialog modal.

... daftarnya terus berlanjut. Saya pikir bahkan dengan semua integrasi, ada alternatif gratis yang jauh lebih unggul.


48
2017-08-29 20:19



Kami adalah toko VS.NET, dan kami menerapkan:

  1. Bugzilla untuk pelacakan masalah
  2. Subversion Apache sebagai repositori kode sumber back-end
  3. Server VisualSVN untuk mengelola SVN di server
  4. TortoiseSVN (di Windows Explorer) dan AhnkSVN atau VisualSVN (dalam Visual Studio) pada klien
  5. CruiseControl.NET untuk pembuatan otomatis

Biaya: $ 0 Manfaat: Tak ternilai

Jika Anda adalah tim kecil, atau tidak siap untuk membeli ke siapa proses TFS, SVN dan alat sumber terbuka adalah cara untuk pergi.


42
2017-08-14 21:11



Seperti yang orang lain telah tunjukkan, TFS memberi Anda lebih banyak fitur kemudian SVN dalam bentuk manajemen proyek dan semacamnya. Setelah menggunakan keduanya, dan bekerja dengan perusahaan yang sangat besar dalam menerapkan TFS, inilah dua sen saya.

1) Jika Anda menggunakan TFS 2005, tingkatkan ke TFS 2008. Anda akan berterima kasih kepada saya. Ada satu ton peningkatan di TFS 2008 yang membuatnya bisa diterapkan.

2) Jika Anda tinggal di Visual Studio dan Anda menginginkan integrasi IDE, gunakan TFS. Saya telah menggunakan integrasi SVN dan hampir selalu mundur menggunakan TortoiseSVN.

3) Jika Anda menyukai gagasan akun yang terintegrasi dengan Windows Authentication, gunakan TFS. Pengelolaan dari tujuan itu bagus. Mungkin ada kait untuk SVN - saya tidak positif, tetapi jika Anda menyukai manajemen yang didorong GUI, TFS sulit dikalahkan.

4) Jika Anda perlu melacak metrik atau memiliki cara yang lebih mudah untuk mengimplementasikan hal-hal seperti kebijakan check-in, gunakan TFS.

5) Jika Anda memiliki orang yang tidak akan menerapkannya jika tidak MSFT, gunakan TFS.

6) Jika Anda melakukan lebih dari sekedar. NET (Java bekerja, Eclipse, dll) pergi dengan SVN. Ya ada produk yang sangat bagus di luar sana (seperti Teamprise) yang bekerja dengan baik dengan TFS. Tetapi kecuali bahasa lain adalah bagian kecil dari toko Anda, cukup gunakan SVN.

Di luar itu, fitur SCM keduanya setara. Mereka berdua melakukan percabangan dan penggabungan, keduanya melakukan check-in atomik, mereka berdua mendukung mengganti nama dan bergerak. Saya pikir untuk orang-orang baru saja memulai dengan konsep percabangan dan penggabungan, memiliki cabang-cabang terlihat di Source Control Explorer bagus.

TFS sebenarnya tidak terlalu mahal ($ 1200 mungkin?). Dibandingkan dengan SVN, mungkin. Integrasi ke layanan pelaporan dan SharePoint bagus, tetapi sekali lagi, jika Anda tidak menggunakannya, maka itu tidak masalah.

Yang saya katakan adalah mengunduh uji coba TFS 180 hari dan mencobanya. Jalankan percobaan bersebelahan. Saya pikir Anda akan bahagia tidak peduli ke mana Anda pergi.


23
2017-09-07 14:00



Seperti Ubiguchi menunjukkan TFS bukanlah produk kontrol versi. Membeli TFS dengan tujuan hanya menggunakannya untuk Kontrol Versi jelas akan membuang-buang uang. TFS adalah seperangkat alat yang terintegrasi untuk mengotomatisasi semua aspek Manajemen Siklus Hidup Aplikasi (dan cukup banyak diarahkan untuk "Perusahaan".

Juga per posting Ben S - Saya tidak mengerti komentar Anda tentang kunci. Kunci tidak diperlukan di TFS sama sekali. Administrator dapat mengkonfigurasi TFS untuk bekerja seperti VSS (fitur yang diminta oleh beberapa pelanggan "tidak bijaksana") ke "Dapatkan-Terbaru di Checkout" yang saya percaya juga melakukan kunci check-out.

Tetapi melalui "normal" penggunaan TFS a "check-out" meminta pengguna untuk jenis kunci - dan default harus "tidak ada". Seorang pengguna BISA memilih check-out (atau kunci check-in) - tetapi itu tidak diperlukan. Jika Anda tidak ingin kunci, jangan gunakan.

TFS melacak pengguna mana yang memiliki check-out di server untuk berbagai alasan kinerja (membuat yang terbaru menjadi lebih cepat) dan manajemen proyek (saya ingin melihat apa yang telah diperiksa oleh pengembang dan berapa lama waktu check-out mereka).

Saya tidak akrab dengan SVN (saya tidak pernah menggunakannya) - jadi saya tidak bisa berkomentar bahwa "penggabungan lebih buruk dengan TFS" - dan belum mengenai bug gabungan yang dilaporkan Ben S - tetapi saya sudah memiliki sukses dengan percabangan dan penggabungan menggunakan TFS.

Satu use case yang saya tahu TFS masih cukup lemah adalah untuk pengguna yang secara teratur "offline". TFS adalah "Produk Server" yang mengasumsikan pengguna terhubung sebagian besar waktu. Pengalaman offline meningkat dalam rilis 2008 (itu suram pada tahun 2005) tetapi masih memiliki jalan panjang untuk pergi. Jika Anda memiliki pengembang yang perlu (atau ingin) sering terputus dari jaringan untuk jangka waktu yang lama - Anda mungkin lebih baik dengan SVN.

Fitur lain yang perlu dipertimbangkan untuk penggemar SVN yang menggunakan TFS adalah SVN Bridge sebuah codeplex yang memungkinkan pengguna untuk menggunakan TortiseSVN untuk terhubung ke TFS. Saya teman baik dan kolega saya menggunakannya secara ekstensif dan menyukainya.

Juga komentar tentang kurangnya baris perintah mengejutkan saya - alat baris perintah yang luas (meskipun banyak membutuhkan pengunduhan secara terpisah TFS Power Tools

Saya menduga komentar Ben didasarkan pada eval dari rilis 2005 yang jelas merupakan produk "Microsoft V1.0". Produk saat ini ada di versi 2.1 dengan Versi 3 yang akan datang dalam waktu dekat.


16
2017-09-07 13:31



TFS itu keji. Pada titik ini saya mengontrol versi lokal menggunakan SVN (w / Live Mesh untuk backup) karena saya memiliki beberapa masalah dengan TFS. Masalah utamanya adalah TFS menggunakan stempel waktu untuk merekam jika Anda memiliki versi terbaru, dan menyimpan perangko waktu ini di server. Anda dapat menghapus salinan lokal Anda, mendapatkan yang terbaru dari TFS, dan itu akan mengatakan semua file sudah diperbarui. Ini adalah sistem konyol yang memberi Anda tidak menjamin bahwa Anda memiliki versi file yang benar. Ini menghasilkan banyak gangguan:

  • TFS perlu diinformasikan ketika file apa pun diedit, jadi Anda harus terhubung ke server setiap saat.
  • TFS menjadi bingung jika Anda mengedit file di luar IDE. Lebih lanjut, ia mengatur semua file menjadi hanya dalam NTFS.

Sementara TFS mendukung penggabungan, itu benar-benar sistem checkin / checkout. Jika Anda mengedit file, Anda akan sering menemukan bahwa file tersebut dikunci untuk pengembang lain. Ada beberapa cara di sekitarnya, tetapi sistemnya begitu berbelit-belit sehingga Anda akan selalu mengalami masalah. Sebagai contoh, pengembang kami menemukan bahwa mereka bisa mendapatkan semua file yang diatur untuk hanya membaca dalam NTFS dengan memeriksa seluruh solusi, yang menetapkan kunci eksklusif pada semua file. Saya melakukan ini beberapa kali karena subversi memiliki sintaks yang sama untuk checkout, yang tidak memperoleh kunci.

Akhirnya Tim Explorer (klien) adalah 400 MB kekalahan, server TFS membutuhkan SharePoint dan dua hari untuk menginstal. Penginstal subversi satu klik kira-kira 30 MB dan akan menginstal server untuk Anda dalam waktu kurang dari satu menit. TFS memiliki banyak fitur, tetapi fondasinya begitu goyah sehingga Anda tidak akan pernah menggunakan atau mempedulikannya. TFS mahal dalam hal lisensi, dan dalam waktu pengembang akan membuang-buang ranting di stackoverflow daripada menulis kode: P


10
2017-08-14 21:02



Rekomendasi saya, Sistem Tim tidak sepadan dengan uang. Saya telah menggunakan keduanya dan setelah menggunakan Sistem Tim, saya mencoba mencari pengganti yang serupa. Pada dasarnya apa yang Anda bayar adalah integrasi dan Anda dapat membantah dukungan kustomisasi, tetapi saya telah mampu membuat penggantian Sistem Tim dengan sedikit waktu dan mengintegrasikan alat bersama.

saya baru baru ini mengajukan pertanyaan pada apa yang telah dilakukan orang lain untuk datang dengan alternatif Sistem Tim. Saya juga membuat daftar alat pengembangan yang saya gunakan untuk membuat penggantinya. Semoga dengan jawaban ini dan pertanyaan yang saya tanyakan, Anda dapat menemukan apa yang berhasil untuk Anda.

Saya bukan pembenci Sistem Sistem, saya hanya tidak berpikir itu bernilai uang. Ini adalah alat yang sangat bagus dan jika Anda tidak keberatan membayar harga untuk itu, maka dengan segala cara menggunakannya. Itulah alasan mengapa saya membuat penggantinya. Saya menginginkan Sistem Tim fungsional disediakan.


8
2017-08-17 02:30