Funzionalità di pulizia/riformattazione del codice ReSharper rispetto ai sistemi di controllo delle versioni

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

  •  09-06-2019
  •  | 
  •  

Domanda

Funzionalità di pulizia del codice ReSharper (con "riordinare i membri" E "codice riformattato" abilitato) è davvero fantastico.Definisci un modello di layout utilizzando XML, quindi una semplice combinazione di tasti riorganizza l'intero file sorgente (o cartella/progetto/soluzione) in base alle regole impostate nel modello.

Ad ogni modo, pensi che potrebbe essere un problema relativo a VCS come subversion, cvs, git, ecc.?C'è la possibilità che causi molti conflitti indesiderati?

Grazie.

È stato utile?

Soluzione

Sì, causerà sicuramente problemi.Oltre a creare conflitti che devono essere risolti manualmente, quando si archivia un file che è stato riformattato, VCS noterà quasi ogni riga come modificata.Ciò renderà difficile per te o per un tuo compagno di squadra guardare indietro alla storia e vedere cosa è cambiato e quando.

Detto questo, se tutti formattano automaticamente il proprio codice allo stesso modo (ovvero distribuiscono il modello XML al team), allora potrebbe funzionare bene.I problemi arrivano davvero solo quando non tutti fanno la stessa cosa.

Altri suggerimenti

Sto aspettando un IDE o un editor che salvi sempre il codice sorgente utilizzando alcune regole di formattazione di base, ma consenta a ogni singolo sviluppatore di visualizzare e modificare il codice nel proprio formato preferito.In questo modo posso mettere la mia parentesi graffa aperta all'inizio della riga successiva e non alla fine della riga corrente dove tutti voi pagani sembrate pensare che vada.

La mia ipotesi è che aspetterò per molto tempo.

  • Basta riformattare l'intera soluzione una volta
  • E assicurati che ogni sviluppatore stia usando Resharper
  • E assicurarsi che le opzioni di formattazione siano condivise e versioni (opzioni di condivisione dello stile di codice)

Puoi usare StyleCop per applicare un insieme completo di standard che obblighi praticamente tutti a utilizzare gli stessi stili di layout.Quindi tutto ciò che devi fare è sviluppare una specifica di stile di codice ReSharper che corrisponda a questa e distribuirla al team.

Sto ancora aspettando qualcun altro per farlo, e che JetBrains chiarisca tutti i dettagli fastidiosi che non sono completamente supportati, al fine di consentire a ReSharper di garantire sostanzialmente la piena conformità a StyleCop.

Può sicuramente causare conflitti, quindi mi assicurerei di non riformattare interi file se ci sono persone che ci lavorano in parallelo.

Sicuramente potrebbe causare conflitti.

Se desideri utilizzarlo in un ambiente multiutente, la configurazione di Resharper deve formattare il codice in base a una serie di standard applicati nella tua organizzazione indipendentemente dal fatto che gli utenti utilizzino o meno Resharper.

In questo modo stai utilizzando lo strumento per assicurarti che il tuo codice soddisfi gli standard, non per applicare le tue preferenze all'intera base di codice.

Sono d'accordo con le risposte precedenti che affermano che i conflitti sono possibili e persino probabili.

Se hai intenzione di riformattare il codice, assicurati almeno di non mescolare i check-in di riformattazione con quelli che modificano la funzione del codice effettivo.In questo modo le persone possono saltare i check-in che sono semplici riformattazioni.È anche una buona idea assicurarsi che tutti sappiano che è in arrivo una riformattazione in modo che possano opporsi se hanno lavori in corso in quell'area.

Stiamo lavorando su qualcosa che funzioni con i refactoring a livello di codice sorgente.Lo chiamiamo Xmerge e ora fa parte di Plastica.E' solo un primo approccio, visto che stiamo lavorando su soluzioni più avanzate.Controllalo Qui.

Potrebbe essere una buona idea scrivere uno script per controllare ogni versione nella cronologia del controllo del codice sorgente, applicare la pulizia del codice, quindi archiviarlo in un nuovo repository.Quindi utilizza quel repository per tutto il tuo lavoro in futuro.

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