Come gestire la fusione di progetti di Visual Studio

8

I progetti di Visual Studio, al contrario di makefile o altri progetti che conosco, hanno alcune stranezze:

  • La struttura di directory del progetto non ha una vera connessione con la struttura della directory effettiva - tutte le directory sono puramente virtuali - questo rende più difficile riaggiungere la massa di file mantenendo la struttura delle directory
  • Il progetto consiste in un XML piuttosto complesso, che contiene tutto, dai file alle impostazioni del compilatore

Ora ogni volta che unisco i rami, ho dei conflitti sui file di progetto, perché tutti li inavvertitamente li modificano mentre operano sul progetto. Spesso i cambiamenti avvengono in modo tale che lo strumento di fusione non riconosce nemmeno i conflitti correttamente. In questi casi, i file risultano mancanti nel progetto, le impostazioni obsolete riappaiono e così via.

Il nostro progetto è la soluzione C ++ 2010 composta da cinque sottoprogetti separati.

Esistono strategie che avrebbero un basso impatto sul processo di sviluppo, ma potrebbero alleviare i problemi causati dall'unione dei file di progetto?

    
posta Tomáš Zato 18.01.2017 - 17:17
fonte

2 risposte

1

Trovo che ci siano un paio di cose che puoi fare per eliminare virtualmente questo problema.

  1. Più progetti. La diffusione delle modifiche al codice su più progetti significa meno possibilità di un conflitto di unione e file di progetti più semplici quando li si acquisisce.

  2. Costruisci tutti i tuoi rami sul server di build. Questo raccoglie i fallimenti di build dovuti a persone che si dimenticano di salvare il progetto quando aggiungono un file. Prima si uniscono nel loro ramo.

  3. Fai usare a tutti la stessa versione di Visual Studio

  4. Assicurati che il maggior numero possibile di impostazioni vada nel file .csproj.user piuttosto che in .csproj ed escludilo dal controllo del codice sorgente.

risposta data 25.07.2018 - 17:13
fonte
0

Questo è un caso classico per l'integrazione continua in cui tutti si collegano a 1 ramo.

  1. Gli sviluppatori dovrebbero essere in grado di risolvere correttamente i conflitti di base, presumo che i tuoi conflitti siano utili per causare ciò che descrivi.

  2. Quando si effettua il check-in nello stesso ramo mentre si lavora sullo stesso file proj, con tutti gli utenti che effettuano il check-in almeno una volta al giorno, i conflitti si verificano ancora, ma in genere 1-2 alla volta e ciò li renderà gestibili .

Dovresti anche applicare i suggerimenti di Ewan.

    
risposta data 25.07.2018 - 18:04
fonte

Leggi altre domande sui tag