Come eliminare una directory in SVN-repository e impostarlo su svn: ignore allo stesso tempo?

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

  •  12-09-2019
  •  | 
  •  

Domanda

Voglio cancellare una directory nel repository tramite linea di comando. Allo stesso tempo, non voglio propagare Subversion questo cambiamento alla copia di lavoro locale.

La directory nella copia di lavoro deve essere rimasta intatta in quanto è (ahimè, voglio impostare svn: ignore). In ogni caso, non ho potuto trovare un modo per raggiungere questo obiettivo, senza l'elimina la propagazione alla mia copia di lavoro.

È stato utile?

Soluzione

Per quanto ne so, questo è impossibile. svn:ignore non farà nulla una volta che i file sono effettivamente versione.

Si rende qualcosa di simile in qualche modo pericolosa da fare, come le persone potrebbero avere variazioni locali che vogliono mantenere. Se non fate attenzione, potrebbero perdere la loro.

Altri suggerimenti

come Thorarin detto questo, non sembra possibile, dal momento che il comando di eliminazione sarebbe ottenere propagato a prescindere dal svn:. ignore

Invece di eliminare, una migrazione più sicura potrebbe essere quella di rename la directory problematico (a qualcosa come dir.old, e quindi aggiungere svn: ignorare il nome della directory originale Si potrebbe quindi dire alla gente di. copiare manualmente loro directory di nuovo al nome originale, prima di eliminarlo completamente.

A seconda del tipo di file in questa directory, si potrebbe anche voler mantenere in giro in modo permanente, come un luogo per gli sviluppatori per sincronizzare i loro cambiamenti. In questo caso si può far capire che si tratta di una directory modello chiamando qualcosa come dir.tmpl, in modo che non venga utilizzato direttamente.

Ecco una risposta rubato a un'altra domanda ( Maciej Łebkowski !):

Dalla mia esperienza: don `t messo quel file sotto controllo di versione e l'uso svn:. Ignorarlo su di esso

E 'un po' difficile all'inizio, dal momento che non si può ignorare un file che è giá sotto controllo di versione, e non è possibile rimuovere un file dal controllo di versione senza rimuoverlo dal disco rigido (e da ogni copia di lavoro sulla prossima aggiornamento ...). Ma quando finalmente si riesce a impostare il pronti contro termine correttamente, funziona come fascino. Non dimenticate di aggiungere un generico-template al posto del file di configurazione originale (in modo che tutti conoscono nuove variabili di configurazione, e così via).

Per la nuova repo:

mkdir config
svn add config
svn propset svn: ignore '* .conf' config

Per repo esistente: essere sicuri, di avere una copia di backup della vostra configurazione in ogni copia di lavoro, quindi rimuovere (svn del) config dalla repo, commit (si prega di notare: il file sarà cancellato in ogni copia di lavoro sul prossimo aggiornamento ! devi avere una copia di backup) e quindi ripristinare il file e impostare la proprietà ignorare.

Un altro modo è una serratura. Garantisce che nessuno impegna il file, ma si tradurrà in un errore su ogni commit. non è molto bello.

E la terza via - di modifiche, una nuova funzionalità di SVN 1,5 clienti. Questo è pulito, ma è solo relativa ad una copia di lavoro, non a un repository globale. E bisogna configurarli manualmente, aggiungere ogni nuovo file -. E 'difficile mantenere

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