Это сравнивает два несортированных массива:
function areEqual(a, b) {
if ( a.length != b.length) {
return false;
}
return a.filter(function(i) {
return !b.includes(i);
}).length === 0;
}
Необходимо смотреть на Redmine ( http://www.redmine.org/ ). Это имеет все функции, которые Вы упоминаете и т.д. Можно разместить его самостоятельно vps (я делаю).
Я выполняю Trac + По необходимости, я продолжал бы пытаться заставить GitPlugin работать.
Я нашел это при поиске на днях, но я лично еще не использовал его, таким образом, я не могу ручаться за него.
Gitweb может быть хорошим, но он не имеет интегрированной покупки билетов или Wiki или чего-либо как этот.
Assembla обеспечивает Wiki, билеты и другие вещи бесплатно, и позволяет интеграция GitHub . Если Вы не хотите использовать GitHub, можно использовать плоскость Мерзавец с Assembla (со всеми положительными героями, которых Вы получаете с любым другим проектом).
Оценка является дешевой, также (" 2$ на члена команды в месяц").
Мы используем Trac и оба из двух плагинов Мерзавца - GitPlugin, а также GitWebPlugin. Посмотрите, у нас на самом деле есть три репозитория (длинная история), и Trac все еще ограничен единым репозиторием. Так, я записал свой собственный плагин, который определяет синтаксис Wiki (Макросы на самом деле) для ссылки на репозиторий, ответвление или фиксацию, и они связываются со ссылками GitWebPlugin. Я также смог записать некоторые сценарии рычага мерзавца так, чтобы мы могли сослаться, закрыть или изменить билеты Trac в сообщениях о фиксации - это - измененная версия рычага фиксации SVN, который идет с Trac.
основная проблема с GitPlugin состоит в том, что это медленно из-за отсутствия "libgit" библиотеки. Это не плохо для проектов маленьких среднего размера, но крупные проекты являются болью. При реальной необходимости в быстром веб-интерфейсе, необходимо действительно проверить Cgit. Cgit делает свой собственный libgit, таким образом, он связывается с конкретной версией Мерзавца.
истина , однако, то, что веб-представления Мерзавца не настолько полезны кроме тех случаев, когда Вы хотите отправить кому-то ссылку (как в электронном письме или IRC). Поскольку с Мерзавцем у Вас есть весь репозиторий в каждом клоне, Вы - очень более обеспеченные инструменты использования как gitk
или даже простой git log
. Запросы и захват возможностей действительно удивительны и (очевидно) быстры. Я нахожу, что Cgit и GitWeb действительно только полезны для отправления ссылок к фиксациям, и это довольно редко.
gitweb является большим и легким установить, мерзавец gui не плох ни один
Кстати, с InDefero вы можете использовать хостинг с 250 МБ свободного места и неограниченное количество частных / общественных проектов. Вариант с размещением предлагает Git и Subversion, но, к сожалению, еще не Mercurial: /
Поскольку этот вопрос был задан, GitHub теперь интегрировал отслеживание проблем. Немного легкий, но для меня это бонус.
Совет. Совершенно другой способ получить функциональные возможности Trac по продаже билетов - ditz .
«Ditz - это простой, легкий распределенный трекер ошибок, разработанный для работы с распределенными системами контроля версий, такими как git, darcs, Mercurial и Bazaar».
Ваши билеты хранятся вместе с вашим кодом . Невозможно потерять одно и получить другое; Что хорошо. Веб-сайт, похожий на Trac, создается с помощью инструмента командной строки ditz
.
Мне это нравится.
Перехватчик постприема Trac Github теперь исправлен: http://support.github.com/discussions/post-receive-issues/118-trac-service-hook