إس:هل من الممكن الحصول على قائمة مراجعة أرقام معينة الطريق ؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

لدي نقطة البداية والنهاية في مراجعة التاريخ و يمكنني أن الاستيلاء على جميع السجلات مثل هذا:

svn log -r <from_revision>:<to_revision> <REPO_URL>

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

إذا كنت أعرف من البداية و نقطة النهاية, أنا يمكن أن تخلق ل() حلقة لانتزاع التنقيحات واحدا تلو الآخر:

svn log -r <revision> ...

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

لذا أريد شيئا من هذا القبيل:

  • "أعطني قائمة مراجعة أرقام هذا المسار" ، أو:
  • "أعطني قائمة مراجعة أرقام هذا المسار ، بين ،

بهذه الطريقة سوف تكون قادرة على تقديم مجموعة من صالح التنقيحات على مستودع المسار والحصول على واحد منهم.

جميع اقتراحات هي موضع ترحيب, شكرا مقدما.

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

المحلول

أعتقد أن أفضل رهان لك هو القيام بما يلي svn log -l 100 0:{$newest} .\ سيؤدي ذلك إلى استرداد أول 100 سجل لدليل أو ملف معين.ثم اقرأ رقم المراجعة الأخير الذي تم إرجاعه، ثم اطلب الـ 100 التالية svn log -l 100 {$last_ret_log}:{$newest} .\

بهذه الطريقة تحصل على 99 إدخال سجل جديد مع كل طلب ولكنك لن تحصل عليها كلها.

نصائح أخرى

إذا كان لديك حق الوصول إلى شجرة المستودع الموجودة على خادم Subversion، فيمكنك استخدامها svnlook history للحصول على قائمة بأرقام المراجعة.

يمكن العثور على مزيد من التفاصيل في http://svnbook.red-bean.com/en/1.1/re49.html.

لقد كنت أحاول للتو الحصول على نتيجة مماثلة.أريد فقط جميع أرقام المراجعة لفرع معين.

لقد وجدت ما يلي مفيدًا جدًا.

svn log <svn_server_path> | grep "^r[0-9]\+ | " | cut -d' ' -f1 | cut -c2- > revisions.csv

وهذا يعطيني ملفًا يحتوي على جميع أرقام المراجعة في أسطر منفصلة.

نأمل أن تجدها أنت أو أي شخص آخر مفيدًا.

يحتوي الريبو الخاص بنا على أكثر من 25000 مراجعة ويستغرق إنتاج هذا الملف بضع ثوانٍ.

قد ترغب في إلقاء نظرة على svn list.لذلك لغرضك:


$ svn list --verbose file:///var/svn/repos
     16 sally         28361 Jan 16 23:18 README.txt
     27 sally             0 Jan 18 15:27 INSTALL
     24 harry               Jan 18 11:27 examples/

يسرد هذا المراجعة (الرئيسية) الأخيرة لأي ملف.

svn log url -l limitNumber - r fromReversion:toReversion

إذا ش تريد أن تجد المقبل في السن(أصغر) الارتداد( الإصدار ) على سبيل المثال

   svn log url -l 4 -r someVersion:1
 or
   svn log url -l 4 -r 99: 3

fromReversion أكبر من toReversion إذا ش تريد أن تجد المقبل الأحدث(أكبر) الارتداد( الإصدار )

  svn log url -l 4 -r someVersion:head
or   
  svn log url -l 4 -r 3:99
   fromReversion lower than toReversion
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top