سؤال

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

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

المحلول

لا أعتقد أن هناك طريقة في Subversion لأخبرنا بعدم إصدار ملف معين أو على الأقل نسيان ملف عند حذفه. لأنه يهزم الغرض من نظام التحكم في الإصدار. ستتمكن من تحقيق ذلك من خلال بعض التعديلات إذا كان لديك مستودع محلي. ولكن دون أي وصول المسؤول للمستودع ، سيكون من المستحيل القيام بذلك.

إذا كان يساعد ، RSVNDUMP هي أداة لاتخاذ تفريغ من مستودع بعيد. مع هذا ، ستتمكن من الحصول على تفريغ المستودع إلى نظامك المحلي. لإزالة الملفات غير المرغوب فيها ، يمكنك استخدام هذا الأمر "CAT XXX-SVN DUMP | SVNDUMPFILTER EXCHNOLUDE $ FILE> NEW-SVN DUMP". على الرغم من ذلك ، يمكنك تقليل حجم المستودع ، إلا أنك لن تتمكن من تحديث المستودع الأولي مع هذا المحتوى.

نصائح أخرى

انظر إلى هذا:

http://subversion.apache.org/faq.html#removal يقول:

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

الحل المحتمل في هذا حتى الإجابة:

حذف محتويات الملفات من تاريخ SVN

كما يمكنك تقليم تاريخك. لنفترض أن لديك 100 مراجعة ، يمكنك الاحتفاظ بأحدث التاريخ ، على سبيل المثال 50 مراجعة. قد يقلل هذا أيضًا من حجم مستودع التخريب الخاص بك.

svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
# you can delete the old repo and then
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < newsvn.dump

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

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