Какие-либо рекомендации для развертывания от SVN, с номерами версий, записанными в мой код автоволшебно?

Другое событие 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));
}

6
задан nickmjones 15 September 2008 в 20:34
поделиться

8 ответов

Методы свойств только дадут Вам последнее количество пересмотра файла, у Вас есть свойство в, не главный пересмотр целого репозитория (а-ля нижний колонтитул Переполнения стека). Если Вы будете желать это, то необходимо будет использовать svnversion.

Я недавно начал использовать Capistrano на проекте и этом превосходный и очень гибкий и мощный. Я закончил тем, что отклонился довольно далекий от его нормального использования, но оно делает одно развертывание "щелчка" намного легче.

3
ответ дан 9 December 2019 в 20:51
поделиться

Я - поклонник использования capistrano для нажатий. Обратитесь к здесь.

Вы могли использовать свойство $Rev$ SVN для получения числа пересмотра в нижний колонтитул.

1
ответ дан 9 December 2019 в 20:51
поделиться

Если Вы хотите обновить номер версии в проекты AssemblyInfo.cs, можно интересоваться этой статьей:

CodeProject: Используйте числа Пересмотра Подверсии в своих Проектах Visual Studio

Если Вы включаете Ключевым словам SVN затем каждый раз, когда Вы регистрируетесь в Подверсии проекта, сканирует Ваши файлы для определенных "ключевых слов" и заменяет ключевые слова некоторой информацией.

Например, Во главе моих исходных файлов я создал бы заголовок, содержат следующие ключевые слова:

'$Author: $
'$Id: $
'$Rev: $

Когда я проверяю этот файл в Подверсии, эти ключевые слова заменяются следующим:

'$Author: $ paulbetteridge
'$Id: $ myfile.vb 145 2008-07-16 15:24:29Z paulbetteridge
'$Rev: 145$

2
ответ дан 9 December 2019 в 20:51
поделиться

Сценарий к svn обновляет по мере необходимости.

SVN поддерживает ключевые слова. Можно добавить, какие ключевые слова Вы хотите развернуть до свойства ключевых слов, и SVN расширится затем. Посмотрите $Id$ или $Rev$ или ключевые слова, описанные в книге SVN.

2
ответ дан 9 December 2019 в 20:51
поделиться

Сначала включите замену ключевого слова на файл, где Вы хотите иметь информацию о пересмотре:

svn propset svn:keywords "Rev" file.txt

Добавление к файлу, где Вы хотите информацию о Пересмотре, сохранило:

$Rev$

Дополнительные материалы для чтения: http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html

4
ответ дан 9 December 2019 в 20:51
поделиться

Действительно простой способ управлять этим состоит в том, чтобы установить Ваше приложение следующим образом:

Просто сделайте свое приложение развертывания рабочей копией Вашей соединительной линии (svn co проект к Вашему корню/www), и Вы работаете svn up через ssh консоль (ssh user@host.com svn up /path/to/project) когда необходимо обновить. Можно также откатывать с соответствующими механизмами контроля. Это важно: если Вы делаете это, добавьте RewriteRules (или эквивалентный) к Вашему .htaccess (или эквивалентный) для запрещения доступа к .svn каталогам. Если Вы не можете сделать вышеупомянутого, работать svn export через ssh вместо этого (таким образом, это не будет 'рабочая копия'), но это естественно будет медленнее, чем выполнение up.

Кроме того, можно посмотреть на то, что Ruby on Rails делает с Capistrano.. это - то же фундаментальное понятие, но поддерживает транзакционные резервные копии, если обновление идет не так, как надо в середине путем хранения каждого контроля в отдельной папке и symlinking "последнее" к/www каталогу.

0
ответ дан 9 December 2019 в 20:51
поделиться

Материал ключевых слов перестанет работать в большом количестве случаев - как то, если Вы изменили источник перед развертыванием, или если Вы зарегистрируетесь из одного каталога в Вашем проекте затем, то другой каталог в том же проекте будет иметь различные числа пересмотра. Проверьте документы тщательно, чтобы удостовериться, что ключевые слова делают то, что Вы думаете, что они делают.

Лучший путь состоит в том, чтобы использовать svnversion программу для генерации информации о проверенных каталогах во время компиляции или время развертывания. Svnversion покажет информацию о версии ВСЕХ Ваших каталогов, а также установки флага, был ли источник локально изменен.

0
ответ дан 9 December 2019 в 20:51
поделиться

Метод я предстал перед своими php проектами, может не быть лучший метод, но через какое-то время ищущий, конечно, кажется, должен сделать контроль, выполнять проверку версии, вытереть .svn папки и идти дальше. Вот часть сценария оболочки, который я записал:

(сначала, Вам нужен сценарий контроль Ваш repo),

# get the svn revision number and create a RELEASE file
svnvers=`svnversion .`
echo "version: $svnvers"
echo "<release><development>0</development><revision>$svnvers</revision></release>" > RELEASE

# remove all .svn directories
find . -name .svn -exec rm -rf {} \;
0
ответ дан 9 December 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: