عنوان:

‫یکی از مزایای استفاده از SVN در یک پروژه تک نفره


نویسنده: وحید نصیری
تاریخ: ۱۳۸۷/۱۱/۲۵ ۰۰:۵۸:۵۹
آدرس: www.dntips.ir

حتما لازم نیست که در یک تیم برنامه نویسی مشغول به کار باشید تا به یک سورس کنترل نیاز پیدا کنید. در ادامه یکی از مزایای استفاده از 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 های مختلف و موارد دیگری که در این مطلب کوتاه در مورد آن‌ها بحث نشد، به تفصیل توضیح داده شده است)


نظرات

  • مهمان در ۱۳۸۷/۱۲/۰۳ ۱۲:۰۲:۰۰
    نوشته خیلی خوبی و سودمندی بود. من شخصا برای PHP از SVN آنلاین سایت http://xp-dev.com استفاده می‏کنم. بد نیست نگاهی بیاندازید. سایت خیلی خوبی است و خدماتش کلا رایگان است. سایت شما را در لیست دوستان لینک کردم.
  • وحید نصیری در ۱۳۸۷/۱۲/۰۳ ۱۲:۳۶:۰۰
    با سپاس از لطف شما.
  • مهمان در ۱۳۸۷/۱۲/۰۴ ۰۴:۲۷:۰۰
    وحید شما خودت استاد هستی ولی SVN یکمی دمده شده. ما الان از GIT استفاده می‌کنیم. توصیه می‌کنم از GIT استفاده کنی به دلایلی که اینجا برشمرده: http://www.whygitisbetterthanx.com
  • مهمان در ۱۳۸۸/۰۹/۲۸ ۱۶:۲۸:۵۱
    سلام اگر که بخواهیم برای این تغییرات و افزایش ها یک سند قابل ارائه تهیه کنیم، با استفاده یا بدون استفاده از SVN چه برنامه و یا روشی پیشنهاد می کنید.
  • وحید نصیری در ۱۳۸۸/۰۹/۲۸ ۱۶:۵۵:۰۲
    سلام
    با استفاده از دستور زیر خروجی xml تمام commit های صورت گرفته به همراه کامنت‌ها و زمان و غیره را می‌شود بدست آورد:
    svn log --xml file:///C:/Repositories/project1/trunk > logs.xml

    همچنین در فصل آخر جزوه‌ای که نامبرده شد روش دسترسی به svn با برنامه نویسی هم ذکر شده که هر نوع خروجی که مایل بودید به این صورت می‌شود تهیه کرد.