هل تريد إزالة الدليل الفارغ من CVS؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

لست متأكدًا تمامًا من كيفية حدوث ذلك، ولكن بطريقة ما انتهى الأمر بتسلسل هرمي فارغ تمامًا من الدلائل في مستودعي:

com/
com/companyname/
com/companyname/blah/
com/sun/
com/sun/java/
com/sun/java/jax_rpc_ri/

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

كيف يمكنني إزالة هذا من CVS؟النتائج الوحيدة التي يبدو أنني قادر على العثور عليها على جوجل تقول أنه لا ينبغي أن تكون هناك حاجة لإزالة الدلائل الفارغة لأن CVS لن تحتفظ بها في المقام الأول، وأن -P (تقليم) خيارات ل cvs update يجب إزالتها من دليل العمل - وهو أمر لا يساعد إذا كان لديك بالفعل أدلة فارغة في مستودعك.

أ cvs remove و cvs commit لا يبدو أنه يهتم بهذا الموقف:

$ cvs remove -Rf com
cvs remove: Removing com
cvs remove: Removing com/companyname
cvs remove: Removing com/companyname/blah
cvs remove: Removing com/sun
cvs remove: Removing com/sun/java
cvs remove: Removing com/sun/java/jax_rpc_ri
$ cvs commit com
cvs commit: Examining com
cvs commit: Examining com/companyname
cvs commit: Examining com/companyname/blah
cvs commit: Examining com/sun
cvs commit: Examining com/sun/java
cvs commit: Examining com/sun/java/jax_rpc_ri
$ ls -l com
total 24
drwxrwxr-x  2 matt matt 4096 Oct 15 14:38 CVS
drwxrwxr-x  9 matt matt 4096 Oct 15 14:38 companyname
drwxrwxr-x  4 matt matt 4096 Oct 15 14:38 sun

ما زال هناك!

هل لدى SVN هذا السلوك الغريب أيضًا؟

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

المحلول

AFAIK لا يسمح بروتوكول CVS بإزالة الدلائل.يجب عليك الانتقال إلى وحدة تحكم الخادم وإزالتها من المستودع الفعلي الحقيقي.


http://www.network-theory.co.uk/docs/cvsmanual/Removingdirectories.html

لا تقم بإزالة الدليل نفسه؛لا توجد وسيلة للقيام بذلك.

نصائح أخرى

والخروج CVS والتحديث سوف تحقق دائما من الدلائل الفارغة. هذا هو مجرد وسيلة يتم بناؤها CVS. هل تحديثا مع "ف" - "تقليم" - لإزالة الدلائل الفارغة:

cvs update -dP

و(إضافة "-d" سيتم تحديث الدلائل الجديدة التي ظهرت منذ آخر التحديث، وإلا، سوف CVS تجاهلها)

فقط افعل

  1. rm -rvf /localCopy/project/emptyDirectory
  2. تحرير /localCopy/project/CVS/Entries، وحذف السطر D/emptyDirectory////، وحفظ الملف
  3. rmdir -v /CVSROOT/project/emptyDirectory

للتخلص من دليل فارغ في المشروع.لا يجوز التلاعب ببيانات CVS الداخلية، ولكن يبدو أنها نجحت (إصدار cvs 1.12.13).

وCVS لديها عدد من عيوب في التصميم، دون ان يتمكنوا من التخلص من الدليل دون أن تفقد تاريخ واحد. صعوبة إعادة تسمية الملفات والأدلة دون أن تفقد التاريخ شيء آخر.

والنظر تخرجه إلى التخريب . cvs2svn يقوم بعمل تحويل مستودعات جيدة جدا بما في ذلك جميع الفروع والعلامات. وCVS وSVN مجموعات القيادة متشابهة جدا وتتطلب الحد الأدنى من التكيف. (ولتجنب أن يصبح هذا "ما التحكم في الإصدار يجب عليك استخدام" الحرب) مرة واحدة كنت تستخدم SVN يمكنك الانتقال إلى أي عدد من أنظمة أكثر تقدما التحكم في إصدار مثل <وأ href = "HTTP: //git.or .CZ / "يختلط =" نوفولو noreferrer "> بوابة أو SVK .

لقد نجح هذا بالنسبة لي.في الأساس عندما تفعل

rmdir -v /CVSROOT/project/emptyDirectory # نقوم بحذف الدليل من دليل مستودع CVS.

إذا كان لديك وصول لتسجيل الدخول إلى خادم Unix، فيمكنك الانتقال إلى المسار وحذف الدليل، أو إثارة نفس المشكلة مع فريق Unix.

يميل cvs إلى العمل على نهج مرحلتين فيما يتعلق بالأدلة ولهذا السبب يوجد خيار -P للعديد من أوامر cvs "لتقليم الدلائل الفارغة".

عندما حدث هذا، على سبيل المثال.إذا كنت ترغب في إعادة تسمية الدليل الذي أضفته للتو، فأنا أحذف الدليل، وأحذف إدخال الدليل في ملف CVS/Entries، وسيكون عبارة عن سطر مسبوق بحرف "D".

تم إنجاز المهمة.

إذا كنت ملتزمًا، فأنا أتأكد من أن منطقة العمل الحالية التي تحتوي على الدليل/المجلدات الفارغة قد تم تسجيلها بالكامل.ثم أقوم بتفجير جزء منطقة العمل الذي أضفت إليه الدلائل.

على سبيل المثال، في

~/Sandbox/my_project/some_stuff_i_want
~/Sandbox/my_project/empty_dir_1
~/Sandbox/my_project/other_stuff_i_want

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

ثم أقوم بحذف الدلائل الفارغة من المستودع نفسه.

العودة والتحقق من نفس منطقة العمل، على سبيل المثال.سيعطيني my_project منطقة العمل بدون الأقراص الفارغة.

أو فقط اترك كل شيء كما هو واستخدم الخيار -P لتتحقق CVS من كل شيء (أو تحديث كل شيء)، ثم قم بقص الأدلة الفارغة.

هث

هتافات،

روب

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

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