أنا غير قادر على إجراء تحديث SVN على نسخة عمل في Linux للحصول على خطأ "غير قادر على فتح جلسة RA_LOCAL إلى عنوان URL"
-
21-09-2019 - |
سؤال
لدي خادم Linux يحتوي على 10 مستودعات. لقد قمت بإعداد حصة Samba للسماح بسهولة الوصول إلى دليل المستودع حتى أتمكن من إنشاء مستودعات عبر Windows باستخدام TortoisesVn's Create repository here command...
.
المشكلة هي أن المستودعات تم إعدادها باستخدام Windows file:///
المسارات وليس HTTP باستخدام TortoisesVn. أنا أستخدم وحدة SVN Apache HTTP. عادةً ما أحدد المستودع عبر http://servername/svn/myrepos
.
هذا كل شيء على ما يرام في Windows ، لكنني بحاجة أيضًا إلى استخدام عميل Linux SVN وأحاول القيام بما يلي:
/usr/bin/svn update /path/to/working/copy
لكن أنا أحصل على الخطأ التالي:
svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///R:/myrepos/trunk'
يبدو أن الخطأ يتعلق به في محاولة للعثور على مستودع المطابقة لنسخة العمل ولكنه يستخدم ملف Windows: /// url ويجب أن يستخدم HTTP.
كيف يمكنني تعديل المستودعات حتى يتخلفوا عن استخدام بروتوكول HTTP؟
المحلول
لست متأكدًا من أنني أفهم ماهية المشكلة ، ولكن إذا كنت تتطلع إلى الاستمرار في استخدام نسخة عمل محلية ، أثناء تغيير عنوان URL الذي تستخدمه للوصول إلى المستودع ، فأنت تريد التشغيل svn switch
:
svn switch --relocate file:///my/old/URL http://server/new/URL
نصائح أخرى
إذا قمت بالخروج عبر عنوان URL واحد ، فيمكنك التحديث باستخدام عنوان URL مختلف. لأن تدوين "المسار" مختلفًا عن كلا النظامين ، يمكنك استخدام نفس الخروج إلا إذا كنت تستخدم svn
أو http
بروتوكولات. ومع ذلك ، فإن هذا لا علاقة له بإنشاء ريبو بما يتجاوز حقيقة أنك تحتاج إلى فضح الريبو على أحد البروتوكولات اللاإرادية للمنصة. إذا كنت تستطيع التحقق من أي عميل عبر http
أو svn
ثم قمت بتعيين كل شيء بشكل صحيح. تحتاج فقط إلى تفجير الخروج الخاص بك بعيدًا والتحقق منه مرة أخرى باستخدام بروتوكول منصة لادروستيك.
ربما هذه مشكلة إذن. كان لدي هذا على جهاز Linux مع عملاء Linux على نفس الجهاز. ألا يمكنك فقط حذف SVN Sandboxen المحلي على جهاز Linux وإعادة التحقق منها؟