Domanda

Ho un progetto controllato dal codice sorgente utilizzando Subversion e VisualSVN.Poiché la versione di web.config è diversa sul server e sui computer degli sviluppatori, desidero che il file rimanga sui computer ma venga ignorato da Subversion.L'ho aggiunto a svn:ignore ma rimane ancora (e ha ancora anche un punto esclamativo rosso poiché non lo stiamo impegnando).

Come posso rimuoverlo da Subversion in modo sicuro senza che venga eliminato dal file system

Grazie, Adin

È stato utile?

Soluzione

dovrai eseguire sia l'operazione di rimozione che quella di ignoramento

  • prima esegui un backup del tuo file locale (come ha detto @ibz)
  • quindi rimuovere web.config dal repository.
  • quindi copiare nuovamente web.config nella stessa cartella
  • infine usa svn:ignore in modo che subversion non tenti di aggiungerlo nuovamente al repository

dal momento che utilizzo tortoisesvn non posso davvero dirti quali comandi svn devi usare, ma usando tortoisesvn sarebbe:

  • fare il backup
  • Fare clic con il tasto destro su Web.Config Nella cartella sotto il controllo di origine, selezionare Tortoisvn | Eliminare
  • fare clic con il tasto destro su web.config sulla cartella sotto il controllo del codice sorgente, selezionare SVN Commit => dopodiché noterai che il file è effettivamente eliminato dal file system
  • Sposta su e fai clic con il tasto destro sulla cartella sotto il controllo della sorgente, selezionare TortoisVN | Proprietà
  • nella finestra delle proprietà fare clic su nuovo + nome proprietà "svn:ignore";valore della proprietà "web.config".accettare le modifiche
  • commettere modifiche

sui miei progetti .net includo la seguente esclusione con svn:ignore:bin, oggetto, *.suo, *.utente

Altri suggerimenti

Idealmente, dovresti mantenere anche le versioni della copia del server di web.config in SVN.Di solito rinominiamo il web.config di produzione in web.config.prod (una copia per ciascuno degli ambienti) e chiediamo allo strumento di compilazione di scegliere il file giusto e di rinominarlo nuovamente in web.config durante il confezionamento per la distribuzione.

svn rm --force web.config
svn commit

Fai attenzione a eseguire il backup della tua copia locale (di web.config) prima di farlo, poiché verrà eliminata.

Ho risolto questo problema utilizzando nant con ccnet.Il seguente script nant build sostituisce il file web.test.config con il file web.config locale;

<?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>

Attività di copia NAnt

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top