آشنایی با Subversion بخش پنجم(923 مجموع کلمات موجود در متن) (6832 بار مطالعه شده است) آشنایی
با Subversion
بخش
پنجم
دستور
SVN
DIFF
اینهم
از چاره کار!
یکی
از امکاناتی که این دستور به ما میدهد
این است که تغییراتی را که در فایل خود
دادهایم نسبت به آخرین نسخهای که از
مخــزن فــایـل دریافت کردیم، بــه مـا
نشان دهد.
فرض
کنید محتوای فایل someOtherFile.php
هنگامی
که ما آنرا از سرور گرفتیم این بوده باشد:
-
<?PHP print
"hello hello hello"; ?>
|
حال
فرض کنید بعد از چند روز کار بر روی پروژه،
ما این فایل را به چیزی شبیه زیر تغییر
داده باشیم:
-
<?PHP if
( $ILikeYou ) print "hello hello hello"; else
print "go to hell!";
for
($i=0; $i<2000; $i++) echo "I should go to
military service..."; ?>
|
همانطور
که میبینید تغییرات قابل توجهی در فایل
اعمال شده است.
بدون
هیچ حرفی به نتایج دستور زیر دقت کنید:
-
$
svn diff someOtherFile.php
Index:
someOtherFile.php
=================================================================
---
someOtherFile.php (revision 11) +++ someOtherFile.php
(working copy)
;@@
-1,3 +1,9 @@ <?PHP
-print
"hello hello hello"; +if ( $ILikeYou ) +
print "hello hello hello"; +else + print
"go to hell!"; +
+for
($i=0; $i<2000; $i++) + echo "I should go to
military service..."; ?>
|
خروجی
این دستور به قشنگی میتواند بیانـگــر
تغییراتی کـه فـایــل someOtherFile.php
نسبت
به آخرین نسخه دانلود شده خود از مخزن
فایل اصلی داشته اســت باشــد.
خـــروجی
این دستور تنــها خطوطی از فایل را که
نسبت به نسخه اولیه تغییر یافتهاند،
بـه ما نمایش میدهد.
علامت
+
در
اول خطوط به معنای این است که آن خطوط نسبت
به نسخه اولیه جــدیــد هستند و تازه
اضافه شدهاند و خطوط منفی (
- ) به
این معنا میباشند که آن خطــها از آن
مکان در فایــل حذف شدهاند.
به
این ترتیب شما میتوانید به راحتی تغییراتی
را که انجام دادهاید ببینید.
لازم
به ذکــر است که خروجی این دستور از
استاندارد جهانی unified
diff format پیروی
میکند، خبـــر خوشحال کننده تر آنکه
شما میتوانید خروجی این دستور را به هر
فرمت استانداردی که دوست دارید تبــدیل
کنید.
نـحـوه
انجام اینکار از حوصله این مقال خارج است،
ولیکن با مطالعه لینکهای داده شده در قسمت
مراجع براحتی میتوانید اینکار را انجام
دهید.
دستور
SVN
REVERT
فرض
کنید بعد از آنکه از دستور svn
diff استفاده
کردید، متـــوجه شدید کـــه از تغییرات
انــجــام شده راضی نیستید و میخواهید
که وضعیت فایل را به همان حالت گذشته
برگردانید.
برای
اینکار تنها کافیست که از دستور زیر
استفاده کنید:
-
$
svn revert someOtherFile.php Reverted
'someOtherFile.php'
|
اکنون
اگر حتی دستور svn
status را
نیز اجرا کنید، میبینید کــه دیگــر از
آن علامت M
در
جلـــوی نــام فـایل شما خبری نیست، یعنی
اینکه این فایل هیچ تغییری نسبت به آخرین
نسخه دریافت شده از مخزن فایل نداشته است!
ذخیره
تغییرات در سرور
هدف
من در این مقاله کوتاه این است که تا جایی
که میشود از تکرار تعاریف و تئوری گویی
جلوگیری کنم و هر چیزی را درست در جای خود
بگویم، البته قبول کنید کار بسیار سختیست
و ۱۰۰٪ قابل انــجــام نیست.
به
همین خاطر از آوردن اسم اصطلاحات تا
لحظهای که به آنها برخورد نکــردیم
جلوگیری کردم.
یکی
از این اصطلاحات همین ذخیره تغییرات انجام
شده در نسخه کاری بر روی مخزن فایل میباشد،
به این عمل commit
کردن
و یا checkin
مینامند(در
مقابل checkout
که
اگر خاطرتان باشد نسخه کاری را برای ما
درست کرد).
شمــا
هنـــگامی کــه تغییرات خــــود را در
فایلــها دادید، حال میخواهید آنها را
در مخزن فایل اصلی قرار دهید تا بقیه از
نتیجه تغییرات شما آگاه شوند.
بـرای
این کــار تنها کافیست که از دستور svn
commit استفاده
کنید.
پس
از اجرای این دستور ادیتور پیش فـــرض
شما بــاز شــده و شما پس از وارد کردن
توضیحات log
خود،
میتوانید عملا ببینید که تغییرات در
مخزن فایل اصلـــی ذخیره میشود.
قطعا
اگر توضیحاتتان طولانی نبود و میخواستید
که آنرا به همراه دستور بنویسید، میشد
مـانـند گــذشته از سوئیچ m-
استفاده
کرد.
همینجا
این نکته آویزه گوش کنید که هرگاه بخواهید
تغییری در مخزن فـــایـــل اصلی بدهید،
از شـما پیغام log
پرسیده
میشود.
تغییراتی
را که در نسخه کاری خود میدهید تا قبل
از اینکه آن را commit
کنید،
توسط هیچ شخصی قــابــل مشــاهــده نیست،
آنها فقط درون دستگاه شما هستند و هیچ
ربطی به هیچ احدالناسی ندارند.
ولی
هنگامی که بخواهید آنها را checkin
کنید
دیگر قضیه فرق میکند.
-
$
svn commit -m 'I made some very important changes!' Adding
trunk/index.php Sending
trunk/someGraphic.png Sending
trunk/someOtherFile.php Transmitting file data ...
Committed
revision 11.
|
همانطور
که میبینید فایلهایی که تغییر دادیم و
اضافه نمودیم به مخزن فایل فرستاده شده
و در نهایت پیغامی مبنی بر موفقیت و شماره
تغییرات کـــه همان ۱۱ باشد به ما برگردانده
میشود.
حال
تغییراتی که ما انجام دادهایم بر روی
سرور قرار گرفته و بقیه نیز میتوانند
آنها را مشاهده کنند.
در
واقع الان تغییرات ما در راس مخــزن فایل
قــرار دارند و اگر کسی مثلا بخواهد نسخه
کاری خود را با دستور svn
checkout درست
کند، فایلهای ما را نیز دریافت خواهد
نمود.
بیژن
هومند
PDF Version
[1]
http://subversion.tigris.org
|