كيف يمكنني سرد ​​جميع الملفات ملتزمة من أي وقت مضى بالمستودع؟

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

سؤال

كيف يمكنني السماح ل SVN بإلقاء جميع الملفات التي كانت ملتزمة من أي وقت مضى مستودع (إن أمكن، إلى جانب الموقع والمراجعة).

أكثر بالضبط: أحتاج إلى كل مسارات موجودة من أي وقت مضى.

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

مثال

دعنا نقول أنني ارتكب ملف SomeFileOne.txt, ، أعيد تسميته لاحقا إلى SomeFileTwo.txt.

بعد إجراء المهمة المطلوبة (أي حل أبحث عنه)، يجب أن أحصل على ليس فقط SomeFileTwo.txt, ، ولكن أيضا SomeFileOne.txt.

...
/trunk/SomeProject/SomeFileOne.txt - revision 100
/trunk/SomeProject/SomeFileTwo.txt - revision 101
...
هل كانت مفيدة؟

المحلول

بالنسبة لي، سيكون سجل SVN طريقة أكثر بديهية - أو هل جربت ذلك بالفعل؟ هل من الممكن مشاركة الحاجة إلى مطالبة هذا التقرير المكثف حول كل الملفات التي يرتكبها على الإطلاق في المستودع؟

نصائح أخرى

اكتشف شيئا عن طريق اللعب حولها.

قد يكون الحل البطيء والقذرة:

svnadmin dump MY_REPO | grep Node-path

الناتج يشبه:

* Dumped revision 3039.
Node-path: trunk/proj1/src/p/keywords/main/NoOp.java
Node-path: trunk/proj1/src/p/keywords/main/ScopeDecl.java
* Dumped revision 3040.
Node-path: trunk/myCommons/src/i/IConverter.java
Node-path: trunk/myCommons/src/i/ListUtils.java
* Dumped revision 3041.
Node-path: trunk/proj1/src/p/execution/impl/IterativeExecuter.java
Node-path: trunk/proj1/src/p/keywords/DeclConstant.java

حسنا، على الأقل يحل مشكلتي.

ملاحظة: Dumped revision ... يظهر، لأنه stderr.

للحصول على إخراج محسن، منظم إلى SVN Log -V، استخدم البرنامج النصي باش التالي:

$ svn log -v | egrep '^   A' | cut -c 6- | sort | uniq

شرح:

  • جلب سجل SVN كله للمسار المحدد
  • حدد خطوط فقط بدءا من "A"، وهو إخراج سجل SVN للحصول على ملف إضافي.
  • قطع أول 5 كحيرات، والتي هي معلومات الإضافة المذكورة
  • فرز الناتج
  • قم بإزالة الخطوط المكررة (على سبيل المثال إذا تم قراءة الملف لاحقا)

يعمل هذا أيضا من أجل المستبعين من الخروج، لا تحتاج حتى إلى الخروج على الإطلاق، إذا قمت بتزويد مسار المخزون:

$ svn log -v https://github.com/schacon/kidgloves/ | egrep '^   A' | cut -c 6- | sort | uniq

نتيجة:

/branches
/branches/testing (from /trunk:17)
/trunk
/trunk/README
/trunk/example.rb
/trunk/kidgloves.rb
/trunk/simple_rack.rb

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

إذا كنت ترغب فقط في التصفح، فقد تحصل على ما تريد مع أحد أدوات الوصول إلى شبكة الإنترنت SVN. كان الجولة مكتوب هنا.

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