سلام.

به نظر شما کدامیک از نرم‌افزارهای کنترل نگارش (Version Control) بهتر هستند؟

مقدمه:
خیلی از ما برای نگهداری از نگارش‌های مختلف برنامه‌مون از روش Copy - Paste پروژه‌ها روی هارد استفاده می‌کنیم. این روش نه تنها خیلی از حجم هارد رو هدر می‌ده بلکه ردیابی تغییراتی که تو نرم‌افزار اتفاق افتاده رو سخت می‌کنه. تو این روش فهمیدن اینکه مثلا یک کلاس کم‌کم به چه شکلی کامل شده و کدوم باگ‌هاش رفع شده خیلی سخته. حتی من بعضی برنامه‌نویس‌ها رو دیدم که اشتباها تغییرات جدیدی که باید انجام بدهند رو، روی نگارش‌های قدیمی‌تر انجام دادند و وقتی کارشون تمام شده با کمال تعجب دیدند هنوز بعضی از باگ‌هایی که قبلا رفع کرده بودند وجود داره.
حتی برخی از برنامه‌نویس‌ها از یک پروژه‌شون ده‌ها کپی روی قسمت‌های مختلف هارد دارند، که هر کدوم با بقیه نسخه‌های دیگه فرق داره و فقط خود برنامه‌نویس می‌دونه تفاوت این‌ها چیست و بعضی وقت‌ها هم خود برنامه‌نویس هم اشتباه می‌کنه.
با این مشکلات به سادگی نمی‌شه نگارش‌های مختلف یک پروژه رو نگهداری کرد و هزینه پشتیبانی نرم‌افزار هم به شکل سرسام آوری بالا می‌ره. علتش هم اینه که بیشتر تغییرات در پروژها در زمان پشتیبانی و پس از تحویل به مشتری اتفاق می‌افته.
راه حل اینه که از نرم‌افزارهای کنترل نگارش استفاده کرد. این نرم‌افزارهای توی کارهای گروهی نقش پر رنگ‌تری می‌تونند داشته باشند.

من چند تا از نرم‌افزارهای کنترل نگارش رو در پایین ذکر کردم. اصلا به نظر شما کنترل نگارش مهم هست؟ اگه هست کدام یک از نرم‌افزارها بهتره؟ اگه تجربه مفیدی در این زمینه دارید لطفا اون رو با ما در میان بگذارید.


گزینه‌ها:
(اگر روی نام نرم‌افزار کلیک کنید به وب‌سایت اون خواهید رفت)

1) CVS - Concurrent Versions System
توضیح: http://en.wikipedia.org/wiki/Concurrent_Versions_System
- هم لینوکسی است و هم ویندوزی. یک کمی قدیمی است ولی در پروژه‌های Open Source زیاد استفاده می‌شه.

2) Subversion
توضیح: http://en.wikipedia.org/wiki/Subversion_%28software%29
- هم لینوکسی است و هم ویندوزی. در پروژه‌های Open Source جدید زیاد استفاده می‌شه. ظاهرا گوگل (http://code.google.com/hosting) و http://sourceforge.net از این نرم‌افزار پشتیبانی می‌کنند. هم تحت وب کار می‌کنه (با آپاچی) و هم یک نسخه بدون نیاز به وب‌سرور داره. با اینترنت هم به خوبی می‌شه با این نرم‌افزار کار کرد و از کارایی اون در شبکه استفاده نمود. تا اونجا که من کار کردم از یونیکد و فارسی هم پشتیبانی می‌کنه.

3) Microsoft Visual SourceSafe
توضیح: http://en.wikipedia.org/wiki/Visual_SourceSafe
- خیلی خوب با ویژوال استدیو کار می‌کنه و به صورت یکپارچه در می‌آید. ظاهرا مایکروسافت اعلام کرده که آخرین نسخه اون 2005 است و دیگه این نرم‌افزار ادامه پیدا نمی‌کنه. همچنین کار با اون ساده است و تحت شبکه و برای کارهای گروهی هم مناسبه و امکانات خوبی داره.

4) Team Foundation Server
توضیح: http://en.wikipedia.org/wiki/Team_Foundation_Server
- کاملا حرفه‌ای است. نصب اون نیاز به Windows Server 2003 SP1 و SQL Server 2005 داره. به خوبی با ویژوال استدیو کار می‌کنه. هدف اصلی‌اش کارهای گروهی است. در عین قدرتمندی کار با اون نیز نسبتا ساده است.

موفق باشید.