• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
ارتباطات و فن آوری اطلاعات (بازدید: 1302)
پنج شنبه 10/2/1388 - 20:1 -0 تشکر 109599
با CVS بیشتر آشنا شویم


با CVS بیشتر آشنا شویم


با CVS بیشتر آشنا شویم

این کلمه CVS به چه معنایی است؟ (Concurrent Versions System) کنترل نسخه های متفاوت ! خوب شاید برگردان آن به فارسی چندان مناسب نباشد. اما ٬ می توان گفت که برای ذخیره کردن تاریخچه کدها یا متون شما است..... 
وقتی با دنیای گنو/لینوکس آشنا می شوید. سعی می کنید درباره آن بیشتر بدانید. از هر موقعیتی برای آشنایی بیشتر با طرز کار سیستم عامل و فرهنگ آن استفاده می کنید. یکی از سوالاتی که بعد از مدتی برای شما پیش می آید. این است که متوجه می شوید تعداد زیادی از پروژه هایی که می بینید٬ توسط گروهی از برنامه نویسان نوشته می شوند. در مراحل بعدی شاید متوجه شوید که این افراد در سرتاسر دنیا از نظر جغرافیایی پراکنده هستند. حال چطور می توان از راه دور یک پروژه زیبا ٬ با شکوه و از نظر فنی کاملا مناسب و حرفه ای را از راه دور دنبال کرد! این سوال من را وادار کرد تا درباره آن تحقیق کنم. ابزارهایی مانند email و لیستهای پستی در بستر مناسبی همچون اینترنت٬ این کار را آسان کرده اند. اما آیا فقط به واسطه آنها می توان به تنهایی از پس کار برآمد ؟ یکی دیگر از جوابهایی که در این راه به آن رسیدم٬ چیزی بود به نام CVS. شاید این کلمه برای شما آشنا باشد و یا برای یک حرفه ای ابزاری مناسب که سالها از آن استفاده می کند. اگر شما با این موضوع آشنا نیستید ٬ این مقاله می تواند شروعی برای آشنایی با این موضوع باشد. شاید روزی شما هم وارد دنیایی مشابه دنیای برنامه نویسان شدید. برای CVS کتابهای متعددی وجود دارند و من قصد ندارم وارد دنیایی از دستورات و روشها برای CVS بشوم. چراکه آنوقت باید روی کتاب قطوری کار کرد. پس تنها به معرفی آن و طرح نمونه ای برای آشنایی مختصر با طرز عملکرد آن می پردازیم. 
اما این کلمه CVS به چه معنایی است؟ (Concurrent Versions System) کنترل نسخه های متفاوت ! خوب شاید برگردان آن به فارسی چندان مناسب نباشد. اما در یک جمله ٬ می توان گفت که برای ذخیره کردن تاریخچه کدها یا متون شما است. تاریخچه ! شما متنی دارید و آن را برای اولین بار ایجاد کرده اید. حال هر از گاهی آن را تغییر می دهید و آن را به روز می کنید. اگر تغیراتی را که اعمال کرده اید٬ ذخیره بشوند و هر وقت خواستید بتوانید از این تغییرات مطلع باشید. می تواند در موردی مانند دنبال کردن باگهای یک برنامه مفید باشد. می توانید گذشته را مرور کنید و ببینید که چه چیزی مشکل را ایجاد کرده بود. 
ذخیره کردن نسخه های متفاوت از فایل می تواند وقت و زمان زیادی را از شما بگیرد. اما CVS همه را در یک فایل ذخیره می کند. شما نیازی به حفظ و نگهداری شماره هایی که این فایل را به مرور ویرایش می کنید٬ نخواهید داشت. هر زمان که بخواهید می توانید این روند را از روی گزارش ها پیگیری کنید. 
اگر شما عضوی از یک گروه هستید و روی یک پروژه کار می کنید ٬ CVS برای شما ابزار مناسبی خواهد بود. می توانید به طور همزمان روی یک پروژه کار کنید. بعضی از رابطها خودشان سعی می کنند تا جلوی ویرایش همزمان را از دو نفر بگیرند. می توانید به صورت جداگانه روی یک پروژه کار کنید و خود CVS بعد از پایان کار ٬ آن را جمع و جور می کند. 
پروژه CVS با نوشتن یکسری اسکریپت(Shell script) از سوی Dick Grune برای comp.sources.unix از نسخه شش به بعد در سال ۱۹۸۶ میلادی شروع شد. که می توان گفت که این کدها در CVS امروزی قرار ندارند و حتی قسمتی از آن را تشکیل نمی دهند. در سال ۱۹۸۹ ٬ Brian Berliner طراحی و کدنویسی آن را انجام داد و بعدها Jeff Polk به کمک او آمد. 

●آشنایی با طرز کار CVS

برای اینکه با طرز کار CVS آشنا شوید. آن را از دو سمت client و server نگاه می کنیم. تا بتوانیم تقریبا آنچه که اتفاق می افتد را ببینیم. مسائل امنیتی و نحوه مدیریت ٬ کارایی و اطمینان لازم را ایجاد می کند. 

