2012-03-16 6 views
12

Siamo appena passati da TFS a Mercurial per il nostro piccolo team. Il progetto principale su cui lavorano 3 persone è un'applicazione Windows Form in C#. Ogni volta che si utilizza il designer, anche per semplici modifiche, viene eseguito un intero lotto di riorganizzazione e modifica del file .Designer. Se due persone lavorano su questo file, anche apportando semplici modifiche, l'unione è un incubo assoluto. C'è un modo semplice per risolvere questo problema? In TFS, abbiamo disattivato le modifiche simultanee, pertanto non abbiamo riscontrato questo problema.C'è un modo più semplice per unire i file di Windows Form .Designer?

+2

L'unione di '* .Designer.cs' è un periodo di dolore. – IAbstract

+0

Stavo per fare la stessa domanda sui file web designer designer. Immagino sia possibile che il blocco sia la soluzione migliore, ma non una soluzione molto soddisfacente quando ciò che vuoi veramente è lasciare che tutti lavorino e poi unirsi più tardi. – regularmike

risposta

1

Le fusioni di questo tipo di file sono sempre dolorose ... Questo è il motivo per cui esistono alcune estensioni "di blocco" per Mercurial, quindi è possibile avere lo stesso flusso di lavoro di TFS se necessario.

Ad esempio, è possibile utilizzare Lock extension scritto da Martin Geisler per bloccare i file .Designer fino al successivo push, così facendo si eviterà qualsiasi modifica simultanea evitando così anche l'unione.

+1

Ancora non penso che questo risolva il problema della fusione tra filiali, anche se non è quello che l'OP sta chiedendo. –

+0

Il "blocco" dei file non è una soluzione appropriata (né pratica in un ambiente distribuito). Il problema è rappresentato dal generatore di codice di Microsoft, che non si preoccupa di rendere il file leggibile dall'uomo (ad esempio, ordinare i membri, ad esempio). Se dovesse emettere il codice in modo ordinato, non sarebbe necessario ordinare centinaia di hunk per una piccola modifica di una sola riga, perché solo quella riga cambierebbe. Onestamente non riesco a capire come l'hanno implementato perché sia ​​così imprevedibile. Devono usare un RNG per divertimento o qualcosa del genere ... – bambams

1

Il problema è ogni volta che il motore del codice gen può generare codice in ordine diverso !!! che fa fondere un dolore.

Designer WinForm (.NET), progettista Swing (Java) fa affidamento sul motore del codice gen.

design.cs di ASP.NET contiene solo il campo di supporto, che ha meno probabilità di soffrire.

Il campo di supporto di WPF viene generato in obj/*. G.cs, che non è richiesto per mantenere il controllo del codice sorgente, quindi nessun problema di unione.

Problemi correlati