Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Trac. ( http://trac.edgewall.org/ ) не замечательный, но от того, что я видел для SVN, это является лучшим.
С Управлением доступом для начальной загрузки.
мне удалось настроить буровую установку с даже полномочиями на каталог для различных trac пользователей (они просто не появились).
некоторое время tho.
Кожа По умолчанию выглядит довольно хорошей, и является очень настраиваемой.
Идет с Wiki & средство отслеживания ошибки, которое можно отключить, если Вы хотите.
Подозрительный взгляд Atlassian http://www.atlassian.com/software/fisheye/ является коммерческим, без которого я не могу жить!
(полное раскрытие... Я нанимаюсь Atlassian, но я говорю беспристрастно, что Подозрительный взгляд является лучшим там, который я использовал)
redmine - то, что мы используем на работе. Это подобно trac, но предлагает нескольким возможность проекта. Достойные, позволяющие основанные на роли полномочия браузера на каждом проекте и каждом проекте основаны на поддереве репозитория.
Также позволяет Вам просмотреть другие типы хранилища, имеет хранилище файлов для публикации файлов и Wiki - все из которых могут быть отключены или включены на основе на проект.
Магистральная версия разработки (набор для становления версией 1.1) ViewVC поддерживает управление доступом. ViewVC является featureful как средством просмотра репозитория, и интуитивный для использования, без любых ненужных отдельно оплачиваемых предметов.
sventon выглядит очень интересным. Это - servlet/jsp решение, записанное сверху svnkit библиотеки Java. Это может действовать как истинный клиент, таким образом, этому не нужен прямой доступ репозиторий (как ViewVC, например). Это может использовать управление доступом самого репозитория.
Я не нанимаюсь Atlassian, и подозрительный взгляд является большим. Я думаю, добавляя в тигле, делает его реальной победой. (в прошлом я использовал websvn и нашел что быть в порядке). Мне действительно не нравится интерфейс viewVC. Существует что-то об этом, которое делает его тяжелее для меня к groc изменениями, я не знаю что.
Мы использовали ViewVC для просмотра и CVS и репозитории SVN, но так как мы переключились на FishEye, у нас наконец есть действительно хорошее решение для просмотра кода и исследования.
Мы также используем другие продукты Atlassian (Jira и Confluence), и интеграция между всеми ними просто чудесна!
пз. Я не сотрудник Atlassian:)
http://beanstalkapp.com/ разместит Ваш репозиторий и сделает его пригодным для навигации одновременно.
Вы должны взглянуть на ] http://www.groowiki.com
Мы планируем добавить функции контроля доступа, которые вы упускаете, это запланировано на будущее. Мы также нацелены на поиск, поддержку рабочего процесса, и прямо сейчас вы можете добавить описание к файлу и каталогам. используя radeox и пишите плагины на Java или Groovy.
И да, я связан с Groowiki. Я написал это и планирую развивать дальше. И это также бесплатно и коммерчески. Лишь очень немногие функции имеют закрытый (не открытый) исходный код, поэтому крупные компании, которым нужны эти функции, поддерживают его разработку.
WebSVN ? Он написан в PHP, легкий и простой. Проверьте демонстрацию .