Serve●r

اولین چیزی که برای مدیرت فایلها نیاز داریم ٬ به اصطلاح یک مخزن است. این مخزن یا همان دایرکتوری ٬ برای قرار دادن فایلهای پروژه ها هستند. بنابراین ایجاد مخزن اولین قدم است. شما می توانید آن را در هر جایی که بخواهید ایجاد کنید. بسته به اینکه کار شخصی خودتان یا شبکه محلی یک دفتر را انجام می دهید و یا اینکه قرار است روی اینترنت باشد و تعداد بیشتری به آن دسترسی داشته باشند. خوب به عنوان مثال یک فایل متنی را با دوستانم روی رایانه شخصی خودم به اشتراک می گذارم. آنها می توانند با کد کاربری خودشان از رایانه من استفاده کنند. چون من از پارتیشن home نگهداری می کنم و از سیستمهای متفاوتی استفاده می کنم٬ امن ترین جا همان دایرکتوری شخصی است. یک دایرکتوری به نام project ایجاد می کنم و مخزن اصلی کارهایم قرار می دهم. 
توجه: با توجه به اینکه این یک مثال است. من هر دو سمت client و server را در دایرکتوری شخصی خودم اضافه کردم. 
mohammad@debian:~$ mkdir project 
mohammad@debian:~$ cd project 
mohammad@debian:~/project$ cvs -d /home/mohammad/project init 
mohammad@debian:~/project$ ls -l 
total
drwxrwxr-x ۳ mohammad mohammad ۱۰۰۰ ۲۰۰۵-۰۴-۰۳ ۰۳:۰۸ CVSROOT
همانطور که می بینید بعد از اینکه از دستور CVS برای ایجاد مخزن استفاده کردم. دایرکتوری با نام CVSROOT ایجاد شده است. برای اینکه فایل را در جایی قرار دهیم از یک قسمت برای آن استفاده می کنم. فرض می کنیم که در مورد یک ماژول است. بنابراین یک دایرکتوری دیگر به نام mod۱ می سازم. مخزن ما آماده است. البته این مخزن کاملا خالی است. در قسمت بعدی به عنوان نمونه یک فایل به آن اضافه می کنیم. 
mohammad@debian:~/project$ ls -l 
total ۱ 
drwxrwxr-x ۳ mohammad mohammad ۱۰۰۰ ۲۰۰۵-۰۴-۰۳ ۰۳:۰۸ CVSROOT 
drwxr-xr-x ۲ mohammad mohammad ۴۸ ۲۰۰۵-۰۴-۰۳ ۰۳:۱۹ mod

●Client

