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


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

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

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

   ورود کاربران




 


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

آشنایی با CVS

(1532 مجموع کلمات موجود در متن)
(6931 بار مطالعه شده است)  نسخه چاپی
وقتی با دنیای گنو/لینوکس آشنا می شوید. سعی می کنید درباره آن بیشتر بدانید. از هر موقعیتی برای آشنایی بیشتر با طرز کار سیستم عامل و فرهنگ آن استفاده می کنید. یکی از سوالاتی که بعد از مدتی برای شما پیش می آید. این است که متوجه می شوید تعداد زیادی از پروژه هایی که می بینید٬ توسط گروهی از برنامه نویسان نوشته می شوند. در مراحل بعدی شاید متوجه شوید که این افراد در سرتاسر دنیا از نظر جغرافیایی پراکنده هستند. حال چطور می توان از راه دور یک پروژه زیبا ٬ با شکوه و از نظر فنی کاملا مناسب و حرفه ای را از راه دور دنبال کرد! این سوال من را وادار کرد تا درباره آن تحقیق کنم. ابزارهایی مانند email و لیستهای پستی در بستر مناسبی همچون اینترنت٬ این کار را آسان کرده اند. اما آیا فقط به واسطه آنها می توان به تنهایی از پس کار برآمد ؟ یکی دیگر از جوابهایی که در این راه به آن رسیدم٬ چیزی بود به نام CVS. شاید این کلمه برای شما آشنا باشد و یا برای یک حرفه ای ابزاری مناسب که سالها از آن استفاده می کند. اگر شما با این موضوع آشنا نیستید ٬ این مقاله می تواند شروعی برای آشنایی با این موضوع باشد. شاید روزی شما هم وارد دنیایی مشابه دنیای برنامه نویسان شدید. برای CVS کتابهای متعددی وجود دارند و من قصد ندارم وارد دنیایی از دستورات و روشها برای CVS بشوم. چراکه آنوقت باید روی کتاب قطوری کار کرد. پس تنها به معرفی آن و طرح نمونه ای برای آشنایی مختصر با طرز عملکرد آن می پردازیم.
اما این کلمه CVS به چه معنایی است؟ (Concurrent Versions System) کنترل نسخه های متفاوت ! خوب شاید برگردان آن به فارسی چندان مناسب نباشد. اما در یک جمله ٬ می توان گفت که برای ذخیره کردن تاریخچه کدها یا متون شما است. تاریخچه ! شما متنی دارید و آن را برای اولین بار ایجاد کرده اید. حال هر از گاهی آن را تغییر می دهید و آن را به روز می کنید. اگر تغیراتی را که اعمال کرده اید٬ ذخیره بشوند و هر وقت خواستید بتوانید از این تغییرات مطلع باشید. می تواند در موردی مانند دنبال کردن باگهای یک برنامه مفید باشد. می توانید گذشته را مرور کنید و ببینید که چه چیزی مشکل را ایجاد کرده بود.
ذخیره کردن نسخه های متفاوت از فایل می تواند وقت و زمان زیادی را از شما بگیرد. اما CVS همه را در یک فایل ذخیره می کند. شما نیازی به حفظ و نگهداری شماره هایی که این فایل را به مرور ویرایش می کنید٬ نخواهید داشت. هر زمان که بخواهید می توانید این روند را از روی گزارش ها پیگیری کنید.
اگر شما عضوی از یک گروه هستید و روی یک پروژه کار می کنید ٬ CVS برای شما ابزار مناسبی خواهد بود. می توانید به طور همزمان روی یک پروژه کار کنید. بعضی از رابطها خودشان سعی می کنند تا جلوی ویرایش همزمان را از دو نفر بگیرند. می توانید به صورت جداگانه روی یک پروژه کار کنید و خود CVS بعد از پایان کار ٬ آن را جمع و جور می کند.
پروژه CVS با نوشتن یکسری اسکریپت(Shell script) از سوی Dick Grune برای comp.sources.unix از نسخه شش به بعد در سال 1986 میلادی شروع شد. که می توان گفت که این کدها در CVS امروزی قرار ندارند و حتی قسمتی از آن را تشکیل نمی دهند. در سال 1989 ٬ Brian Berliner طراحی و کدنویسی آن را انجام داد و بعدها Jeff Polk به کمک او آمد.
آشنایی با طرز کار CVS
برای اینکه با طرز کار CVS آشنا شوید. آن را از دو سمت client و server نگاه می کنیم. تا بتوانیم تقریبا آنچه که اتفاق می افتد را ببینیم. مسائل امنیتی و نحوه مدیریت ٬ کارایی و اطمینان لازم را ایجاد می کند.
Server
اولین چیزی که برای مدیرت فایلها نیاز داریم ٬ به اصطلاح یک مخزن است. این مخزن یا همان دایرکتوری ٬ برای قرار دادن فایلهای پروژه ها هستند. بنابراین ایجاد مخزن اولین قدم است. شما می توانید آن را در هر جایی که بخواهید ایجاد کنید. بسته به اینکه کار شخصی خودتان یا شبکه محلی یک دفتر را انجام می دهید و یا اینکه قرار است روی اینترنت باشد و تعداد بیشتری به آن دسترسی داشته باشند. خوب به عنوان مثال یک فایل متنی را با دوستانم روی رایانه شخصی خودم به اشتراک می گذارم. آنها می توانند با کد کاربری خودشان از رایانه من استفاده کنند. چون من از پارتیشن 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 1
drwxrwxr-x 3 mohammad mohammad 1000 2005-04-03 03:08 CVSROOT

