Netbeans отсутствие SVN Добавить - PullRequest
2 голосов
/ 06 августа 2010

Последние несколько дней я сводил себя с ума из-за этого.Мы только что закончили настройку сервера непрерывной интеграции Hudson.Таким образом, он запускает скрипт сборки каждый коммит для проверки коммита.Проблема в том, что он проверяет, что все файлы в репозитории имеют свойства svn:keywords = "Id" и svn:eol-style = "LF", установленные для всех файлов .php, что, как правило, было бы замечательно (в последний раз, когда я делал это, я использовал Eclipse и TortoiseSVN, который имеет функциональность svn :: add).

Но проблема в том, что я довольно привык к Netbeans.И у Netbeans нет функции svn add, которую я могу найти (она добавляет файлы автоматически при фиксации).Проблема в том, что я не могу добавить свойства, пока не будут добавлены файлы.Если я фиксирую без добавления свойств, сборка не удастся.Таким образом, я получаю ошибку при сборке при каждом другом коммите, потому что мне нужно сделать 5 шагов (фиксация, рекурсивная пропета, фиксация, подтверждение неудачной сборки, удалить неудачную сборку), чтобы сделать что-то, что обычно занимает всего 2 (propset, commit).

Я не очень хочу сейчас возвращаться к Eclipse, но когда мне требуется 20 минут, чтобы выполнить коммит, потому что мне нужно сделать все 4 раза, он быстро устареет ...Обходной путь, который я пропускаю (если не считать снятия проверки свойства, которая победит точку, так как я хочу, чтобы эти свойства были установлены в любом случае)?Или я просто СОЛ? ...

1 Ответ

3 голосов
/ 06 августа 2010

Subversion содержит файл ~/.subversion/config, который позволяет настраивать ряд различных параметров, среди которых auto-props , свойства, которые автоматически устанавливаются для файлов на основе их расширения:

Таким образом, предполагая, что Netbeans учитывает этот файл, вы можете указать svn автоматически устанавливать эти свойства, изменив в разделе [auto-props] значение *.php = svn:eol-style=LF;svn:keywords=Id

Например:

[auto-props]
# here's yours
*.php = svn:eol-style=LF;svn:keywords=Id
# and one with multiple keywords
*.c = svn:eol-style=native;svn:keywords=Author Date Rev Id HeadURL
# and one with a mime-type
*.png = svn:mime-type=image/png

UPDATE

Netbeans 6.9, по-видимому, читает в файле ~/.subversion/config при запуске и НЕ перехватывает изменения без перезапуска. После перезапуска Netbeans он правильно выбирает мои выбранные auto-props и применяет их к каждому вновь созданному файлу.

ОБНОВЛЕНИЕ 2 :

При запуске NetBeans считывает как глобальные, так и личные файлы конфигурации Subversion (среди многих других файлов Subversion). Вот соответствующая часть, которую видит strace:

stat("/home/kibab/.subversion/config", {st_mode=S_IFREG|0644, st_size=4576, ...}) = 0
open("/home/kibab/.subversion/config", O_RDONLY) = 28
open("/etc/subversion/config", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/kibab/.netbeans/6.9/config/svn/config/config", {st_mode=S_IFREG|0644, st_size=825, ...}) = 0
stat("/home/kibab/.netbeans/6.9/config/svn/config", {st_mode=S_IFDIR|0755, st_size=61, ...}) = 0
open("/home/kibab/.netbeans/6.9/config/svn/config/config", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 28

Дальнейшее изучение, по-видимому, подразумевает, что, прочитав файлы конфигурации, он записывает копию (используя O_TRUNC) файла конфигурации, который хранится в ~/.netbeans/6.9/config/svn/config/config (по крайней мере, в Linux).

Исходя из этого, я предполагаю, что Netbeans пытается быть достаточно умным, чтобы использовать любые настройки subversion, которые вы установили в своих конфигурационных файлах, как глобальных, так и личных.

...