انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: ! در 17 تیر 1392، 09:51 بظ
-
دوستان من میخوام تو چند روزی که بیکارم کنترل ورژن با subversion رو یاد بگیرم اما دو تا سوال :
۱ - چه برنامه ایی لازم دارم برای اوبونتو؟
۲ - بجز اون کتاب رایگان نشر اوریلی که برای آموزش SVN هست منبع خوب و ترجیحا ویدیویی آیا سراغ دارید که معرفی کنید؟
و
۳ - اگر قبلا با این سیستم ورژن کنترل کار کردید میشه مختصری از کلیت سیستمش توضیح بدید که یک کانسپتی داشته باشم واسه شروع؟
مرسی که جواب میدید و دم شما گرم :-\"
-
شاید بی ربط باشه ولی باز خودت ببین:
نحوه دریافت سورس کد (checkout) از طریق svn در netbeans [دانلود] (http://kulug.ir/wp-content/uploads/2012/12/3_netbeans_svn_checkout%5B3_min%5D.mp4)
نحوه ارسال کد به سرور (commit) از طریق svn در netbeans [دانلود] (http://kulug.ir/dl/4_netbeans_svn_commit%5B4_min%5D.mp4)
نحوه بروز رسانی کد (update) و رفع اختلال (resolve conflict) از طریق svn در netbeans [دانلود] (http://kulug.ir/dl/5_netbeans_svn_resolve_conflict%5B3_min%5D.mp4)
-
الان سیستم بهتری به نام GIT وجود داره و بهتره که GIT رو یاد بگیرید.
این کتاب خوبیه: لینک (http://git-scm.com/book)
-
الان سیستم بهتری به نام GIT وجود داره و بهتره که GIT رو یاد بگیرید.
این کتاب خوبیه: لینک (http://git-scm.com/book)
نیکسویین جان git رو که مدت زیادیه کار میکنم و همه پروژه هام رو git ان. SVN رو از سر کنجکاوی میخواستم یخورده راجه بش بدونم ;)
-
http://svnbook.red-bean.com/
http://lmgtfy.com/?q=svn+book
;)
و شاید هم این:
http://showmedo.com/videotutorials/video?name=950000&fromSeriesID=95
-
اگه git بلدید. mercurial یا همون hg رو هم یاد بگیرید
الآن دیگه همه از Distributed Version Control ها استفاده میکنن (مگه پروژههایی که قبل از اینا استارت خورده باشن)
svn و csv و ... که Distributed نیستن دیگه دارن منسوخ میشن...
-
http://svnbook.red-bean.com/
http://lmgtfy.com/?q=svn+book
;)
و شاید هم این:
http://showmedo.com/videotutorials/video?name=950000&fromSeriesID=95
:o کتابشو گفتم که یجور شروع کرده بود که انگار... یا شایدم بخاطر عادتم به گیت بود اما به هر حال تو اوبونتو نتونستم نصب و استفاده کنم
اگه git بلدید. mercurial یا همون hg رو هم یاد بگیرید
الآن دیگه همه از Distributed Version Control ها استفاده میکنن (مگه پروژههایی که قبل از اینا استارت خورده باشن)
svn و csv و ... که Distributed نیستن دیگه دارن منسوخ میشن...
خب از کجا شروع کنم؟
خواهش میکنم که نگید usethefuckinggoole.com :)
-
خواهش میکنم که نگید usethefuckinggoole.com :)
اتفاقا می گم! برو از همین لینکی که دادی شروع کن که برسی به: http://en.wikipedia.org/wiki/List_of_revision_control_software#Distributed_model
جناب انتشارات اوریلی یکی درباره مرکوریال داره!
-
خب SVN و گیت هر دو خوبند. ولی SVN برای پروژه های بزرگ با مشارکت کنندگان زیاد مناسب تر هست.
مثلا الان بررسی کنید. میبینید عموم پروژه های بزرگ علاوه بر git ، یک مخزن SVN هم دارند. برای مثال، پروژه FreeBSD یا حتی کرنل لینوکس.
-
خب SVN و گیت هر دو خوبند. ولی SVN برای پروژه های بزرگ با مشارکت کنندگان زیاد مناسب تر هست.
مثلا الان بررسی کنید. میبینید عموم پروژه های بزرگ علاوه بر git ، یک مخزن SVN هم دارند. برای مثال، پروژه FreeBSD یا حتی کرنل لینوکس.
فکر میکنم اون بخاطر سازگاری هست (چون svn قدیمیتره و خیلیها هنوز git بلد نیستن)
نه بخاطر اینکه svn بهتره. تقریباً svn هیچ مزیت فنی بر git نداره
ضمناً از ابزارهایی مثل git-svn استفاده میکنن برای برقراری ارتباط بین مخزن git و svn
ولی مخزن اصلی احتمالاً اون git هست
-
خود لینوس توروالدز به git بیشتر افتخار میکنه تا کرنل لینوکس.
چون کرنل لینوکس، یه پیادهسازی آزاد از یونیکس بود و خلاقیت اساسی (توی طراحی و الگوریتم) زیاد نداشت
ولی git (از لحاظ طراحی) یه جورایی یه انقلاب در سیستمهای کنترل ورژن بود که توسط خود لینوس توروالدز طراحی شد و بقیه هم بعداً کمک کردن!
-
کار کردن با این برنامه ها در سطح معمولی بسیار مشابه هست و فقط کافیه کار کردن با یکی از اونها رو یاد بگیرید. اگر git رو بلدید، svn رو هم تا حد زیادی بلدید. svn یه کتاب راهنمای رسمی خیلی کامل داره که میتونی از سایتش دانلود کنی. کرنل لینوکس فقط یدونه committer داره که خود آقای توروالدز هست اما صدها توسعه دهنده (developer) داره. git به همین دلیل متمرکز طراحی نشده و یه مخزن دقیقا کپی مخزن اصلی هست. اما پروژه FreeBSD که همین امسال از cvs به svn مهاجرت کرد، صدها توسعه دهنده و دهها committer داره و یه سیستم متمرکز مثل svn برای توسعه اون مناسب تر هست و یکی از خوبیهاش اینه که باهاش میشه فقط یه قسمت خاص از repo رو checkout کرد اما با git باید کل مخزن checkout بشه. کلا svn و git فرق اصلیشون همینه یعنی svn ساختار متمرکز داره و git نه. repo های svn رو میشه با برنامه svn2git به قالب git تبدیل کرد اما برعکسش ممکن نیست. من در سطح شخصی از cvs برای به اشتراک کذاری فایلهای پیکربندی و تنظیمات و فایلهای دیگه توی شبکه استفاده میکنم و cvs هر چند مشکلات بزرگی داره (مثلا پوشه ها رو نسخه بندی نمیکه و commitها هم اتمی نیستند. (یا همه یا هیچی)) اما برای من کافی هست چون توی اکثر سیستم عاملها به صورت پیشفرض هست و نیازی به نصب برنامه اضافه نیست. فقط میخوام بگم این برنامه ها تا حد زیادی شبیه هم هستند و کافیه یکی رو خوب یاد بگیرید. در ضمن svn هم منسوخ شده نیست. این حرف یکم غیر منطقی به نظر من اومد. فرق اصلیش با git همون ساختار متمرکزش هست که برای پروژه هایی که چند تا committer دارن بیشتر مناسبش کرده. لازم به ذکره که من با git کار نکردم و فقط در موردش خوندم.
-
git هم برای چند Committer خوبه. ولی چیزای بهتری هست. مثلا GNU Bazaar که فکر کنم توسط اوبونتو ارائه شده.
-
چند سالی است از git و github استفاده می کنم! git منابع آموزش عالی (فیلم و کتاب و مقالات و فروم های پشتیبانی و irc) داره. بهتر بودن به تنهایی کافی نیست. باید مستندات آموزشی کافی وجود داشته باشه. لانچپد که از بازار استفاده می کنه با سایتهایی که دسترسی git ارایه می کنند قابل مقایسه نیست. رابط وب گیتی ها خیلی سرتر از لانچپد است، این ویژگی جزیی از منابع نرم افزار گیت به حساب آورده می شه. git فراگیرتر از mercurial و بازاره. چرا گنوبازار کنترل ورژن بهتری است؟
-
ميشه در مورد mercurial توضيح بدين ؟
-
خوب لینوکس تنها یک Committer نداره، تعداد بیشتری داره، همینطور که توی کرنل FreeBSD هم افراد زیادی نمیتونند Commit کنند. تعداد دقیق رو نمیدونم، باید توی Repositoryها نگاه کرد.
Bazaar دستورات و روند کاربردی سادهتری داره، ولی خوب GIT نسبت به بقیه، بازدهی (از لحاظ سرعت) بالاتری داره و سیستم غیر متمرکزش عموما مفیده.
برای پروژههایی که در حال حاضر در حال کار با SVN هستند و روند کاری خودشون رو بر اساس SVN توسعه دادند، شاید نیازی نباشه حتما رو به GIT بیارند. عموما میگن سیستمی که داره بدون مشکل کار میکنه رو نباید دست زد! ولی برای پروژههای جدید، عموما همه از GIT استفاده میکنند.
-
git هم برای چند Committer خوبه. ولی چیزای بهتری هست. مثلا GNU Bazaar که فکر کنم توسط اوبونتو ارائه شده.
دوست عزیز، bazaar توسط شرکت کانونیکال (سازندهٔ اوبونتو) ساخته شده و هیچ ارتباطی به gnu نداره. فقط مجوزش GPL هست ولی خود پروژه ربطی به پروژهٔ گنو نداره
http://bazaar.canonical.com
در ضمن از لحاظ فنی git خیلی بهتر از bzr هست.
فقط bzr خوبیش اینه که با پایتون نوشته شده ;)
-
برای پروژههایی که در حال حاضر در حال کار با SVN هستند و روند کاری خودشون رو بر اساس SVN توسعه دادند، شاید نیازی نباشه حتما رو به GIT بیارند. عموما میگن سیستمی که داره بدون مشکل کار میکنه رو نباید دست زد! ولی برای پروژههای جدید، عموما همه از GIT استفاده میکنند.
سوییج کردن به یه ورژن کنترل جدید که تغییری توی کد و نحوهٔ اجرای برنامه ایجاد نمیکنه
این تنبلی بعضی توسعهدهندههاش هست که احتمالاً حوصلهٔ یاد گرفتن git رو ندارن.
وگرنه کدوم برنامهنویسی هست که مثلاً به مسافرت نره و احتمال آفلاین بودن در طی یک یا چند روز رو نداشته باشه و نخواد توی اون مدت تغییراتی روی برنامه بده.
واقعاً به نظر من برنامهنویسی که کار با DVCS ها رو خوب بلد نباشه یا عملاً استفاده نکنه، برنامهنویس کمسواد یا کمتجربهای هست.
خودم اون زمان که کمتجربه بودم، چند سال بدون استفاده از هیچ ورژنکنترلی برنامهنویسی میکردم. و الآن حسرت میخورم که چرا زودتر گیت رو یاد نگرفتم و چرا زودتر پروژههای بزرگ و حتی برنامههای کوچیکم رو روی گیت نیاوردم (تاریخچهٔ تغییراتی که قبلش دادم دقیق مشخص نیست)
-
دوست عزیز، bazaar توسط شرکت کانونیکال (سازندهٔ اوبونتو) ساخته شده و هیچ ارتباطی به gnu نداره. فقط مجوزش GPL هست ولی خود پروژه ربطی به پروژهٔ گنو نداره
http://bazaar.canonical.com
همون لینکی رو که دادی نگاه کردی؟
Part of the GNU Project, Bazaar is free software sponsored by Canonical
.
-
برای پروژههایی که در حال حاضر در حال کار با SVN هستند و روند کاری خودشون رو بر اساس SVN توسعه دادند، شاید نیازی نباشه حتما رو به GIT بیارند. عموما میگن سیستمی که داره بدون مشکل کار میکنه رو نباید دست زد! ولی برای پروژههای جدید، عموما همه از GIT استفاده میکنند.
سوییج کردن به یه ورژن کنترل جدید که تغییری توی کد و نحوهٔ اجرای برنامه ایجاد نمیکنه
ممکنه در کنار اون برنامه اسکریپتهایی باشه که برای SVN نوشته شده باشه و اونوقت باید این اسکریپتها عوض بشه، برای همین در بعضی مواقع تغییر سیستم از SVN به GIT زمان زیادی میبره و ممکنه حتی باعث بعضی اشکالات در سیستمی که بدون مشکل داره کار میکنه، بشه.
برای مثال ما اسکریپتهایی داریم که برای استفاده از SVN توی Websiteها و Databaseها نوشتیم و خوب تغییر این اسکریپتها گاهی کار زمانبری هست و به صرفه نخواهد بود.