Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Просто добавив к окнам DarenW - For существует действительно хороший серверный продукт Подверсии, который является бесплатным и делает жизнь мечтой - Сервер VisualSVN. Это упаковывает последнюю Подверсию, встраивают в единственный установщик MSI, и добавляет в очень полезной консоли управления.
Вы обновили до Подверсии 1.5? Это включает автоматизированное отслеживание слияния. Это может решить Вашу проблему. Это кажется, что Вы уже знакомы с самим инструментом, и это свободно. Так, при обновлении текущего решения 1,5, у Вас не будет почти кривой обучения, и нулевая стоимость - плюс Вы не должна будет проходить боль портирования Вашего существующего кода к новой системе управления исходным кодом.
То, что Вы думаете, сложно о DVCS как МЕРЗАВЕЦ? Это более просто до некоторой степени: никакой клиент/сервер, никакой repo в одном месте с рабочим dir в другом месте, управление пользователями не встроено (используйте ssh при необходимости в нем). Как Jim Puls сказал, можно использовать DVCS, любят нераспределенный, если Вы хотите. Я использую МЕРЗАВЦА для индивидуальных проектов, даже, которые длятся только несколько недель. Нет ничего точно как Черепаха, но gitk, qgit, и мерзавец-gui лучше для тех функций, чем я видел с SVN. Я раньше предпочитал guis, но теперь я довольно люблю командную строку мерзавца - но выезд easygit для некоторого improvents.
В то время как альтернативы подверсии могут быть хорошими, подверсия с помадой может сделать очень хорошо. Вот обзор фронтэндов для подверсии, которые работают на Mac: http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html
Это структурировано с точки зрения альтернатив CVS, а не SVN, но неважно - он перечисляет несколько альтернатив, включая другие нераспределенные. http://better-scm.berlios.de/alternatives/
Я, вероятно, собираюсь быть обожженным для этого, но если Вы не отсутствуете для бесплатного продукта, Сервер Основы Команды MS достойный внимания. В отличие от других продуктов MS, которые останутся неназванными, управление исходным кодом серьезно и полностью функционально. Объединение, что с интеграцией IDE, автоматизированная сборка / тестирует механизм и функциональность управления работой и это является довольно потрясающей. Конечно, это нацелено на компании и оценено для удовлетворения.
Примечание: Я не обеспокоился бы этим, если Вы не разрабатываете, прежде всего, в Visual Studio.
мерзавец - http://git.or.cz/ (я довольно люблю мерзавца, великого ветвление и распределенная разработка) - http://github.com/ является большим рабочим примером.
Одна вещь, которая не была упомянута еще, состоит в том, что совершенно возможно использовать мерзавца тем же централизованным способом, что Вы привыкли к с Подверсией. Это действительно - выдающаяся часть программного обеспечения.
Я использовал Clearcase много. Пока Вы делаете свои слияния часто, это может быть довольно легко, и также возможно иметь задания слияния, работающие в фоновом режиме. Вы обязаны вмешиваться, если существует конфликт слияния.
Однако это дорого, и может быть трудно найти квалифицированных администраторов Clearcase.
Вы когда-либо спрашивали себя, почему Вы переносите столько операций ответвления/слияния? Существует ли способ упростить Ваш процесс разработки?
Подверсия, по моему скромному мнению, является хорошим приложением KISS (Сохраните это простым, глупым), принцип. Перевод: По моему опыту, Вы получите намного большее повышение производительности от оптимизации Вашего процесса разработки, чем от получения более сложного инструмента.
Любое из распределенных решений. Мерзавец, подвижный и т.д. Мое предпочтение было бы мерзавцем.
Необходимо проверить Accurev. Это действительно наводит и кликает по созданию новых потоков (как ответвления, но лучше IMO), и целое понятие кода, текущего через потоки, делает слияние намного менее болезненным, и часто посещайте задачу. Это очень просто администрировать, имеет бесплатную лицензию с 3 пользователями и встроило большие инструменты визуализации.
Я также был сыт этими ограничениями по горло в старых версиях Подверсии. Все же никто больше в моем ветвлении использования компании и слиянии. Каждый из них, при попытке новой возможности, получил другой контроль, взлом взлома взлома и избавился от него, если было плохо - фиксация, когда хороший. Просто иногда они фиксировали что-то плохо ;)
Таким образом, я начал использовать мерзавца + svn. Значение: у Меня есть svn контроль, и в этом каталоге я запустил мерзавца. Теперь у меня есть быстро слияние и ветвление, и я не прерываю никакого другого. Если я должен попробовать новую возможность X, просто branch/checkout/hack-hack. Если я должен теперь взять некоторое решающее обновление от нашего SVN repo: притон мерзавца, ведущее устройство контроля мерзавца, svn обновление, фиксация мерзавца-a, функция-X контроля мерзавца, перебаза мерзавцев, притон мерзавца применяется (все это, потому что мерзавец-svn не работает над Windows).
Похож на большое количество операций, но они быстры. Я имею в виду действительно быстро. И дайте мне гибкость, в которой я нуждаюсь (см. мою статью о мерзавце + Visual Studio).
Я думаю, что Базар может сделать подобные вещи и мог бы быть лучше в одной вещи: это может легко поддерживать нераспределенную, основанную на центральном репозитории разработку.
Я произошел из По необходимости магазин в магазин Подверсии и пропустил большое ветвление и слияние поддержки, которая По необходимости имеет. Так, По необходимости была бы моя первая рекомендация, но затем она стоит денег :).
Подверсия 1,5 взгляда, обещающие, поскольку это - поддержка отслеживания слияния, но это отмечено как основополагающее и не похоже на него, будут иметь минимальную из поддержки слияния, которую я готов принять (т.е. Как будто по необходимости) в ближайшее время.
Так, я склоняюсь к распределенному VCS, конкретно Базар:
По необходимости превосходный инструмент, но вне 2 пользователей он будет стоить Вам, поскольку он нацелен на профессионалов. Мы используем его с довольно тяжелой переходящей схемой (1 ответвление на функцию во время основной разработки), и это работает хорошо. Отчасти как "Паутина", переходящая используемый Microsoft (который использовал измененную более старую версию По необходимости), но я не могу найти историю онлайн теперь.
Вы изучили распределенное управление версиями, такое как Мерзавец? Каждый "контроль" является по существу ответвлением... это - довольно другой образ мыслей об управлении исходным кодом.
Мерзавец свободен, создается Linus Torvalds и используемый для Linux (среди многих других проектов, конечно).
По необходимости свободно максимум для 2 пользователей.
Я не на 100% уверен в том, что Вы ожидаете, могут/должны быть автоматизированным, но по необходимости является очень высококачественным. Можно легко создать и поддержать ответвления, и можно объединиться легко. Довольно легко избирательно подойти к выбору определенных изменений, которые Вы внесли в одном ответвлении, и объедините их в другое ответвление с высокой степенью автоматизации.
Пластиковый SCM - это все о ветвлении и слиянии ... стало проще. Проверьте его графический интерфейс и сравните с другими альтернативами.