كيف يمكنني تحديد نسخة تخطيط نسخة SVN العمل؟
-
21-09-2019 - |
سؤال
على سبيل المثال ، لدى عميل SVN 1.5 تصميمًا واحدًا لنسخ العمل ، وله عميل SVN 1.6 لديه تصميم مختلف. أفهم أن التصميم يتم ترقيته تلقائيًا عندما يتم لمسه من قبل عميل أحدث.
إذا كان لدي نسخة عمل على نظامي ، فكيف يمكنني معرفة إصدار التخطيط الذي يستخدمه؟
المحلول
لو .svn/format
موجود ، ثم اقرأ الرقم فيه:
- الإصدار 7 هو SVN 1.3
- الإصدار 8 هو SVN 1.4
- الإصدار 9 هو SVN 1.5
لو .svn/format
غير موجود ثم رقم الإصدار موجود في السطر الأول في .svn/entries
:
- الإصدار 10 هو SVN 1.6
- الإصدار 12 هو SVN 1.7
كان Subversion 1.6 أول من لم يستخدم .svn/format
. الإصدار 7 وما فوق القائم على XML المستخدمة .svn/entries
الملف ، تستخدم الإصدارات الأحدث تنسيق ملف قائم على خط أقل.
منذ التخريب 1.7 يتم تخزين رقم الإصدار في .svn/wc.db
قاعدة بيانات SQLite في حقل "user_version". لذا بالرغم من .svn/format
يتم صدمه إلى الإصدار 12 إصدار التنسيق الفعلي هو 29 وقد لا يتم تحديث الإصدارات المستقبلية .svn/format
أي أكثر من ذلك. للحصول على رقم الإصدار من .svn/wc.db
هناك طريقتان:
- اذا كنت تمتلك
sqlite3
في طريقك ،sqlite3 .svn/wc.db "PRAGMA user_version"
- إذا لم يكن لديك
sqlite3
في طريقك ، افتح.svn/wc.db
في محرر سداسي عشري وقراءة DWORD عند الإزاحة 0x3C
يتم وصف جميع أرقام نسخ التنسيق في WC.H جنبا إلى جنب مع أرقام الإصدار من إصدارات التخريب المعنية.
نصائح أخرى
من سؤال سداد المكدس اكتشف نسخة نسخة العمل SVN (1.7 أو 1.8):
يمكن للمرء استخدام sqlite3 .svn/wc.db "PRAGMA user_version"
على SVN 1.7 أو أحدث (أو od -An -j63 -N1 -t dC .svn/wc.db
إذا كان لديك فقط SQLITE 3.0 المكتبات ، YMMV).