ما هو الطريق الصحيح لاستعادة الملفات المحذوفة من إس?

StackOverflow https://stackoverflow.com/questions/490522

  •  20-08-2019
  •  | 
  •  

سؤال

أنا حذفت ملف من الريبو والآن تريد وضعه مرة أخرى.أفضل ما يمكن معرفته هو أن:

  • تحديث المراجعة قبل الحذف
  • نسخ الملفات الموجودة في أي مكان آخر
  • تحديث الرأس
  • نسخ الملفات مرة أخرى
  • إضافة لهم
  • ارتكاب

فقط الروائح السيئة و يفقد كل التاريخ التمهيد.يجب ان تكون هناك طريقة أفضل للقيام بذلك.لقد بدا بالفعل في إس في الكتاب ولكن لم أجد أي شيء و أبحث الآن أسفل إس الوسم قائمة.

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

المحلول

استخدام svn دمج:

svn merge -c -[rev num that deleted the file] http://<path to repository>

لذلك مثالا:

svn merge -c -12345 https://svn.mysite.com/svn/repo/project/trunk
             ^ The negative is important

بالنسبة TortoiseSVN (على ما أظن...)

  • انقر على الحق في مستكشف ، انتقل إلى TortoiseSVN -> دمج...
  • تأكد من "دمج مجموعة من التنقيحات" هو اختيار, انقر فوق التالي
  • في "تنقيح مجموعة إلى دمج" النص ، حدد التنقيح أن إزالة الملف
  • التحقق من "عكس دمج" خانة الاختيار انقر فوق التالي
  • انقر فوق دمج

وهذا هو تماما لم تختبر ذلك.


حرره OP:وهذا يعمل على نسختي من TortoiseSVN (النوع القديم من دون زر التالي)

  • انتقل إلى المجلد الاشياء التي كان من delated
  • انقر على الحق في مستكشف ، انتقل إلى TortoiseSVN -> دمج...
  • في من قسم إدخال تنقيح التي لم تحذف
  • في إلى الباب لدخول المراجعة قبل الحذف.
  • انقر فوق "دمج"
  • ارتكاب

خدعة دمج إلى الوراء.مجد شون.مشرق لافتا في الاتجاه الصحيح!


تحرير: نحن باستخدام إصدارات مختلفة.طريقة وصفت عملت تماما مع نسخة من TortoiseSVN.

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

نصائح أخرى

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

باستخدام السلحفاة إس يمكنك إحياء الملفات التي تم حذفها من عمل نسخ الدليل و من بعدها إس التنقيحات عبر إس نسخ على النحو التالي:

  • استعرض للوصول إلى عمل نسخ المجلد الذي سبق الواردة في الملف.
  • انقر بزر الماوس الأيمن على المجلد في مستكشف ، انتقل إلى TortoiseSVN -> عرض السجل.
  • انقر بزر الماوس الأيمن على رقم المراجعة قبل التنقيح الذي حذف الملف ثم اختر "استعراض مستودع".
  • انقر على الحق في حذف الملف و اختر "نسخ إلى عمل نسخ" save.

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

ملحوظة::هذه الطريقة من شأنها الحفاظ على التاريخ السابق من استعادة الملف, لكن أن نرى قبل التاريخ في TortoiseSVN سجل تحتاج إلى التأكد من "وقف على نسخ/إعادة تسمية" هو غير محقق في رسائل سجل الحوار.

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

التراجع عن التغييرات

إحياء العناصر المحذوفة

نفس الشيء ، من أكثر حداثة (مفصلة) نسخة من الكتاب:

التراجع عن التغييرات

إحياء العناصر المحذوفة

استخدام السلحفاة إس نسخ وظائف العودة ارتكبت التغييرات:

  1. انقر بزر الماوس الأيمن على المجلد الأصل الذي يحتوي على حذف ملفات/مجلد
  2. حدد "عرض السجل"
  3. حدد ثم انقر على الحق في النسخة قبل التغييرات/تم حذف
  4. حدد "استعراض مستودع"
  5. حدد الملف/المجلد الذي يحتاج إلى استعادة حق انقر
  6. اختر "نسخ إلى" والتي سوف نسخ الملفات/المجلدات إلى رئيس تنقيح

على أمل أن يساعد

يبدو لي دائما أن استخدام svn نسخ كخادم العملية لذلك لست متأكدا ما اذا كان يعمل مع اثنين من مسارات العمل.

هنا هو مثال على استعادة الملفات المحذوفة في نسخة العمل المحلية من المشروع:

svn copy https://repos/project/modules/module.js@3502 modules/module.js

في حين يجري داخل دليل المشروع.يعمل هذا فضلا عن استعادة الدلائل كلها.

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

  1. استعرض للوصول إلى مجلد في نسخة العمل حيث حذف الملف.
  2. انتقل إلى الريبو-المتصفح.
  3. استعرض للوصول إلى مراجعة حيث حذف الملف.
  4. في قائمة التغيير العثور على الملف الذي حذف.
  5. انقر بزر الماوس الأيمن على الملف ثم انتقل إلى "العودة يغير من هذا النظر".
  6. هذا سوف استعادة ملف العمل الخاص بك نسخ, حفظ التاريخ.
  7. ارتكاب الملف إلى إضافة ذلك إلى المستودع الخاص بك.

مع السلحفاة SVN:

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

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

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

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

svn copy -m 'restoring file' -r <rev_number_file_to_restore> http://from/file.cs http://pathTo/file.cs

يبدو لي دائما أن استخدام svn copy كخادم العملية لذلك لست متأكدا ما اذا كان يعمل مع اثنين من مسارات العمل.

يجب أن تكون قادرة على مجرد التحقق من ملف واحد تريد استعادته.محاولة شيء من هذا القبيل svn co svn://your_repos/path/to/file/you/want/to/restore@rev حيث rev آخر تنقيح في الملف موجودة.

كان علي أن أفعل بالضبط هذا قبل قليل و إذا كنت أتذكر بشكل صحيح ، وذلك باستخدام -r الخيار svn لم يكن العمل ؛ اضطررت إلى استخدام :rev بناء الجملة.(على الرغم من أنني قد تذكرت الوراء...)

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