Pergunta

Eu tenho um projeto cujo código-fonte é controlado usando Subversion e VisualSVN.Como a versão do web.config é diferente no servidor e nos computadores dos desenvolvedores, quero que o arquivo permaneça nos computadores, mas seja ignorado pelo Subversion.Eu adicionei ao svn:ignore mas ele ainda permanece (e ainda tem um ponto de exclamação vermelho, já que não estamos enviando).

Como posso removê-lo do Subversion com segurança, sem que ele seja excluído do sistema de arquivos?

Obrigado Adin

Foi útil?

Solução

você terá que fazer a operação de remover e ignorar

  • primeiro faça um backup do seu arquivo local (como disse @ibz)
  • em seguida, remova o web.config do repositório.
  • em seguida, copie novamente o web.config para a mesma pasta
  • finalmente use svn:ignore para que o subversion não tente adicioná-lo novamente ao repositório

como eu uso o tortoisesvn, não posso dizer quais comandos svn você deve usar, mas usando o tortoisesvn seria:

  • fazer backup
  • clique com o botão direito do mouse em web.config na pasta sob controle do código-fonte, selecione TortoiseSVN | Excluir
  • clique com o botão direito em web.config na pasta sob controle de origem, selecione SVN Commit => depois disso você notará que o arquivo foi realmente excluído do sistema de arquivos
  • mover para cima e clique com o botão direito do mouse na pasta sob controle do código-fonte, selecione TortoiseSVN | Propriedades
  • na janela de propriedades clique em novo + nome da propriedade "svn:ignore";valor da propriedade "web.config".aceitar alterações
  • confirmar alterações

nos meus projetos .net incluo a seguinte exclusão com svn:ignore:bin, obj, *.suo, *.user

Outras dicas

Idealmente, você também deve manter versões da cópia do web.config do servidor no SVN.Geralmente renomeamos o web.config de produção para web.config.prod (uma cópia para cada um dos ambientes) e fazemos com que a ferramenta de construção escolha o arquivo correto e o renomeie de volta para web.config enquanto empacota para implantação.

svn rm --force web.config
svn commit

Tenha cuidado ao fazer backup de sua cópia local (do web.config) antes de fazer isso, pois ela será excluída.

Resolvi esse problema usando nant com ccnet.O seguinte script de construção nant substitui o arquivo web.test.config pelo arquivo web.config local;

<?xml version="1.0"?>
    <project name="Project1" default="build">
      <target name="init" depends="clean" />
      <target name="clean" />
      <target name="checkout"/>
      <target name="compile"/>
      <target name="deploy"/>
      <target name="test"/>
      <target name="inspect"/>
      <target name="build" depends="init, checkout">
        <call target="compile" />
        <call target="inspect" />
        <call target="test" />
        <call target="deploy" />
      </target>

      <copy file="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config" 
          tofile="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.config" 
          overwrite="true" 
       />
       <delete file="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config" />

    </project>

Tarefa de cópia NAnt

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