همانطور که می بینید بعد از اینکه از دستور CVS برای ایجاد مخزن استفاده کردم. دایرکتوری با نام CVSROOT ایجاد شده است. برای اینکه فایل را در جایی قرار دهیم از یک قسمت برای آن استفاده می کنم. فرض می کنیم که در مورد یک ماژول است. بنابراین یک دایرکتوری دیگر به نام mod1 می سازم. مخزن ما آماده است. البته این مخزن کاملا خالی است. در قسمت بعدی به عنوان نمونه یک فایل به آن اضافه می کنیم.

mohammad@debian:~/project$ ls -l
total 1
drwxrwxr-x 3 mohammad mohammad 1000 2005-04-03 03:08 CVSROOT
drwxr-xr-x 2 mohammad mohammad 48 2005-04-03 03:19 mod1

Client
ما می خواهیم از همان مخزن برای انجام کارها استفاده کنیم. پس اول نیاز داریم تا همانند آن را داشته باشیم. پس یک دایرکتوری ایجاد می کنیم و دستور زیر را اجرا می کنیم.

mohammad@debian:~$ mkdir work
mohammad@debian:~$ cd work
mohammad@debian:~$ ls
mohammad@debian:~$ cvs -d /home/mohammad/project co mod1
cvs checkout: Updating mod1
mohammad@debian:~/work$ ls
mod1

اگر همه چیز به درستی پیش برود. باید یک دایرکتوری به همان نام ماژولی که در نظر گرفتیم ٬ ایجاد می شود. اگر قبلا این ماژول یا دایرکتوری شامل فایلی بود٬ شما آن را در داخل دایرکتوری mod1 مشاهده می کردید. وقتی CVS یک پروژه روی اینترنت را اجرا می کنید٬ قاعدتا فایلهایی هم به همراه آن ایجاد می شوند.
اضافه کردن یک فایل
برای شروع کار ما نیاز به اضافه کردن فایل داریم.

mohammad@debian:~/work/mod1$ ls
CVS
mohammad@debian:~/work/mod1$ touch myfile.c
mohammad@debian:~/work/mod1$ ls
CVS myfile
mohammad@debian:~/work/mod1$

