۱۳۸۷/۱۱/۲۵

يكي از مزاياي استفاده از SVN در يك پروژه تك نفره


حتما لازم نيست كه در يك تيم برنامه نويسي مشغول به كار باشيد تا به يك سورس كنترل نياز پيدا كنيد. در ادامه يكي از مزاياي استفاده از SVN را با هم مرور خواهيم كرد.

چند روز قبل هنگام كار با VS.Net ، ناگهان IDE‌ كرش كرد. (از لطايف استفاده از يك دو جين افزونه و ضعف در برنامه نويسي يكي از اين‌ها كه مي‌تواند سبب ناپايدار شدن IDE شود)
پس از كرش با صفحه‌ي زير مواجه شدم!


بله! فرم برنامه كه با هزار زحمت درست شده بود، پس از كرش نابود شده بود!
در اين نوع مواقع چه بايد كرد؟ مراجعه به آخرين مجموعه‌ي بك آپ زيپ شده كه احتمالا وجود خارجي ندارد؟ ناسزا گفتن به زمين و زمان، يا ... ؟!

چون هميشه از SVN به عنوان سورس كنترل استفاده مي‌كنم، به سادگي چند كليك مشكل برطرف شد.
براي اين‌كار مي‌توان به صورت زير عمل كرد:
الف) كليك راست بر روي فايل frmMain.Designer.cs (اين فايل تعاريف رابط كاربر فرم تخريب شده را در خود دارد)
ب) سپس انتخاب گزينه‌ي Showlog از منوي افزونه‌ي Visual SVN (شكل زير)



اكنون صفحه‌ي گزارش تاريخچه‌ي ريز عمليات صورت گرفته بر روي اين فايل ظاهر مي‌شود:



در ادامه مي‌توان بر روي يكي از سطرهاي ظاهر شده در گزارش كليك راست كرد و گزينه‌ي compare with working copy را انتخاب نمود (شكل زير):



سپس ابزار diff ظاهر شده و مي‌توان به سادگي تفاوت فايل تخريب شده فعلي و فايل سالم چند نگارش قبل را مشاهده نمود:



همانطور كه در تصوير مشخص است، فايل مورد استفاده (working copy) در دو نقطه اساسي كه مربوط به اضافه كردن منوها است تخريب شده. سمت چپ نگارش قديمي است و سمت راست نگارش فعلي تخريب شده.
اكنون براي اصلاح كد تخريب شده فقط كافي است روي قسمت رنگي سمت راست كليك راست كرده و گزينه copy to right‌ را انتخاب كنيم. به اين صورت در اسرع وقت و به سادگي هر چه تمام‌تر يك فايل تخريب شده به روز اول يا حداقل به يك نگارش قبل بازگشت پيدا كرده و مشكل حل مي‌شود. (البته در اين مورد تخريب فرم، پس از انجام اصلاح فوق، يكبار بايد IDE را كاملا بست و مجددا آنرا گشود تا نتيجه ظاهر شود)



اگر به اين مبحث علاقمند شديد، به كتابچه‌ي فارسي راهنماي كار با SVN مراجعه نمائيد. (در مورد نحوه‌ي راه اندازي SVN ، افزونه‌هاي IDE هاي مختلف و موارد ديگري كه در اين مطلب كوتاه در مورد آن‌ها بحث نشد، به تفصيل توضيح داده شده است)