Come faccio a evitare gran numero di svn: mergeinfo quando si unisce tronco ad una caratteristica ramo in SVN

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

  •  05-10-2019
  •  | 
  •  

Domanda

Sto cercando di mantenere una caratteristica ramo aggiornata dalla fusione tronco nel ramo. Il problema è, che circa 2000 file che non v'è stato quando il ramo è stato creato, e che è stato lasciato intatto sia sul ramo e sul tronco è sempre aggiornato con nient'altro che svn: mergeinfo. Il progetto è piuttosto grande in scala, e l'impatto sulla nostra storia SVN è così grande, che rende l'unione commettere storia inutilizzabile in quanto sta segnando letteralmente migliaia di file modificati, anche se l'unica modifica a questi file, è fatto da SVN stesso.

Ho cercato

  • Utilizzando la stessa versione del client come il Repo (1.5.2)
  • Uso la mia attuale versione client 1.6.10
  • Fusione di una serie di revisioni, di ramo inizia fino testa

Devo dire, che ho cercato attentamente la documentazione SVN quando si cerca questo. Quindi, senza regole dovrebbero essere rotto (ad esempio non. Commutati sottostrutture, pulito copia locale, ecc.)

È stato utile?

Soluzione

Bascially per ripulire il repository è necessario eseguire le seguenti operazioni sul ramo di integrazione in modo che i tifosi cambiare fuori da lì: -

C:> svn propdel svn: mergeinfo -R

vale a dire. lo si fa nel bagagliaio in modo che le future release e dispongono di filiali non sono inquinati. Quando si uniscono filiali esistenti si può ignorare tutte svn:. Modifiche merginfo inferiori alla "radice merge" in quanto saranno ereditate comunque

Ho scritto un blog su questo tema un po 'indietro, che copre in modo più dettagliato: -

Pulizia in svn: mergeinfo Escrementi http://chrisoldwood.blogspot.com/2010/03/cleaning -up-svnmergeinfo-droppings.html

Altri suggerimenti

svn aggiungerà mergeinfo oggetti da singoli file se si pensa che il loro differisce storia unione da quello della loro directory padre. Una volta che è successo, tutti successiva unione, non importa quanto innocuo, farà sì che tali proprietà mergeinfo da aggiornare. Ho trovato la prima metà del questo articolo utile per capire perché ciò accade.

Se si vuole evitare questi continui cambiamenti mergeinfo, dovrete "riordinare" le proprietà mergeinfo esistenti sul ramo. Il più sicuro, anche se più laborioso, modo è quello di eseguire svn propget -R svn:mergeinfo sul ramo, e quindi studiare le differenze tra il mergeinfo sui singoli file e la mergeinfo della loro directory padre. Potreste scoprire che le differenze sono piccole, e che "svn merge" ing un piccolo numero di singoli revisioni sarà sufficiente a innescare mergeinfo elisione, causando tutte le singole proprietà mergeinfo a scomparire.

se siete sicuri di capire come funziona mergeinfo, si può anche semplicemente guadare e modificare o rimuovere manualmente il mergeinfo dai file offendere.

Se si dispone di tale mergeinfo su file che sono in realtà non si cambiata o qualcun altro fa unioni non dalla radice copia di lavoro ... L'unica soluzione è quella di rimuovere lo svn: mergeinfo dai file, causa l'unica posizione è nel lavoro radice copia in nessun altro luogo. E un altro punto è necessario aggiornare il repository per 1.6.x ..

Come io non sono fiducioso con la proprietà cieco svn:merge-info eliminazione, ho implementato uno strumento per analizzare la situazione attuale su una copia di lavoro e rimuovere come revisioni di unione più possibile da non-root proprietà merge-info. Dopo controlli umane supplementari e controlli, le modifiche sulla copia di lavoro possono essere commessi.

Qui è: svn-pulito-mergeinfo

Non esitate a segnalare qualsiasi problema sul suo utilizzo per farlo migliorata.

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