شما می توانید در داخل این فایل یک برنامه کوچک را وارد کنید ٬ تا برای شما قابل لمس باشد. بعد آن را با دستور add اضافه می کنیم. این دستور فایل myfile.c را برای اضافه شدن به ماژولی که روی server وجود دارد علامت گذاری می کند.

mohammad@debian:~/work/mod1$ cvs add myfile.c
cvs add: `myfile.c' has already been entered

توجه: تغییراتی که شما ایجاد می کنید تنها بر روی دایرکتوری شخصی خودتان اعمال می شود. و بعدا باید آن را به روز رسانی کنید.
پس اگر ناراحت شدید که ای داد بیداد نباید این فایل را ایجاد می کردید یا تغییرات لازم را اعمال نکردید. می توانید فایل را حذف کنید.

mohammad@debian:~/work/mod1$ ls
CVS myfile.c
mohammad@debian:~/work/mod1$ rm myfile.c
mohammad@debian:~/work/mod1$ ls
CVS
mohammad@debian:~/work/mod1$ cvs rm myfile.c
cvs remove: removed `myfile.c'
mohammad@debian:~/work/mod1$

بعد از اینکه فایلهایتان را ایجاد و یا حذف کردید. می توانید تغییرات را ثبت کنید. و صد البته برای ثبت شدن آنها بر روی server باید این کار را انجام دهید.

mohammad@debian:~/work/mod1$ cvs commit

اگر شما تغییراتی داده باشید٬ در هنگام اجرای این دستور می توانید دلیل یا نوشته خودتان را بنویسید. توجه کنید ٬ بهتر است همیشه اینکار را بکنید. چرا ؟ چون تنها در زمانی که با یک فایل کار می کنید و حجم کاری وجود ندارد. نیاز مبرم به آن را احساس نمی کنید. اما زمانی که با یک گروه کار می کنید و یا اینکه حجم کار شما زیاد است. بعد از مدت زمانی این نوشته های کوچک حکم زمان یا همان طلا را برای شما خواهند داشت.
به روز رسانی دایرکتوری شما با مخزن
تغییراتی که شما روی کدها اعمال کردید و یا دیگران اعمال کردند. چطور شما و یا دیگران می توانند از آخرین تغییرات با خبر شوند. کافی است با دستور زیر به روز رسانی کنید.

mohammad@debian:~/work/mod1$ cvs update
cvs update: Updating .

با اینکار اطلاعات از روی server به رایانه شما انتقال پیدا می کند. شما و یا فرد دیگری می تواند از آخرین تغییرات با خبر شود. البته با این دستور هیچ اطلاعاتی از روی رایانه شما به server منتقل نمی شود. برای این کار باید از همان دستور CVS commit استفاده کنید. برای تمرین ٬ همانطور که جلوتر گفته شد. کد ساده ای را در فایل بنویسید و تغییرات را دو سمت client و server دنبال کنید. این متنی که خواندید تنها آشنایی با CVS بود. برای آشنایی بیشتر می توانید از کتابهای متعددی که در این زمینه وجود دارند و همینطور بهترین مرجع ٬ همان man فایلها استفاده کنید.

mohammad@debian:~/work/mod1$ man cvs

روی اینترنت می توانید از CVSHOME.ORG استفاده کنید. این برنامه بسیار قوی و سودمند است. اما شما باید دستورات و گزینه های زیاد آن را بلد باشید ! از روی آدرس http://www.wincvs.org به دنبال یک برنامه گرافیکی برای پلتفورم مورد استفاده خودتان بگردید. شاید برای استفاده شما نیازی به دستورات خط فرمان نباشد.
توجه: کدهای این برنامه روی توزیع دبیان سارژ امتحان شدند. برای نصب CVS کافی است آن را با دستور apt-get install cvs نصب کنید.

apt-get install cvs

مترجم : محمد درویش
منبع: http://www.gnu.org/software/cvs/manual/html_mono/cvs.html
تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.