سؤال

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

وأنا أعرف كيفية إنشاء مجلدات جديدة ونقل كل ما عندي من الملفات في جذع ولكن إذا فعلت ذلك سوف تخسر تاريخ بلادي المشروع لمدة 3 سنوات، منذ الجذع 'هو مجلد جديد. حتى لا يكون هناك حل لنقل تاريخ بلادي كامل المشروع من الجذر إلى مجلد جذع؟

وشكرا!

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

المحلول

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

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
svnadmin load REPOS_PATH

وتفريغ الوثيقة: http://svnbook.red-bean.com/ أون / 1.1 / re31.html تحميل الوثيقة: http://svnbook.red-bean.com/en/1.0 /re36.html

نصائح أخرى

ويمكنك استخدام

svn copy http://my.server/svn/repos/ http://my.server/svn/repos/trunk/ \
     -m "Copied"

لإنشاء نسخة من الجذر مستودع (^ /) إلى الجذع / (^ / الجذع)، وحفظ كل ما تبذلونه من التاريخ، بما في ذلك الدليل الجذر.

وبعد ذلك يمكنك إزالة الملفات والدلائل في الموقع القديم في القادم يرتكبها.

وسوف لا تاريخ فضفاضة إذا كنت تستخدم إس إم الملفات. سيتم الحفاظ على التاريخ. لذلك يمكن أن تستخدم الحمل svnadmin--parent دير جذع لإعادة المخزون الخاص بك، ولكن عليك أن تفعل المخارج جديدة من كل شيء، لأنك يجب أن يكون UUID الجديدة في المستودع الجديد.

svn co http://example.com/repos/
cd repos
svn mkdir trunk tags branches
svn mv a trunk/a
svn mv b trunk/b
svn ci -m 'Moving project into trunk'

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

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

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