Os arquivos de link simbólico sobrevivem ao SVN?

14

Digamos que eu crie um arquivo de link simbólico dentro de um caminho gerenciado do SVN, confirme o caminho para o SVN e, posteriormente, verifique o caminho.

  1. O arquivo de link simbólico sobreviverá?

  2. Se o arquivo de link simbólico é composto de um caminho relativo, ele funcionará "em todos os lugares" quando um checkout é feito?

  3. Existem dicas?

por jldupont 29.09.2009 / 19:36

4 respostas

16

Em geral, Sim .

No entanto, alguns clientes não funcionam corretamente com links simbólicos. Subclipse, para o IDE do Eclipse, cria diretórios em vez de links simbólicos.

Portanto, é melhor certificar-se de que o seu cliente está fazendo certo antes de entrar no desenvolvimento.

    
por 29.09.2009 / 19:56
22

Em a página Recursos do Subversion :

Symbolic links can be versioned.

Unix users can place symbolic links under version control. The links are recreated in Unix working copies, but not in win32 working copies.

  1. Sim

  2. Desde que as permissões não sejam alteradas, deverá.

  3. Não funcionará nos checkouts do Windows.

por 29.09.2009 / 19:44
8

links simbólicos não sobreviverão em uma máquina Windows, isso pode ser um problema.
Em máquinas Windows, os links simbólicos assumem a forma de arquivos de espaço reservado *), por exemplo:

style.css :

link ../www_public/styles.css

*): esses arquivos têm a propriedade " svn:special " com o valor " * ".

Às vezes, tenho que exportar coisas para uma máquina com Windows antes de poder mover / carregar o projeto para o servidor de destino.

Eu uso um pequeno script de shell que faz um trabalho maravilhoso ao recriar os links simbólicos reais dos arquivos de espaço reservado:

#!/bin/sh

grep -lr '^link ' . | while read placeholderfile
do
  linecount='wc -l $placeholderfile | cut -c1'
  if [ $linecount -eq 0 ] ; then
    linkfile='cut -c6- "$placeholderfile"'
    ln -sf "$linkfile" "$placeholderfile"

    echo -e "[\E[32;40mOK\E[37;40m] Replaced $placeholderfile with symlink"
  else
    echo -e "[\E[31;40mWARNING\E[37;40m] $placeholderfile contains newline(s)"
  fi
  tput sgr0
done

Este script funciona no pressuposto de que todos os arquivos que começam com a string " link " e não contêm novas linhas são links simbólicos.

    
por 29.09.2009 / 21:13
0

A partir do Windows 7, o SO entende os links simbólicos; veja aqui para alguma documentação . Os clientes SVN regulares no Windows ainda não suportam isso, mas o svn no cygwin faz isso!

    
por 31.05.2013 / 11:56

Tags