سؤال

أحاول إيجاد طريقة لإزالة أقفال الزومبي باستخدام أدوات سطر أوامر Subversion.الهدف النهائي هو القيام بذلك من خلال برنامج نصي للربط، لكنني لم أتمكن من العمل على سطر الأوامر لاستخدامه عندما يكون لديك مسار مستودع فعلي فقط.(يبدو أن استخدام svnadmin rmlocks يعمل فقط مع الأقفال الموجودة في مراجعة HEAD.)

من الناحية المثالية، أود القيام بذلك عبر البرنامج النصي لربط ما بعد الالتزام باستخدام أدوات سطر الأوامر.(أنا على علم بوجود نص python المخصص لهذا الغرض، ولكننا نفضل عدم تثبيت python على ذلك الخادم لهذا الاستخدام الفردي.) نحن متجر .NET، لذا فإن إنشاء أداة باستخدام مكتبة SharpSVN يعد أيضًا أمرًا الاحتمال، ولكن يبدو أن إمكانية إلغاء القفل الوحيدة موجودة في فئة SVNClient.

إذن، هناك سؤالان حقًا:هل هناك طريقة للقيام بذلك باستخدام أدوات سطر الأوامر؟إذا لم يكن الأمر كذلك، هل هناك طريقة للقيام بذلك من SharpSVN؟(أو ربما مكتبة أخرى؟)

== التحديث بتاريخ 3 ديسمبر 2012 ==

لقد اضطررت إلى إعادة النظر في هذه المشكلة مؤخرًا واكتشفت أن هذا السؤال لا يزال يجذب حركة المرور.تم نقل نص python المذكور في السؤال الأصلي وإجابة Don منذ ذلك الحين إلى: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (أفترض أن هذا ما يبحث عنه معظم الناس).

ومن المفارقات أنه على الرغم من أن المستودع قد انتقل إلى Linux، إلا أننا نستخدم الحل C.

هل كانت مفيدة؟

المحلول 2

يبدو أن الإجابة هي "لا يمكنك الوصول إلى هناك من هنا".

  • يوفر Svnadmin سطر أوامر لإزالة الأقفال باستخدام مسار المستودع، ولكن يبدو أنه لا يعمل مع أقفال الزومبي.
  • SharpSVN هو في المقام الأول جانب العميل؛لديه بعض الطرق للاتصال بمسار المستودع، ولكن تلك (حسب المستندات) مخصصة في الغالب للاستخدام في اختبارات وحدة المكتبة.

لذا، أعد كتابة نص بايثون بلغة C باستخدام مكتبة Subversion API.

نصائح أخرى

AFAIK غير موثق في أي مكان يجب تضمين الحقول لتتمكن من القيام بتحديث بعد الاستعلام عن عرض ViewFherfonly إلى True، ولكن وفقا ل spQuery.viewfielderonly وتحديث SplistItem إنه من بين معرف آخر، واندلاء نوع الكائن، ...

ولكن لا تحاول توصيتي بالتأكيد، فقط قم بتعيين ViewFieldedonly إلى False، فأنت متأكد من أنك تحصل على ما هو مطلوب حتى في الإصدارات المستقبلية من SharePoint.

إذا كنت تعرف مسار المستودع إلى الملف المحذوف الذي تم قفله ، فمن بسيط للغاية لدرجة أنني لم أصدق ذلك في البداية:

svn unlock --force https://path/to/my/file

هذا يعمل على الرغم من أن الملف المحذوف (بحكم التعريف) غير موجود في رأس المستودع. لا مراجعة ربط مطلوبة ولا مسموح بها. ال force الخيار ضروري فقط إذا كان القفل من مستخدم آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top