‫روش‌های ایجاد git server در ویندوز

راه اندازی git server در ویندوز راه‌های گوناگونی دارد که متاسفانه تعداد کمی از آنها ساده و کوتاه بوده و عمدتاً هم نیاز به کمی مهارت لینوکس و ور رفتن‌های فراوان با ابزارهای لینوکسی مثل cygwin دارند. در ادامه بعضی از روش‌ها و راهنماها معرفی می‌شوند.

۱- با استفاده از CopSSH: این روش نیازی به استفاده از cygwin پیدا نکرده بنابراین ساده‌تر و مطمئن‌تر هم هست. به این راهنما و این راهنما مراجعه کنید. راهنمای فارسی و خلاصه‌ای از این دو راهنما هم در این آدرس موجود است.

۲- با استفاده از cygwin و gitosis: این راهنما مستلزم استفاده سنگین از cygwing و python و OpenSSH و gitosis است. این راه، تقریباً سخت‌ترین راه بوده و عملاً مثل این است که یک سرور لینوکس نصب کرده و مراحل را روی آن انجام داده‌اید. cygwin محیط و امکانات لینوکس را در ویندوز ارائه می‌دهد. مزیت این راه حل ظاهراً مدیریت راحت‌تر کاربران است. علاوه بر این، روش gitosis در کنار روش WebDAV که از پروتکل http استفاده می‌کند، کامل‌ترین روش git server است. به این راهنما مراجعه کنید.

۳- با استفاده از cygwin و cygrunsrv و git daemon: مراحل انجام این روش کوتاه و ساده است. ولی من خودم به خاطر مشکلی که ظاهراً از IPv6 ویندوز ۷ بود نتوانستم آن را انجام دهم. در این روش از SSH استفاده نمی‌شود بنابراین امنیت وجود ندارد. ظاهراً مشکلاتی هم در رابطه با push و read only بودن مخزن دارد. به این راهنما مراجعه کنید.

۴- استفاده از git daemon به طور مستقیم در ویندوز: در این روش که بسیار ساده هم هست از پروتکل git مثل git://myserver استفاده می‌شود. پیدا کردن آدرسی دهی، احتمال read only بودن مخزن آن و مشکل concurreny یعنی push کردن هم زمان چند کاربر از جمله مشکلات احتمالی این روش می‌باشد. به اینجا مراجعه کنید.

۵- استفاده از File Sharing: مشابه آنچه که در SourceSafe انجام می‌شد. یعنی یک مخزن bare ساخته شده و در شبکه به اشتراک گذاشته می‌شود. سپس افراد با استفاده از urlهای فایلی به آن دسترسی پیدا می‌کنند. در این روش هیچ امنیتی وجود ندارد. مشکل Concurrency هم دارد. هر وقت کسی بخواهد push کند باید به بقیه استفاده کنندگان اطلاع دهد که تا اتمام push او هیچ کس دیگری push نکند. با وجود این معایب، این راه ساده‌ترین روش ممکن بوده و هیچ دردسری ندارد. به این راهنما مراجعه کنید.

سوختن هارد و سرور مجازی

درست یک روز بعد از این که چند نوسان برق در منزل مشاهده شد، هارد کامپیوترم جان به جان‌آفرین تسلیم کرد. حالا من مونده بودم و اطلاعاتی که از بین رفته بود و زجر نصب مجدد ویندوز، ویژوال استودیو، SQL Server، SVN، Jira و بقیه‌ی خورده ریزهای دیگر. البته مصیبت وارده از ناحیه اطلاعات از بین رفته و خرید مجدد هارد دیسک را هم فراموش نکنید. از آنجا که فعلاً از یک هارد موقتی استفاده می‌کنم و باید بعداً دوباره تمامی مراحل نصب را برای هارد جدید  هم تکرار کنم، باید دنبال راهی می‌گشتم تا زمان نصب مجدد را کاهش دهم. بعد از کلی دو دو تا چهار تا کردن تصمیم گرفتم از VM Ware برای ایجاد یک سرور مجازی استفاده کنم.

روشی که انجام دادم این است: نصب یک نسخه از ویندوز XP به صورت Virtual. از ویندوزهای جدیدتر استفاده نمی‌کنم چون ویندوز XP سریع‌تر نصب می‌شود و جای کمتری می‌گیرد. بلافاصله بعد از نصب، VM مربوطه را روی DVD می‌ریزم. چون ممکن است دفعات بعد هم به یک ویندوز تازه نیاز پیدا کنم. در این مرحله یک اشتباه کوچک انجام دادم و آن هم محدود کردن فضای مورد استفاده Virtual Machine به ۲۰ گیگ بود. چون فکر می‌کردم VM Ware کل آن فضا را در همان ابتدای کار اختصاص می‌دهد. البته بهتر است شما این فضا را خیلی بیشتر در نظر بگیرید چون اولاً نیازی به داشتن آن مقدار فضای خالی در همان لحظه وجود ندارد، ثانیاً بعد از ایجاد Virtual Machine دیگر نمی‌توان این فضا را تغییر داد. در مورد بقیه تنظیمات مثل شبکه، درایورها و بقیه نگران چیزی نباشید چون خود VM Ware پیش‌فرض‌های خوبی دارد و معمولاً مشکل خاصی در رابطه با شبکه وجود ندارد.

بعد از نصب ویندوز، باقی موارد مورد نیاز از جمله SQL Server را نصب می‌کنم. فقط باید دقت شود که به خاطر کوچک نگه داشتن حجم Virtual Machine هیچ اطلاعات اضافی مثل دیتابیس‌ها یا سورس کد را به Virtual Machine اضافه نکنید. بعد از این که همه چیز را خوب تست کردم کل Virtual Machine را روی DVD رایت می‌کنم. کپی یک نسخه از VM Ware و کلیه passwordها از جمله رمز ویندوز و SQL Server هم فراموش نشود. تا اینجا حجم Virtual Machine حدود ۴ گیگ شده که به راحتی می‌توان آن را روی یک DVD نگه داشت.

حالا دیگر می‌توانم با خیال راحت از این Virtual Machine به عنوان سرور استفاده کنم. از این به بعد هر وقت که هاردم بسوزد یا ویندوزم ایراد پیدا کند فقط مراحل نصب ویندوز و ویژوال استودیو را انجام خواهم داد، چون یک سرور را به صورت Virtual دارم. هم به صورت خام و بدون اطلاعات در DVD و هم به صورت عملیاتی. خوبی این روش این است که اولاً می‌توانم سرور را روی یک هارد مطمئن نگه‌داری کرده، در ویندوزهای مختلف آن را با استفاده از VM Ware اجرا کرده و با آن کار کنم، درست همانطور که از یک سرور واقعی در محل کار استفاده می‌شود. ثانیاً اگر دوباره فاجعه‌ای مثل سوختن هارد دیسک اتفاق بیفتد، با فرض داشتن backup اطلاعات، کافی است یک نسخه از سرور مجازی را که قبلاً روی DVD رایت کرده بودیم را روی هارد جدید کپی کرده، اطلاعات سورس، دیتابیس و… را restore تا کار در مدت زمان کمتری شروع شود.

امیدوارم هیچ وقت از این طور فجایع برای شما اتفاق نیفتد چون داغ از دستن دادن هارد خیلی سخت است!

به روز رسانی: مطابق نظرات دوستان که در بخش کامنت‌ها قابل مشاهده است، محدودیت حجم هارد مجازی را می‌توان به نحوی پشت سر گذاشت.