Pergunta

Eu tenho me deixado louco nos últimos dias sobre este. Acabamos de configurar um servidor de integração contínua do Hudson. Por isso, ele executa um script de construção, cada um e todos os compromissos para validar a confirmação. A questão é que ele valida que todos os arquivos no repo têm os dois svn:keywords = "Id" e svn:eol-style = "LF" propriedades definidas em todos .php Arquivos, que normalmente seriam ótimos (a última vez que fiz isso, usei o Eclipse e a Tortoise SVN, que ambos têm SVN :: Add Functionity).

Mas o problema é que me acostumei bastante com o NetBeans. E netbeans não tem svn add função que eu posso encontrar (adiciona arquivos automaticamente após o comprometimento). O problema é que não posso adicionar as propriedades até que os arquivos sejam adicionados. Se eu comprometer sem adicionar as propriedades, a construção falhará. Por isso, acabo falhando na construção de todos os outros compromissos, porque preciso dar 5 etapas (comprometer, recursive, cometer, reconhecer a falha na construção, excluir a falha na compilação), para fazer algo que normalmente levaria apenas 2 (propset, comprometimento).

Eu realmente não quero voltar a eclipsar neste momento, mas quando leva 20 minutos para se comprometer porque preciso fazer tudo 4 vezes, vai envelhecer rapidamente ... há alguma solução alternativa que eu estou Falta (aquém da remoção da verificação da propriedade, que derrotará o ponto, já que eu quero essas propriedades definidas de qualquer maneira)? Ou eu sou apenas sol? ...

Foi útil?

Solução

Subversão tem um ~/.subversion/config arquivo que permite personalizar várias configurações diferentes, entre as quais está Auto-props, propriedades que são definidas automaticamente em arquivos com base em sua extensão:

Portanto, assumindo que o NetBeans respeita esse arquivo, você pode dizer ao SVN para definir automaticamente essas propriedades alterando o [auto-props] seção para incluir *.php = svn:eol-style=LF;svn:keywords=Id

Por exemplo:

[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

ATUALIZAR:

Netbeans 6.9 parece ler no ~/.subversion/config arquivo ligado comece e não faz alterações sem reinicialização. Depois de reiniciar o NetBeans, ele pega corretamente o meu selecionado Auto-props e aplica -os a cada arquivo recém -criado.

Atualização 2:

O NetBeans parece ler os arquivos de configuração de subversão global e pessoal (entre muitos outros arquivos de subversão) quando ele inicia. Aqui está uma parte relevante, como visto por 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

Exames adicionais parecem sugerir que, uma vez lido pelos arquivos de configuração, ele escreve uma cópia (usando O_TRUNC) do arquivo de configuração que ele armazena em ~/.netbeans/6.9/config/svn/config/config (pelo menos no Linux).

Com base nisso, presumo que a NetBeans esteja tentando ser inteligente o suficiente para usar as configurações de subversão que você definiu em seus arquivos de configuração, global e pessoal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top