ورود/ایجاد حساب کاربری
   منوی اصلی
· خانه
· لیست کاربران
· جستجو
· آمار مشاهدات
· آرشیو مقالات


- شرح
· راهنمای نویسندگان
· درباره ما

   همکاری با نشریه
در صورتی که مایل به همکاری با نشریه هستید، می‌توانید در لیست پستی نشریه عضو شده و در جریان امور قرار گیرید. برای اطلاعات بیشتر، اینجا کلیک کنید.

   کاربران
سردبیر
هیچ مدیر کمکی حاضر
همکاران
هیچ مدیر کمکی حاضر
اعضا:
جدیدترین:جدید امروز:0
جدیدترین:جدید دیروز:0
جدیدترین:مجموع:2471
جدیدترین:جدیدترین:
ufumenarayu
اعضا:حاضر
اعضا:اعضا:0
مهمان‌ها:مهمان‌ها:1
مجموع:مجموع:1
کاربران حاضر
هیچ کاربر حاضری وجود ندارد

   ورود کاربران




 


 برای ورود مشکل دارید؟
 ثبت نام کاربران جدید

آشنایی با Subversion بخش ششم

(703 مجموع کلمات موجود در متن)
(6697 بار مطالعه شده است)  نسخه چاپی

آشنایی با Subversion بخش ششم

شماره تغییرات چیست؟

خوب، تا جایی که میشد این بحث را پیش نکشیدم،‌ چون میخواستم که حداقل یک مثال عملی را با هم کار کرده باشیم و آنقدر راجع به تئوری بحث نکنیم. در واقع من بایـد revision number را خیـلی زودتر مطرح می‌کردم، ولی خوب، الان هم چندان دیر نشده اسـت! ببیـنید، فرض کنید که پروژه شما تنها یک کاربر دارد، بله، خیلی ساده تنها یک کاربر و فقط یک کاربر که آنهم شما باشید قرار است بر روی ایــن پـروژه کار کند. به عبارت دیگر یک ســرور subversion را تنها برای شخص شخیــص شــمـا تخصیص داده‌اند. هنگامی که مخزن فایل سرور را می‌ساختند (بـا دستور svn create و بعد هم طبعا یک سری فایل را درونش import کرده‌اند با دستــور svn import)، شمـاره ۱ به آن مجموعه فایلهای موجود در آن تخصیص می‌یابد. هر بار که کاربران فایلهای خود را روی مخــزن فـایل commit می‌کنند، یکی به این شماره اضــافـه می‌شود. خــوب، اینــطوری کـار خیــلی ســاده می‌شــود. روز اولـی که می‌خواهید با سرور کار کنید، همــانطور که توضیح داده شد یک نسخه از فایلها را درون نسخه کاری کامپیوتر خود اصطلاحا checkout نمــوده و کـار خود را شروع می‌کنید. چون شما تنها کسی هستید که بر روی پروژه کار می‌کند، قطعا نسخه شماره ۱ را checkout می‌کنیــد. فـرض کنید پس از انجام تغییرات بر روی یک و یا چندین فایل، بخواهید همانطور که در پاراگراف قـبــل تـوضیـح دادم فایلها را بر روی سِرور commit نمایید. پس از commit کــردن، نسخــه ســرور و یــا همــان شـمـاره تغییرات اگر بخواهیم درست ترجمه کنیم به ۲ ارتقاء می‌یابد. پس از چند ساعت کار دیگر بر روی فایلهایتان و یک commit دیگر از طرف شما، این نسخه به ۳ ارتقاء می‌یابد و ...

بنابر این ساختار مخزن فایل بصورت زیر است:



شکل ۱
-۳ نمایی از ساختار مخزن فایل و نحوه تخصیص شماره revision


همانطور که می‌بینید در هر شماره تغییراتی در مخـزن فایل مشاهده می‌شود. در حالت صفر هیچ فایلی بر روی مخزن فایل وجود نداشته، بعد از import اولیه (و یـا شـاید حتی نوشتن چندین فایل از صفر و commit آنها) شمـاره تغییرات بـه ۱ ارتقاء می‌یابد و ... بنـابر این هرگاه خواستید از یک سـرور subversion نام ببرید و مثلا بگویید فایلهای من بر روی این سرور قرار دارند، حتما باید شماره نسخه را نیز ذکر کنید.

حال فــرض کنید بعد از اینکه شـما ۱۰ نسـخه را commit کـرده‌اید، کاربــر دیــگری نیز به پروژه اضافه شود. هنگامی که او می‌خواهد برای بار اول نسخه کاری خــود را تشکیل دهد، نسخه شماره ۱۰ را از مخزن فایل دریافت می‌کند، و این کاملا منطقی است، چون او بصورت پیـش فرض باید جدیدترین و به‌روزتــرین نسخه کاری را دریافت کنــد. حــال فــرض کنـید هنگامی که این کاربر جدید وارد سیستم می‌شود و کار خود را آغاز می‌کند، شما چند روز به مسافرت بروید. اگر طی مسافرت شما او مثلا ۵ بار commit کند، هنگامی که شما باز می‌گردید، ورژن نسخه کاریتان ۱۰ اســت، در صورتی که ورژن به‌روز واقع در مخــزن فایل اصلی ۱۵ می‌باشد و ایــن یعنی اینکـه شما ۵ نسخه عقب هستید. برای اینکه ورژن نسخه کاری خود را بروز نمایید، و در واقع آخرین تغییرات را دریــافـت کنید، تنها لازم است که از دستور svn update استفاده کنید:


$ svn update

U someGraphic.png
U someOtherFile.php
A index.php

Updated to revision 15.


همــانـطور که می‌بیـنـید در طی چـند روزی که مســافرت بــوده‌اید فـایــلــهای someGraphic.png و someOtherFile.php تغییر (Update) یافته‌اند و فایل index.php به مخزن فایل اضافه شده است، پس از اجرای این دستور شما نیز دارای این فایلها شده و ورژن نســخه کاریتان به ۱۵ ارتقاء می‌یابد. ولی همیشه کار به این خوبیها پیش نمی‌رود! ابتدا اجازه دهــیـد مفـهوم چند اصطلاح را توضیح دهم تا به جنبه‌های نه چندان دلچسب ماجرا نیز برسیم!


نسخه HEAD و نسخه BASE

آخرین نسخه‌ای که در هر لحظه بر روی مخزن فــایل اصلی قرار دارد نسخه HEAD نامیده می‌شود. در مثال قبل نسخه HEAD بــرابـر با ۱۵ بود. در مقابل به آخرین نسخه‌ای که شما روی نسخه کاری خود دارید نسخه BASE می‌گوییم، در مثال قـبل نسخه BASE برابر با ۱۰ بود. بنابر این هرگاه نسخه HEAD با BASE برابر نبود یعنی اینکه از آخرین update کـاربـر تا بحال نسخه یا نسخ دیگری رو سرور قرار گرفته و همین باعث قدیمی شدن نسخه BASE شده است. نکته‌ای که نباید فراموش کنید این است که commit کردن تغییرات خود به ســرور بــه ایــن معنا نیست که شماره تغییرات نسخه کاری شما نیز به شماره HEAD تغییر پیدا می‌کند! بـعـد از هــربار commit تنها آخرین تغییرات شما بر روی ســرور قرار می‌گیرند، برای اینکه تغییــرات بقیه را نیز دریافت کنید حتما باید دستور svn update را نیز اجراء کنید.




بیژن هومند

PDF Version

[1] http://subversion.tigris.org

تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.