این اتفاق آنجا بیشتر آزاردهنده میشود که بدانیم نرمافزارهای زیادی در جامعه متنباز با کمک ایرانیها و یا توسط ایرانیها در این وبسایت توسعه مییابند و محدود کردن توسعهدهندگان و کاربران ایرانی برای دسترسی به این وبسایت، واقعا افسوسبرانگیز است. چرا که انتظار نمیرفت این وبسایت از دستور دولت آمریکا، آنهم درست پس از سخنرانیهای جنجالبرانگیز هیلاری کلینتون در باب »آزادی بیان« در اینترنت پیروی کند. گمان میرود تنها کسانی که از این اقدام متضرر شوند، کاربران داخلی باشند و تنها کسی که کاری از دستش برمیآید، همین کاربران باشند. اما بهدلیل اینکه حل مشکل و رفع محدودیت برای کاربران داخلی، نیازمند زمان است، بهجا دیدیم عدهای دیگر از سرویسهای رایگان میزبانی برنامهنویسان آزاد را معرفی و مزایا و ضعفهای آنها را بررسی کنیم. البته طبیعی است که با این روند، ممکن است همین فردا به این وبسایتها هم دسترسی نداشته باشید بنابراین با مسوولیت خودتان و همواره با تهیه پشتیبان، از این وبسایتها استفاده کنید.
1 - لانچپد
با لانچپد هر کسی میتواند در پروژه شما سهیم باشد. همچنین میتوانید تعیین کنید که چه کسی در پروژه شما باشد یا نباشد. ضمن آنکه میتوانید تعیین کنید که چه کسی میتواند در بسته توسعه شما نقش داشته باشد.
با حضور بازار، هر کسی میتواند برای خود یک خط توسعه تعیین کند و در کنار توزیع اصلی شما، توزیع فرعی داشته باشد. این توزیع فرعی میتواند از چند خط آزمایشی یا حتی یک امکان جدید باشد. میتوانید از این امکان در پروژه اصلی نیز استفاده کنید. همچنین در صورتی که کد شما با CVS یا SVN کار میکند میتوانید آنرا داخل لانچپد اضافه کنید.
لانچپد یک وبسرویس RESTful دارد که با کمک آن میتوان از طریق برنامه با کل وبسایت ارتباط برقرار کرد و اطلاعات مورد نظر را دریافت کرد. پروژههای مایسهکوئل، اوبونتو و زوپ از جمله پروژههای معروفی هستند که در این وبسایت میزبانی میشوند.
http://www. launchpad. net
2 - بیتباکت
بیتباکت بر مبنای سیستم کنترل نگارش مرکوریال کار میکند. مرکوریال ابزاری است که توسط زبان برنامهنویسی پایتون پیادهسازی شده است و در اصل برای سیستمعامل لینوکس نوشته شده است، اما بعد از مدتی به کلیه سیستمهایعامل ویندوز، مکو دیگر سیستمهای یونیکسی منتقل شده است. مرکوریال برنامهای است که از طریق خط فرمان کنترل میشود، اما یک رابط کاربری گرافیکی برای آن نوشته شده است. تمام دستوراتی که به این برنامه ارسال میشود، به یک هسته بهنام hg منتقل میشود. گفتنی است hg نماد شیمیایی عنصر جیوه (مرکوری) است.
بیتباکت، از پروتکلهای HTTP و SSH پشتیبانی میکند و برای همه چیز، RSS دارد. بدین ترتیب میتوان به سادگی پروژهها را رهگیری کرد و از آنها نگارشهای جدیدی ایجاد کرد. برخی از پروژههای معروف بیتباکت، از قرار زیرند:
زبان برنامه نویسی پایتون، Wget، OpenJDK، Netbeans و OpenSolaris، اینتل و...
http://bitbucket. org
3 - جیتهاب
جیتهاب که اخیرا بسیار مطرح شده است، امکانات جالبی ارائه کرده است که از نظر میگذرانیم:
شاخهگیری محلی
میتوانید یک شاخه برای امتحان یک ایده ایجاد کنید، چند تغییر کوچک بدهید، به محل قبلی باز گردید و آن را وصله کنید، به محل آزمایش برگردید و آن را ادغام کنید.
میتوانید شاخهای داشته باشید که فقط شامل چیزهایی باشد که در تولید عرضه خواهد شد، شاخه دیگری برای آزمایش داشته باشید و چندین شاخه کوچک برای کارهای روزانه خود داشته باشید.
میتوانید برای هر ویژگی جدیدی که ایجاد میکنید، یک شاخه جدید ایجاد کنید و بدون دردسر بین آنها حرکت کنید، بعد هر کدام از شاخهها را که مایل نیستید حذف کنید و یا به شاخه اصلی اضافه کنید.
میتوانید شاخه جدیدی ایجاد کنید و آنرا آزمایش کنید، اگر کار نکرد، بدون اینکه اتفاق ناگواری بیافتد، شاخه را بهکل حذف کنید.
همه چیز محلی است
البته در سه موردی که مطرح کردیم، کنترل کد منبع برنامه بهصورت محلی انجام میشود و بعد از اعمال تغییرات نهایی به سرور منتقل میشود، اما در جیت این کار سادهتر صورت میگیرد. خصوصا بهخاطر همین ماجرای سورسفورج، میتوان نگران دادههای از دست رفته نبود و همواره آخرین نگارش را روی هارددیسک داشت.
سرعت بالا
جیت سریع است. حتی طرفداران پروپا قرص دیگر سیستمها هم، این عنوان را به جیت میدهند. سرعت جیت تا حدی بهاین موضوع بر میگردد که قرار بود از ابتدا جیت با هسته لینوکس کار کند و این یعنی بازدهی آن با مخازن بزرگ امتحان شده است. دلیل دوم آنکه؛ جیت را با زبان C نوشتهاند که خود، زبان سریعی است. در زیر مقایسهای از جیت با دیگر کنترل کنندههای سورس را مشاهده میکنید:
حجم کم
جیت کوچک است. در مقایسه با بازار، مرکوری و SVN، جیت تقریبا 40درصد کمتر از همنوعان خود، فضا اشغال کرده است.
ناحیه نمایشی
برخلاف دیگر سیستمها، جیت بخشی دارد که به آن، Staging Area میگویند. این ناحیه نمایشی، بخشی میانی است که میتوان قبل از اعمال نهایی کدها، آنها را مجددا مورد بررسی قرار داد.
با کمک ناحیه نمایشی میتوان بخشی از یک فایل را در این ناحیه قرار داد. بدین ترتیب دوران ناتوانی در ایجاد دو کد بیربط ولی منطقی در یک فایل به صورت مجزا تمام شده است.
توسعه توزیعشده
از ویژگیهای خوب تمامی سیستمهای کنترل کد منبع توزیعشده، همین توزیع شده بودن آنها است. از آنجایی که هر شخص در سرور، یک نسخه کامل پشتیبان از نرمافزار را دارد، در هنگام وقوع خرابی و یا نابودی فایلها توسط یک شخص، همواره نگارش پشتیبان آن وجود دارد و امکان از بین رفتن دادهها عملا وجود نخواهد داشت.
تطبیق با هر نظام کاری
جریانهای کاری برای توسعه نرمافزار متفاوت است، سیستمهای مختلفی هم برای توسعه نرمافزار اشتراکی پیاده سازی شده است، جیت این قابلیت را دارد که تقریبا با هر جریان کاری خودش را مطابقت بدهد.
منابع
http://whygitisbetterthanx.com
محمدرضا قربانی
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم