سؤال

أحاول إنشاء مكون إضافي SVN Eclipese EFS ولدي مشاكل عند الحصول على أسماء الإدخالات.

عندما أقوم بإجراء مكالمة إلى: svnrepository

`// يجلب محتويات الدليل إلى كائن المجموعة المقدم ويعيد إدخال الدليل نفسه.

svndirentry getdir (مسار السلسلة ، المراجعة الطويلة ، المنطقية includeCommitMessages ، إدخالات التجميع) `` `` `` `` `

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

لا أحد يعرف لماذا يحدث هذا؟ و/أو إذا كان هناك حل بديل؟

يرى:http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/svnrepository.html http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/svnrepository.html#getdir(java.lang.string, ، طويل ، منطقي ، java.util.collection)

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

المحلول

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

تعامل مع الأمر مثل أمر "LS" لسرد الإدخالات في الدليل. سيتم تمثيل الدليل نفسه باسم ".". أو من الأفضل أن نقول أن اسم الإدخال بالنسبة للدليل وبالنسبة للدليل نفسه ، فهو سلسلة فارغة.

لا أحد يعرف لماذا يحدث هذا؟ و/أو إذا كان هناك حل بديل؟

استخدم direntry.geturl () ثم يمكنك حساب الاسم من مسار عنوان URL. أيضًا ، اسم الدليل هو إما جزء من معلمة "المسار" أو جزء من عنوان URL لموقع كائن SVNRepository.

نصائح أخرى

لقد راجعت و SVNDirEntry عاد من قبل getDir() الطريقة دائما لها سمة اسمها على سلسلة فارغة.

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

أعتقد أن السلوك هو عربات التي تجرها الدواب إلى حد ما على الرغم من أنه لا يزال بإمكانك معرفة اسم SVNDirEntry من خلال عنوان URL الخاص به:

SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null);
String name = SVNPathUtil.tail(dirEntry.getURL().getPath());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top