Definir o SVN “executar” bit em um repositório Subversion usando TortoiseSVN ou linha de comando SVN

StackOverflow https://stackoverflow.com/questions/103395

Pergunta

Eu tenho um aplicativo de código aberto que está hospedado em code.google.com. É multiplataforma (Linux / Windows / Mac). Fiz upload o código inicialmente a partir de uma máquina de WinXP usando TortoiseSVN e parece que nenhum dos arquivos em lote "Configurar" que são utilizados para a construção linux têm os seus "executar" bits definido.

Qual seria a maneira mais fácil de configurar estes para os arquivos que precisam deles? Usando TortoiseSVN seria mais fácil, eu suponho, mas se isso não pode ser usado, então eu também poderia usar a linha de comando SVN na minha máquina linux.

Foi útil?

Solução

Com tartaruga SVN, é muito fácil: você pode selecionar vários arquivos (pode ser de resultados de pesquisa, para que eles não tem que ser no mesmo diretório), selecione "Propriedades" no menu TortoiseSVN, adicione a propriedade necessária (não é uma lista pendente das propriedades mais utilizados, neste caso, "SVN: executável") e definir o valor (neste caso, "*"). Se cometer os arquivos alterados e verificar-los no Linux, o bit executável será definido.

Se você quiser definir mais de uma propriedade de uma só vez, pode ser mais seguro (no caso de erros) para primeiro conjunto as propriedades corretamente para um arquivo, exportá-los para um arquivo, selecione todos os arquivos necessários, selecione a opção " Propriedades" no menu e importar as propriedades salvas anteriormente.

Outras dicas

Aqui está como fazê-lo na linha de comando:

for file in `find . -name configure`; do
  svn ps svn:executable yes ${file}
done

Ou para apenas um arquivo (configure é o nome do arquivo aqui):

svn ps svn:executable yes configure

No Unix use {} para resultset endereço:

find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;

Alguém sabe por que esta propriedade requer "sim" como argumento válido? Encontrado outro exemplo com '' em vez de sim, funciona também ...

find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;

Claro que o mesmo vale para .exe, etc.

método para restaurar as permissões executáveis ??que são perdidos durante svn import:

copiar permissões de sua fonte original que você usou durante a importação svn (dir atual para version1):

find . -type f | xargs -I {} chmod --reference {} ../version1/{}

em seguida, definir svn: executável para todos os executáveis ??usando o seguinte shell script:

for file in `find . -executable -type f`; do
  svn ps svn:executable yes ${file}
done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top