كيف يمكنني استعادة التحكم svn في حالة تلف مجلد .svn؟

لقد حصلت على العديد من عمليات السحب الكبيرة حيث أصبح المجلد .svn معطوباً لذلك أتلقى خطأً ، "فشل التنظيف في معالجة المسار التالي .." ولم يعد بإمكاني الالتزام أو تحديث الملفات في هذا الدليل.

فما استقاموا لكم فاستقيموا فقط حذف والقيام الخروج مرة أخرى ولكن الدليل كله على أزعج.

هل هناك أداة من شأنها استعادة المجلدات .svn لمجلدات محددة دون الحاجة إلى تنزيل كل شيء؟

أتفهم أنه سيتعين عليك تنزيل جميع الملفات في مجلد واحد بحيث يمكن تحديد ما إذا كان قد تم تغييرها ... ولكن يجب أن تكون المجلدات الفرعية ذات المجلدات .svn الصالحة جيدة.

أوه .. أنا معجب كبير بـ TortoiseSVN أو سطر الأوامر لـ linux.

أفكار؟

0
وأضاف تحرير
الآراء: 1

7 إجابة

إذا كنت تعرف المجلد الذي يحتوي على ملف .svn التالفة ، يمكنك فقط حذف هذا الدليل وتشغيل تحديث svn مرة أخرى. قد تضطر إلى حذف الدليل بأكمله بما في ذلك محتوياته الحالية. بالطبع ، إذا كان المجلد الذي يحتوي على دليل .svn التالف هو الذي يحتوي على جيجابايت ، فأنت تعود إلى حيث بدأت.

0
وأضاف
إذا كان لديك تخريب <1.5 أعتقد أنه قد يكون هذا هو الخيار الوحيد.
وأضاف المؤلف nedned, مصدر

لقد أصبت بهذا الأمر في الماضي ولم أجد حلًا عمليًا سوى "الخيار النووي" (بمعنى حذف الدليل وإعادة السحب).

لست متأكدا ما إذا كانت هذه هي مشكلتك ، ولكن كان سبب فساد بلدي من خلال برنامج مكافحة الفيروسات على الوصول على نفس الجهاز كمخدم SVN.

0
وأضاف
أنا فقط فعلت ذلك مع السلحفاة. تأكد من تحديث عنوان url الخاص بالمستودع لمطابقة مسار المجلد الخاص بك ، حيث أنك لن تكون على وشك القيام بذلك.
وأضاف المؤلف Alex, مصدر

في حالة إجراء تغييرات على الملفات ، ولا يمكنك حذفها ، يمكنك استخدام ميزة Subversion 1.5 التي تسمح لك بـ "الخروج بالعقبات".

فقط احذف الدليل .svn في هذا الدليل و:
(لا تحتاج إلى حذف داخل الدلائل عند استخدام الملفات - depth ، وذلك بفضل Eric)

في حال كان الدليل المعطوب هو أعلى دليل لنسخة العمل:

svn checkout --depth files --force REPOS WC

وإذا كان الدليل الموجود فوق الجزء المكسور لا يزال قيد التشغيل الإصدار:

svn update --depth files --force WC

في هذا الدليل.
في كلتا العينات ، يعد REPOS هو عنوان url في المستودع الذي يتطابق مع الدليل المعطوب ، بينما WC هو المسار إلى الدليل.

ستكون الملفات التي تم تعديلها في الأصل في الحالة المعدلة بعد ذلك.

0
وأضاف
كنت قادراً على تجنب حذف المجلد .svn في الدلائل الفرعية بإضافة "--depth files" siwtch إلى الأمر checkout. هل يمكنك تعديل المشاركة لعكس ذلك وربما توضيح نص REPOS و WC. شكر!
وأضاف المؤلف Eric Goodwin, مصدر
تشك ، ساعد كثيرا!
وأضاف المؤلف Martin, مصدر

إذا كانت الدلائل الفرعية و OK وهي الدلائل الفرعية الكبيرة ، فيمكنك تجربة سحب جديد غير تكراري.

0
وأضاف

قم بعمل نسخة احتياطية من المجلد الذي يحتوي على ملف .svn مفقود

ثم احذف المجلد

إذا كان هذا هو أصل عملية الدفع ، فيجب عليك إعادة السحب

إذا لم يكن هو الجذر ، فقط قم بتشغيل تحديث من دليل أعلاه.

ثم نقل مجلد النسخ الاحتياطي فوقه. (من الناحية المثالية لا تقم بنقل المجلدات .svn)

استمر في العمل وتأكد من تحديث/الالتزام!

0
وأضاف

واجهت نفس الخطأ اليوم. حدث ذلك عندما حاولت تبديل الفروع وفشل في حذف واحد من الملف الذي ليس في مستودع svn. بعد ذلك ، تم تأمين المجلد ولا يمكنني استخدام أي أمر لتشغيله مرة أخرى.

أنا أساسا حذف ما كان لي واعادة الخروج. يستغرق الأمر وقتًا طويلاً ، ولكني أريد حقًا التأكد من أن svn واضح قبل أن أتمكن من بدء العمل مرة أخرى. شكر!

0
وأضاف

عمل الحل المحدد لي لاستعادة المجلد .svn ذي المستوى الأعلى ، ولكنه لا يتعرف على الكائنات التابعة ، لذلك يبدو كل شيء غريبًا على SVN عند هذه النقطة ، على الرغم من أن الإصدار قيد التشغيل في المجلدات الفرعية.

0
وأضاف