ما می خواهیم از همان مخزن برای انجام کارها استفاده کنیم. پس اول نیاز داریم تا همانند آن را داشته باشیم. پس یک دایرکتوری ایجاد می کنیم و دستور زیر را اجرا می کنیم. 
mohammad@debian:~$ mkdir work 
mohammad@debian:~$ cd work 
mohammad@debian:~$ ls 
mohammad@debian:~$ cvs -d /home/mohammad/project co mod۱ 
cvs checkout: Updating mod۱ 
mohammad@debian:~/work$ ls 
mod
اگر همه چیز به درستی پیش برود. باید یک دایرکتوری به همان نام ماژولی که در نظر گرفتیم ٬ ایجاد می شود. اگر قبلا این ماژول یا دایرکتوری شامل فایلی بود٬ شما آن را در داخل دایرکتوری mod۱ مشاهده می کردید. وقتی CVS یک پروژه روی اینترنت را اجرا می کنید٬ قاعدتا فایلهایی هم به همراه آن ایجاد می شوند. 
اضافه کردن یک فایل 
برای شروع کار ما نیاز به اضافه کردن فایل داریم. 
mohammad@debian:~/work/mod۱$ ls 
CVS 
mohammad@debian:~/work/mod۱$ touch myfile.c 
mohammad@debian:~/work/mod۱$ ls 
CVS myfile 
mohammad@debian:~/work/mod۱
شما می توانید در داخل این فایل یک برنامه کوچک را وارد کنید ٬ تا برای شما قابل لمس باشد. بعد آن را با دستور add اضافه می کنیم. این دستور فایل myfile.c را برای اضافه شدن به ماژولی که روی server وجود دارد علامت گذاری می کند. 
mohammad@debian:~/work/mod۱$ cvs add myfile.c 
cvs add: `myfile.c&#۰۳۹; has already been entered
توجه: تغییراتی که شما ایجاد می کنید تنها بر روی دایرکتوری شخصی خودتان اعمال می شود. و بعدا باید آن را به روز رسانی کنید. 
پس اگر ناراحت شدید که ای داد بیداد نباید این فایل را ایجاد می کردید یا تغییرات لازم را اعمال نکردید. می توانید فایل را حذف کنید. 
mohammad@debian:~/work/mod۱$ ls 
CVS myfile.c 
mohammad@debian:~/work/mod۱$ rm myfile.c 
mohammad@debian:~/work/mod۱$ ls 
CVS 
mohammad@debian:~/work/mod۱$ cvs rm myfile.c 
cvs remove: removed `myfile.c&#۰۳۹; 
mohammad@debian:~/work/mod۱$
بعد از اینکه فایلهایتان را ایجاد و یا حذف کردید. می توانید تغییرات را ثبت کنید. و صد البته برای ثبت شدن آنها بر روی server باید این کار را انجام دهید. 
mohammad@debian:~/work/mod۱$ cvs commit 
اگر شما تغییراتی داده باشید٬ در هنگام اجرای این دستور می توانید دلیل یا نوشته خودتان را بنویسید. توجه کنید ٬ بهتر است همیشه اینکار را بکنید. چرا ؟ چون تنها در زمانی که با یک فایل کار می کنید و حجم کاری وجود ندارد. نیاز مبرم به آن را احساس نمی کنید. اما زمانی که با یک گروه کار می کنید و یا اینکه حجم کار شما زیاد است. بعد از مدت زمانی این نوشته های کوچک حکم زمان یا همان طلا را برای شما خواهند داشت. 
به روز رسانی دایرکتوری شما با مخزن 
تغییراتی که شما روی کدها اعمال کردید و یا دیگران اعمال کردند. چطور شما و یا دیگران می توانند از آخرین تغییرات با خبر شوند. کافی است با دستور زیر به روز رسانی کنید. 
mohammad@debian:~/work/mod۱$ cvs update 
cvs update: Updating
با اینکار اطلاعات از روی server به رایانه شما انتقال پیدا می کند. شما و یا فرد دیگری می تواند از آخرین تغییرات با خبر شود. البته با این دستور هیچ اطلاعاتی از روی رایانه شما به server منتقل نمی شود. برای این کار باید از همان دستور CVS commit استفاده کنید. برای تمرین ٬ همانطور که جلوتر گفته شد. کد ساده ای را در فایل بنویسید و تغییرات را دو سمت client و server دنبال کنید. این متنی که خواندید تنها آشنایی با CVS بود. برای آشنایی بیشتر می توانید از کتابهای متعددی که در این زمینه وجود دارند و همینطور بهترین مرجع ٬ همان man فایلها استفاده کنید. 
mohammad@debian:~/work/mod۱$ man cvs 
روی اینترنت می توانید از CVSHOME.ORG استفاده کنید. این برنامه بسیار قوی و سودمند است. اما شما باید دستورات و گزینه های زیاد آن را بلد باشید ! از روی آدرس http://www.wincvs.org به دنبال یک برنامه گرافیکی برای پلتفورم مورد استفاده خودتان بگردید. شاید برای استفاده شما نیازی به دستورات خط فرمان نباشد. 
توجه: کدهای این برنامه روی توزیع دبیان سارژ امتحان شدند. برای نصب CVS کافی است آن را با دستور apt-get install cvs نصب کنید.

مترجم : محمد درویش 
http://www.gnu.org/software/cvs/manual/html_mono/cvs.html 
نشریه لینوکس ایران

پنج شنبه 10/2/1388 - 20:45 - 0 تشکر 109615

فیض بردیم

هرگز اين چهار چيز را در زندگيت نشكن

.......................اعتماد ، قول ، رابطه و قلب ؛

.....................................يرا اينها وقتي مي شكنند صدا ندارند ، اما درد بسياري دارند ...

...چارلز ديكنز ...
برو به انجمن
انجمن فعال در هفته گذشته
مدیر فعال در هفته گذشته
آخرین مطالب
  • آلبوم تصاویر بازدید از کلیسای جلفای...
    آلبوم تصاویر بازدید اعضای انجمن نصف جهان از کلیسای جلفای اصفهان.
  • بازدید از زیباترین کلیسای جلفای اصفهان
    جمعی از کاربران انجمن نصف جهان، در روز 27 مردادماه با همکاری دفتر تبیان اصفهان، بازدیدی را از کلیسای وانک، به عمل آورده‌اند. این کلیسا، یکی از کلیساهای تاریخی اصفهان به شمار می‌رود.
  • اعضای انجمن در خانه شهید بهشتی
    خانه پدری آیت الله دکتر بهشتی در اصفهان، امروزه به نام موزه و خانه فرهنگ شهید نام‌گذاری شده است. اعضای انجمن نصف جهان، در بازدید دیگر خود، قدم به خانه شهید بهشتی گذاشته‌اند.
  • اطلاعیه برندگان جشنواره انجمن‌ها
    پس از دو ماه رقابت فشرده بین کاربران فعال انجمن‌ها، جشنواره تابستان 92 با برگزاری 5 مسابقه متنوع در تاریخ 15 مهرماه به پایان رسید و هم‌اینک، زمان اعلام برندگان نهایی این مسابقات فرارسیده است.
  • نصف جهانی‌ها در مقبره علامه مجلسی
    اعضای انجمن نصف جهان، در یك گردهمایی دیگر، از آرامگاه علامه مجلسی و میدان احیا شده‌ی امام علی (ع) اصفهان، بازدیدی را به عمل آوردند.