تسلیم می‌شویم

در یکی از مجموعه‌ها خیلی اصرار کردم که به جای TFS از SVN استفاده شود. اما نتوانستم حرفم را به کرسی بنشانم. الان در آن مجموعه تقریباً از همه امکانات سورس کنترلی TFS استفاده شده و به غیر از دو سه ماه اول که دوستان خطاهای Runtime برنامه‌شان را هم به گردن TFS می‌انداختند مشکل خاصی وجود ندارد.

در مجموعه دیگری بدون آن که خیلی اصرار کنم موفق شدم به جای TFS یا هر سورس کنترل دیگری از git استفاده کنم. اما حالا سخت پشیمانم و نادم. چون بر و بچ محترم حال ندارند چند تا نکته ساده را هم رعایت کنند. به فکر آقایان و خانم‌ها خطور نمی‌کند که:

۱- قبل از صدور دستور commit، فایل‌های تغییر یافته‌شان را save کنند،

۲- حذف و اضافه فایل به پروژه در ویژوال استودیو نیاز به Save all یا اقلاً یک Rebuild Solution دارد،

۳- اگر دو نفر یک جای یکسان از یک فایل واحد را تغییر دهند، merge conflictی به وجود می‌آید که خود git نمی‌تواند آن را به طور خودکار resolve (حل) کند. و این از منطق کار تیمی و منطق فکری نشات می‌گیرد و جز نقایص git یا هر سورس کنترل دیگری نیست،

۴- ساختار پروژه در ویژوال استودیو خودش در یک فایل خاص با پسوند csproj نگهداری می‌شود پس به وجود آمدن merge conflict در آنجا هم امکان‌پذیر است،

۵- برای پیشگیری از merge conflict اول هر روز کاری یا حتی دو سه بار در روز، قبل از شروع کار باید اول تغییرات دیگران را دریافت کرد،

۶- نگهداری فایل یک کلاس یا winform با بیش از ۱۵۰۰ خط کار درستی در یک محیط تیمی و تحت سورس کنترل نیست،

۷- …

تنها فرق حالت اول و دوم این است در که در حالت اول خود ویژوال استودیو همه کارها را انجام می‌دهد. مثلاً قبلاً از check-in شما را مجبور می‌کند که همه فایل‌ها را save کنید. بنابراین کسی مجبور نیست از معدن گچش استفاده کرده و حواسش به save فایل‌ها قبل از ارسال به سرور باشد.

این است که دست‌هایمان را به نشانه تسلیم بالا برده و اجازه می‌دهیم دوستان به جای استفاده از git، سورس مشترکشان را روزی ده بار از طریق usb flash با هم به اشتراک بگذارند و خودشان نقش سورس کنترل را بازی کنند.

البته این بازی یک درس هم برای من داشت. آن هم این که اگر افراد به طور داوطلبانه از سورس کنترل git یا حتی svn استفاده کردند معنی‌اش آن است که آنها افراد دقیق و قابل اعتمادی هستند.

.
.
.
.

باشد که روزی به راه راست هدایت شویم.

Private SVN hosting

سایت‌های رایگان خیلی زیادی برای نگهداری سورس تحت svn وجود دارد. از جمله CodePlex و SourceForge. اما متاسفانه این سایت‌ها فقط برای نگهداری سورس‌های کد باز (Open Source) قابل استفاده‌اند چون نمی‌توان سورس آنها را از دید عموم خارج کرد. بعضی سایت‌های دیگر مثل github هم هستند که امکان میزبانی سورس‌های غیر کد باز را ارائه می‌دهند اما نه به صورت مجانی. اگر می‌خواهید از این سرویس استفاده کنید باید پول پرداخت کنید. و اگر می‌خواهید از سرویس‌های رایگان این طور سایت‌ها استفاده کنید باز هم مجبور می‌شوید سورس خود را به صورت کد باز روی آنها قرار دهید.

اما این پایان راه نیست. اگر شما می‌خواهید سورس خود را به صورت غیر Open Source و به صورت مجانی در جایی نگهداری کنید می‌توانید از سایت‌های زیر استفاده کنید:

Assembla.com

دارای backup است.
محدودیتی در تعداد کاربر ندارد.
یک گیگا بایت فضا در اختیار می‌گذارد که نسبت به بقیه خیلی بیشتر است.
ثبت نام و کار با آن نیاز به تشریفات کمتری دارد.
از https استفاده می‌کند. در نتیجه ممکن است به علت محدودیت‌های اینترنت در ایران در بعضی روزهای خاص از کار بیفتد.
خیلی کند است.

http://unfuddle.com/about/tour/plans
به نظر خوب می‌آید

http://www.xp-dev.com
به نظر خوب می‌آید.

http://www.projectlocker.com
به نظر خوب می‌آید.

http://www.myversioncontrol.com
به نظر خوب می‌آید.

http://codesion.com
به نظر کند می‌رسد

http://www.sliksvn.com
خیلی قابل اطمینان است. ولی به نظر می‌رسد دارای تشریفات خیلی بیشتری برای ثبت نام است.

منبع:
http://www.svnhostingcomparison.com

‫چرا SVN بهتر از TFS است؟

دلایل خیلی زیادی برای این برتری وجود دارد. ولی فعلاً به این یکی بسنده کنید. فرایند پشتیبان‌گیری و برگرداندن پشتیبان‌ها (backup/restore) در svn خیلی ساده ولی در TFS خیلی پیچیده است.

برای پشتیبان‌گیری از مخزن SVN کافی است فولدر آن را در ویندوز کپی کرده و در جای مطمئنی نگه دارید. برای برگرداندن پشیبان هم کافی است فولدر پشتیبان را مجدداً در جای قبلی کپی کنید.

اما در TFS 2010 شما باید به کلی از کارهای admin ویندوز و  Sql Server مسلط باشید و برای انجام یک restore ناقابل مراحل زیادی را طی کنید. اگر باور نمی‌کنید نگاهی به لینک‌های زیر که همگی مربوط به فرایند backup/restore در TFS 2010 است نگاهی بیندازید.