View Full Version : svn چیست؟
1developer
جمعه 22 آبان 1388, 19:21 عصر
ّبا سلام!
من و چندی از دوستان قصد فارسی سازی یکی از نرم افزار های متن باز رو داشتیم. در راهنمای ترجمه این نرم افزار آمده است که "نرم افزار ما برای توسعه از Subversion (SVN) استفاده می کنه.و شما باید از یک svn client استفاده کنید!" من برنامه ای را به اسم rapid svn دانلود کردم ولی به نتیجه ای نرسیدم. می خواستم ببینم من باید از کدوم برنامه برای استفاده از کد های نرم افزار و فارسی سازی آن استفاده کنم.
راستی Svn یه پروتکل هست؟
vcldeveloper
شنبه 23 آبان 1388, 01:11 صبح
SVN یک نرم افزار Version Control هست. این نرم افزار این امکان را فراهم میکنه که شما یا سایر برنامه نویسان دخیل در یک پروژه به سورس کدهای پروژه دسترسی داشته باشید، و تغییرات مورد نظرتان را بر روی کدها اعمال کنید. این نرم افزار تغییرات اعمال شده را برای هر یک از فایل ها ثبت میکنه، به این ترتیب میشه هر زمان که لازم بود، تغییراتی را برگرداند، یا برنامه نویسی که یک تغییر بخصوص را در یک فایل اعمال کرده بود، مشخص کرد، یا در صورتی که چند برنامه نویس بر روی یک فایل مشترک کار می کنند، از تداخل در کار آنها جلوگیری کرد. درباره اینگونه از نرم افزارها می تونید در ویکیپدیا مطالعه کنید.
شما باید ابتدا یک SVN Client نصب کنید. معروف ترین کلاینت برای SVN در ویندوز نرم افزار TortoiseSVN هست که رابط کاربری آن زبان های مختلفی از جمله فارسی را پشتیبانی می کند. هم SVN و هم TortoiseSVN نرم افزارهای Open-source هستند، در نتیجه مشکلی برای دانلود TortoiseSVN نخواهید داشت.
بعد از نصب، برای اینکه بتوانید کار روی پروژه مورد نظرتان را شروع کنید، یک پوشه خالی ایجاد کنید، و در داخل آن راست-کلیک کنید، و گزینه SVN Checkout را انتخاب کنید. TortoiseSVN از طریق منوی راست-کلیک Windows Explorer عمل میکنه، در نتیجه شما می توانید همیشه با راست کلیک کردن در داخل یک پوشه یا بر روی یک پوشه یا فایل، به گزینه های آن دسترسی داشته باشید.
بعد از انتخاب SVN Checkout، باید مسیر مخزن پروژه را به TortoiseSVN بدید. در SVN فایل ها در یک مخزن مرکزی نگهداری میشند. هر برنامه نویس یک کپی از فایل های مورد نیازش دریافت میکنه، تغییراتش را بر روی آن فایل ها اعمال میکنه، و تغییرات را در مخزن مرکزی ثبت میکنه.
اگر مخزن پروژه نیاز به username\password داشته باشه، باید این اطلاعات را هم وارد کنید.
با پایان عمل Checkout، فایل های موجود در مخزن در پوشه مربوطه ظاهر میشند، و یک علامت تیک سبز بر روی آیکن پوشه نمایش داده میشه. این یعنی شما فایل ها را دریافت کردید، و فایل های دریافتی شما تفاوتی با فایل های موجود در مخزن ندارند.
حالا شما می تونید روی این فایل ها کار کنید، و آنها را تغییر بدید. هر فایلی که تغییر میدید، آیکن آن از تیک سبز به علامت تعجب قرمز تغییر میکنه که نشان دهنده فایل های تغییر یافته هست.
هر زمان که خواستید تغییرات تان را ثبت کنید، روی پوشه راست کلیک کنید، و از منوی مربوط به TortoiseSVN، گزینه Commit را انتخاب کنید. این کار باعث ارسال تغییرات شما به مخزن می شود.
اگر تغییرات شما با تغییراتی سایر کاربران در همین فایل ها اعمال کردند، تداخل داشته باشد، عمل Commit متوقف می شود، و TortoiseSVN برای شما مشخص می کند که چه فایل هایی تداخل دارند. شما می توانید با مقایسه تغییرات خودتان با تغییرات سایر کاربران، تداخل را برطرف کنید.
اگر چند کاربر بطور همزمان بر روی چند فایل کار می کنند، هر کاربر می تواند با استفاده از گزینه Update فایل های خودش را بروز کند و از تغییرات سایر کاربران مطلع شود.
SVN و TortoiseSVN هر دو Help بسیار خوبی دارند که می تواند به شما کمک بسیار زیادی بکند.
اوبالیت به بو
شنبه 23 آبان 1388, 10:44 صبح
جناب کشاورز آیا مطلبی درباره نحوه نصب در لینوکس دارید؟
vcldeveloper
شنبه 23 آبان 1388, 17:09 عصر
جناب کشاورز آیا مطلبی درباره نحوه نصب در لینوکس دارید؟
نه متاسفانه، من از لینوکس برای توسعه نرم افزار استفاده نمی کنم، برای همین هم در آن SVN نصب نکردم.
ولی نصب SVN در لیونکس در Help موجود برای SVN کاملا تشریح شده. توی اینترنت هم درباره اش مطلب زیاد هست.
البته اگر منظورتان نصب TortoiseSVN هست، TortoiseSVN فقط تحت ویندوز کار میکنه. کلاینت های دیگه ایی هستند که می تونید از آنها در لینوکس استفاده کنید، مثلا کلاینت هایی هستند که روی Eclipse نصب میشند، و می تونید در داخل محیط توسعه خودتان از آنها استفاده کنید.
Microname
شنبه 23 آبان 1388, 21:25 عصر
آیا مطلبی درباره نحوه نصب در لینوکس دارید؟
کافیه در ترمینال این عبارت ها رو تایپ کنید و خودش راهنمایی میکنه(اتوماتیک نصب میشه با دستوری که اعلام میکنه) و یا از سایتشان بسته مورد نظر رو بگیرید.
اینها لیستی از ابزارها
Git (http://git-scm.com/)
BitKeeper (http://www.bitkeeper.com/)
Subversion (http://subversion.tigris.org/)
Mercuria (http://go2.wordpress.com/?id=725X1342&site=amirreza.wordpress.com&url=http%3A%2F%2Fmercurial.selenic.com%2F)l
Monotone (http://www.monotone.ca/)
Bazaar (http://bazaar-vcs.org/)
CVS (http://www.nongnu.org/cvs/)
Mamdos
شنبه 23 آبان 1388, 22:36 عصر
کافیه در ترمینال این عبارت ها رو تایپ کنید و خودش راهنمایی میکنه(اتوماتیک نصب میشه با دستوری که اعلام میکنه) و یا از سایتشان بسته مورد نظر رو بگیرید.
اینها لیستی از ابزارها
Git (http://git-scm.com/)
BitKeeper (http://www.bitkeeper.com/)
Subversion (http://subversion.tigris.org/)
Mercuria (http://go2.wordpress.com/?id=725X1342&site=amirreza.wordpress.com&url=http%3A%2F%2Fmercurial.selenic.com%2F)l
Monotone (http://www.monotone.ca/)
Bazaar (http://bazaar-vcs.org/)
CVS (http://www.nongnu.org/cvs/)
البته اینها سیستمهای کنترل نسخهی مختلفی هستند و کارخواه (کلاینت) سابورژن (SVN) نیستند. شما برای کار با یک مخزن svn نیاز به کارخواه svn دارید که ممکن است گرافیکی (مثل TortoiseSVN) یا خط فرمانی (مثل دستور svn در خط فرمان لینوکس) باشد.
در بیشتر لینوکسها به طور پیشفرض دستور svn وجود دارد و میتوانید در خط فرمان از آن استفاده کنید. اگر تایپ کنید svn معلوم میشود که داریدش یا نه.
اگر مخزن نرمافزار متنباز مربوطه عمومی باشد (نیاز به نام کاربری و گذرواژه نداشته باشد، که معمولاً برای خواندنِ صرف همینطور است) میتوانید از دستور زیر برای checkout (یا همان بارگیری کد) استفاده کنید:
svn checkout <repository address> <target directory>
که در آن نشانی اینترنتی مخزن را (چیزی شبیه http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x که البته ممکنه اولش به جای http، پیش از دونقطه svn باشه) که حتماً در وبگاه پروژه آمده است و نشانی پوشهای که میخواهید فایلها را در آن ذخیره کنید، به ترتیب به جای <repository address> و <target directory> جایگذاری کنید.
عمل checkout کردن در بار نخست خیلی طول میکشد (بسته به حجم فایلهای نرمافزار مورد نظر و سرعت اتصال اینترنتتان) ولی میتوانید وسطش قطع کنید، و اگر بعداً خواستید کاملش کنید، همان دستور فوق را وارد کنید تا به طور خودکار بقیهی فایلها را بارگیری کند. ضمناً هر چند وقت یکبار برای بهروزرسانی فایلهایتان هم میتوانید از دستور svn update (که از داخل پوشهی مقصد که قبلاً داده بودید فراخوانی میشود) استفاده کنید و دیگر نیازی به svn checkout نیست.
همچنین اگر دقیقاً آدرس شاخهای از مخزن را نمیدانید میتوانید از دستور svn list استفاده کنید (شبیه ls در خط فرمان لینوکس):
svn list http://svn.apache.org/repos/asf/httpd/httpd/branches/
تا محتویات پوشهی مورد نظر مخزن (پوشهی branches در مثال فوق) را به شما نشان بدهد، تا بتوانید تصمیم بگیرید که دقیقاً از کجا checkout کنید.
ضمناً پیشنهاد میکنم در مورد مفاهیم مطرح در کنترل نسخه و سابورژن مثل branch و trunk و مخزن یا repository کمی جستجو کنید و مطلب بخوانید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.