NetBeans — SVN — ВОЙНА Java

Я очень новичок в SVN. Я создал собственный репозиторий, работающий на веб-сервере Apache, и использую среду IDE NetBeans 6.9.1 для создания веб-приложения Java. Я успешно передал свой проект веб-приложения в свой репозиторий, используя встроенную функцию Subversion.

Теперь я хотел бы проверить определенные версии репозитория на моем веб-сервере (tomcat). Я могу сделать это с помощью команды SVN CO, однако в настоящее время NetBeans фиксирует только следующие файлы/каталоги. build.xml nbproject/src/test/web/

В идеале (я думаю) я хочу зафиксировать файл WAR моего веб-приложения из папки dist/, таким образом развернув проект, когда я проверяю версию.

Я заметил, что когда я щелкаю правой кнопкой мыши свой проект в NetBeans и выбираю «Subversion > Svn Properties», появляется инструкция svn:ignore со значениями build и dist. Я почти уверен, что именно поэтому папка dist не фиксируется в репозитории.

  1. Является ли лучший способ зафиксировать файл WAR для последующего использования с командой проверки, зафиксировав папку dist? я. Если да, то как удалить оператор svn:ignore в свойствах Svn? Я попытался удалить его, но он автоматически появляется снова. II. Если нет, как я могу более эффективно использовать SVN и свой репозиторий для обновления своих веб-приложений?

Большое спасибо за вашу помощь!


person Steve    schedule 07.03.2011    source источник


Ответы (1)


Не коммитить файлы, которые могут быть сгенерированы из исходников. Или, по крайней мере, если вы действительно хотите закоммитить релизные файлы, закоммитите их в отдельное дерево, отсоединенное от папки dist, где вар собирается и пересобирается во время разработки.

Релиз должен быть зафиксирован (если это так) только после того, как вы успешно прошли все свои тесты, и вы всегда должны создавать тег для всего исходного дерева после того, как у вас есть релиз. Таким образом, вы всегда можете извлечь тег и перестроить тот же выпуск. И вы также можете легко создать ветку обслуживания выпущенной версии, работая над следующей версией в основной ветке.

person JB Nizet    schedule 07.03.2011
comment
Спасибо, Джей Би. Как создать отдельное дерево для файла WAR и обеспечить его фиксацию при фиксации проекта из NetBeans? Или, в качестве альтернативы, как я могу автоматизировать компиляцию исходных файлов с моего веб-сервера (мне нравится идея просто запускать svn update с параметром -r или без него)? - person Steve; 07.03.2011
comment
Выпускайте на веб-сервер только тогда, когда у вас есть хороший набор новых функций или исправлений ошибок, и когда вы прошли все тесты (модуль, интеграция, приемка, производительность и т. д.). Хорошая идея выпускать релизы часто, но не при каждом коммите. Кроме того, ваш репозиторий SVN очень быстро станет огромным, если вы будете совершать новую войну при каждом коммите. Если вы настаиваете на выпуске (например, на тестовый сервер) после каждой фиксации, я предлагаю использовать сервер непрерывной интеграции, такой как Hudson, который будет обнаруживать изменения в дереве SVN, компилировать и запускать все тесты, а затем выпускать, если все в порядке. - person JB Nizet; 07.03.2011
comment
Отлично, спасибо JB, это имеет больше смысла! До прошлого года я все еще писал свои Java-приложения/веб-приложения в блокноте, поэтому я только начинаю привыкать ко всем замечательным функциям IDE, экономящим время. Hudson - еще один, о котором я слышал, но никогда не использовал. Я посмотрю на него. Еще раз спасибо, +1. - person Steve; 07.03.2011