ubuntu server guide تنصيب واستخدام Subversion كنظام إدارة إصدارات على أوبنتو


عبد اللطيف ايمش

إن Subversion هو نظام إدارة إصدارات مفتوح المصدر؛ يمكنك باستخدام Subversion أن تُسجِّل تاريخ كل الملفات المصدرية والمستندات؛ حيث يدير الملفات والمجلدات مع مرور الزمن. توضع شجرة من الملفات في مستودع مركزي، هذا المستودع يشبه كثيرًا خادوم الملفات العادي، عدا أنه «يتذكر» كل تعديل جرى على الملفات والمجلدات.

ubuntu-server-vcs-subversion.thumb.png.1

التثبيت

للوصول إلى مستودع Subversion عبر بروتوكول HTTP، يجب عليك تثبيت وضبط خادوم ويب، أُثبِتَ عمل Subversion مع أباتشي؛ للوصول إلى مستودع Subversion باستخدام بروتوكول HTTPS، فثبِّت واضبط الشهادة الرقمية في خادوم أباتشي.

عليك تنفيذ الأمر الآتي في الطرفية لتثبيت Subversion:

sudo apt-get install subversion libapache2-svn

ضبط الخادوم

يشرح هذا القسم كيفية إنشاء مستودع Subversion، والوصول إلى المشروع.

إنشاء مستودع Subversion

يمكن إنشاء مستودع Subversion بتنفيذ الأمر الآتي في الطرفية:

svnadmin create /path/to/repos/project

استيراد الملفات

تستطيع استيراد الملفات إلى المستودع بعد أن تُنشِئه؛ أدخِل الأمر الآتي في الطرفية لاستيراد مجلد:

svn import /path/to/import/directory file:///path/to/repos/project

طرق الوصول

يمكن الوصول إلى مستودعات Subversion (السحب [checked out]) بطرقٍ مختلفة على الجهاز المحلي أو عبر بروتوكولات الشبكة المختلفة؛ لكن مكان المستودع (repository location) هو دائمًا عنوان URL؛ الجدول الآتي يحتوي على أنماط URL المختلفة لمختلف طرق الوصول.

subversion.thumb.png.19bebecb6f7faa35f27

الوصول المباشر إلى المستودع

سنرى -في هذا القسم- كيفية ضبط Subversion لكل طرق الوصول السابقة؛ سنشرح هنا الأساسيات، رجاءً عُد إلى كتاب «svn book» لتفاصيل استخدام متقدمة.

هذه هي أبسط طرق الوصول؛ لا تحتاج إلى أي خادوم Subversion يعمل؛ تُستخدَم هذه الطريقة للوصول إلى Subversion من نفس الجهاز؛ شكل الأمر المُدخَل في سطر الأوامر هو:

svn co file:///path/to/repos/project

أو:

svn co file://localhost/path/to/repos/project

ملاحظة: إن لم تحدد اسم المضيف، فهنالك ثلاث خطوط مائلة (///) حيث اثنتين منها للبروتوكول بالإضافة إلى الخط المائل في أول المسار؛ إذا حددت اسم المضيف، فسيكون هنالك خطين مائلين فقط.

تعتمد أذونات المستودع على أذونات نظام الملفات؛ إذا امتلك المستخدم إذن القراءة والكتابة، فيمكنه السحب من المستودع أو الإيداع إليه.

الوصول عبر بروتوكول WebDAV‏ (http://‎)

يجب عليك ضبط خادوم أباتشي للوصول إلى مستودع Subversion عبر بروتوكول WebDAV؛ أضف الأسطر الآتية بين العنصرين <VirtualHost> و <‎/VirtualHost> في ملف ‎/etc/apache2/sites-available ‎/default؛ أو ملف VirtualHost آخر:

<Location /svn>
  DAV svn
  SVNPath /home/svn
  AuthType Basic
  AuthName "Your repository name"
  AuthUserFile /etc/subversion/passwd
  Require valid-user
</Location>

ملاحظة: يفترض الضبط السابق أن مستودعات Subversion موجودةٌ في مجلد ‎/home/svn باستخدام الأمر svnadmin؛ ويملك مستخدم HTTP امتيازات وصول كافية على تلك الملفات، ويمكن الوصول إليها عبر الوصلة http://hostname/svn/repos_name.

التغيير السابق في ضبط أباتشي يتطلب إعادة تحميل الخدمة، وذلك بالأمر الآتي:

sudo service apache2 reload

لاستيراد أو إيداع ملفات إلى مستودع Subversion عبر HTTP، فيجب أن يكون المستودع مملوكًا من مستخدم HTTP؛ يكون مستخدم HTTP عادةً في أنظمة أوبنتو هو www-data؛ أدخِل الأمر الآتي في الطرفية لتغيير ملكية ملفات المستودع:

sudo chown -R www-data:www-data /path/to/repos

ملاحظة: بتغيير ملكية المستودع إلى www-data، فلن تتمكن من استيراد أو إيداع الملفات في المستودع بالأمر svn import file:///‎ عبر أي مستخدم عدا المستخدم www-data.

عليك الآن إنشاء الملف ‎/etc/subversion/passwd الذي يحتوي معلومات استيثاق المستخدم؛ نفِّذ الأمر الآتي في الطرفية لإنشاء الملف (الذي سيُنشِئ الملف ويضيف أول مستخدم):

sudo htpasswd -c /etc/subversion/passwd user_name

لإضافة مستخدمين آخرين، احذف الخيار ‎-c، حيث يستبدل هذا الخيار الملفَ القديم؛ واستخدم الشكل الآتي عوضًا عنه:

sudo htpasswd /etc/subversion/passwd user_name

سيُضاف المستخدم بعد إدخالك لكلمة المرور بنجاح؛ يمكنك الآن الوصول إلى المستودع بتنفيذ الأمر الآتي:

svn co http://servername/svn

تحذير: ستُنقل كلمة المرور كنص واضح، إذا كنت قلقًا على التجسس على كلمة المرور، فمن المستحسن استخدام تشفير SSL، اقرأ القسم الآتي للتفاصيل.

الوصول إلى بروتوكول WebDAV عبر اتصال SSL مشفر (https://‎)

الوصول إلى مستودع Subversion عبر بروتوكول WebDAV مع تشفير SSL يشبه كثيرًا الوصول إلى http://‎ عدا أنه عليك تثبيت وضبط الشهادة الرقمية في خادوم أباتشي؛ أضف الضبط السابق إلى ملف ‎/etc/apache2/sites-available/default-ssl.conf لاستخدام SSL مع Subversion؛ راجع الدرس الذي يشرح أباتشي للمزيد من المعلومات حول ضبط أباتشي مع SSL.

يمكنك تثبيت شهادة رقمية مُصدَرَة من سلطة توقيع الشهادات؛ أو يمكنك تثبيت شهادتك الموقعة ذاتيًا.

تفترض هذه الخطوة أنك ثبتت وضبطت شهادةً رقميةً في خادوم أباتشي؛ راجع الأوامر في القسم السابق للوصول إلى مستودع Subversion، حيث أنَّ الخطوات متماثلة تمامًا عدا البروتوكول، حيث عليك استخدام https://‎ للوصول إلى مستودع Subversion.

الوصول عبر بروتوكول خاص

يمكنك ضبط التحكم بالوصول بعد إنشاء مستودع Subversion؛ تستطيع تعديل الملف ‎/path/to/repos ‎/project/conf/svnserve.conf لضبط التحكم بالوصول؛ على سبيل المثال، يمكنك إزالة التعليق عن الأسطر الآتية في ملف الضبط لضبط الاستيثاق:

# [general]
# password-db = passwd

بعد إزالة التعليق عن السطرين السابقين، يمكنك إدارة قائمة المستخدمين في ملف passwd، لذلك عدِّل ملف passwd في نفس المجلد وأضف مستخدمًا جديدًا كما يلي:

username = password

للوصول إلى Subversion عبر البروتوكول الخاص svn://‎؛ من الجهاز نفسه أو من جهاز آخر، تستطيع تشغيل svnserver بالأمر svnserve؛ الذي يكون شكله العام كما يلي:

svnserve -d --foreground -r /path/to/repos
# -d -- daemon mode
# --foreground -- run in foreground (useful for debugging)
# -r -- root of directory to serve

سيبدأ Subversion بالاستماع إلى المنفذ الافتراضي (3690) بعد تنفيذ الأمر السابق؛ عليك تنفيذ الأمر الآتي من الطرفية للوصول إلى مستودع البرنامج:

svn co svn://hostname/project project --username user_name

وبناءً على إعدادات الخادوم، قد يُطلَب منك توفير كلمة مرور؛ وبعد أن تستوثق، فسيُسحب الكود من مستودع Subversion. ولمزامنة مستودع المشروع مع نسخة محلية، يمكنك تنفيذ الأمر الفرعي update؛ الشكل العام للأمر المُدخَل إلى الطرفية هو كما يلي:

cd project_dir ; svn update

للمزيد من التفاصيل حول استخدام كل أمر فرعي من أوامر Subversion، يمكنك الرجوع إلى الدليل؛ على سبيل المثال، لتعلم المزيد عن الأمر co (أي السحب checkout)، رجاءً نفِّذ الأمر الآتي من الطرفية:

svn co help

الوصول عبر البروتوكول الخاص مع تشفير SSL‏ (svn+ssh://‎)

طريقة ضبط وتشغيل الخادوم هي نفسها في طريقة svn://‎؛ يفترض هذا القسم أنك اتبعت الخطوة السابقة وبدأت خادوم Subversion باستخدام svnserve.

يُفترَض أيضًا أنه لديك خادوم ssh في ذاك الجهاز ويسمح للاتصالات القادمة؛ للتأكد من ذلك، رجاءً جرِّب تسجيل الدخول إلى ذاك الحاسوب باستخدام ssh، إذا استطعت الدخول فإن كل شيء على ما يرام؛ وإلا فعليك حلّ المشكلة قبل الإكمال.

البروتوكول svn+ssh://‎ يُستخدَم للوصول إلى مستودع Subversion باستخدام تشفير SSL؛ البيانات المنقولة في هذه الطريقة مشفرة، وللوصول إلى مستودع المشروع (للسحب على سبيل المثال)؛ فعليك استخدام الصيغة الآتية:

svn co svn+ssh://hostname/var/svn/repos/project

ملاحظة: عليك تحديد مسار كامل (‎/path/to/repos/project) للوصول إلى مستودع Subversion باستخدام طريقة الوصول هذه.

قد تُسأل عن كلمة المرور اعتمادًا على ضبط الخادوم؛ إذ عليك إدخال كلمة المرور التي تستخدمها للوصول عبر ssh؛ وبعد أن يستوثق منك الخادوم، فيمكن سحب الكود من مستودع Subversion.

ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Subversion.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن