Recientemente cambiamos de TFS a Mercurial para nuestro pequeño equipo. El proyecto principal en el que trabajan 3 personas es una aplicación de Windows Forms en C#. Cada vez que utiliza el diseñador, incluso para realizar cambios simples, realiza una gran cantidad de reorganizaciones y cambios al archivo .Designer. Si dos personas trabajan en este archivo, incluso haciendo cambios simples, la fusión es una pesadilla absoluta. ¿Hay alguna manera fácil de resolver este problema? En TFS, desactivamos las modificaciones concurrentes, por lo que no tuvimos este problema.¿Existe alguna manera más fácil de combinar archivos Windows Forms .Designer?
Respuesta
Las fusiones de este tipo de archivos son siempre dolorosas ... Esta es la razón por la que existen algunas extensiones de "bloqueo" para Mercurial, por lo que puede tener el mismo flujo de trabajo que con TFS si es necesario.
Por ejemplo, puede usar el Lock extension escrito por Martin Geisler para bloquear archivos .Designer hasta el próximo push
, evitando así cualquier modificación concurrente, evitando así también la fusión.
Todavía no creo que esto resuelva el problema de la fusión entre sucursales, aunque eso no es lo que pide el OP. –
"Bloquear" archivos no es una solución adecuada (ni práctica en un entorno distribuido). El problema es que el generador de código de Microsoft no se preocupa por hacer que el archivo sea legible por los humanos (es decir, clasificando miembros, por ejemplo). Si emitiera el código de una manera ordenada, entonces no tendría que ordenar cientos de partes para un pequeño cambio de propiedad de una sola línea porque solo esa línea cambiaría. Honestamente, no puedo entender cómo lo implementaron para que sea tan impredecible. Deben estar usando un RNG por diversión o algo ... – bambams
El problema es cada vez que el código del motor de generación puede generar código en un orden diferente !!! lo que hace que fusionar un dolor.
WinForm (NET) diseñador, Swing (Java) diseñador se basan en el motor de generación de código.
designer.cs de ASP.NET solamente contiene campo respaldo, que menos probabilidades de sufrir.
campo respaldo de WPF se genera en obj/*. G.cs, que no está obligado a mantener el control de origen, por lo que no hay problema fusión.
- 1. ¿Existe alguna manera más fácil de analizar XML en Java?
- 2. ¿Existe alguna manera fácil de usar InternalsVisibleToAttribute?
- 3. ¿Manera fácil de combinar listas?
- 4. ¿Hay alguna manera fácil de combinar dos valores System.Drawing.Color?
- 5. ¿Cómo implementar Custom Forms Designer?
- 6. ¿Hay alguna manera de procesar SVG en Windows Forms?
- 7. ¿Existe alguna manera fácil de integrar scaladoc en IntelliJ Idea?
- 8. ¿Existe alguna manera fácil de aleatorizar una lista en VB.NET?
- 9. ¿Existe alguna manera más fácil de firmar un documento XML en Java?
- 10. ¿Existe alguna manera fácil de excluir archivos para los que FuzzyFinder busca?
- 11. ¿Hay alguna manera de combinar archivos PDF en pdf.js?
- 12. ¿Existe alguna manera fácil de crear un Java InputStream que consista en varios archivos adjuntos?
- 13. jQuery encadenando padre(), ¿hay alguna manera más fácil?
- 14. ¿La manera más fácil de empaquetar/minificar múltiples archivos javascript?
- 15. Manera más fácil de iniciar y detener servicios de Windows en Windows XP
- 16. manera más fácil de programar un sistema de archivos virtual en Windows con Python
- 17. Windows Forms ProgressBar: ¿La forma más fácil de iniciar/detener la marquesina?
- 18. ¿Existe alguna manera más eficiente de obtener un método anotado?
- 19. ¿Existe alguna manera más clara de registrar eventos personalizados Qt?
- 20. ¿Existe alguna manera fácil de convertir clases de C# a PHP?
- 21. ¿Existe alguna manera fácil de "desactivar el registro" antes de liberar su aplicación en el mercado?
- 22. ¿Existe alguna manera más segura de crear un directorio si no existe?
- 23. ¿La manera más fácil de administrar mi CLASSPATH?
- 24. ¿Hay alguna forma de automatizar las pruebas de Windows Forms?
- 25. Manera más simple de tener un archivo de configuración en una aplicación de Windows Forms C#
- 26. ¿Existe alguna manera más fácil de crear un proveedor de consultas del servicio de datos WCF/OData?
- 27. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 28. ¿Existe alguna manera fácil de cambiar el comportamiento de un control Java/Swing cuando se enfoca?
- 29. ¿Existe alguna manera fácil de autocompletar las variables de bloque en xcode?
- 30. ¿Cómo hago para que Windows Forms Designer use los recursos del ensamblado externo?
La fusión de la '* .Designer.cs' es un dolor - y punto. – IAbstract
Iba a hacer la misma pregunta sobre los archivos del diseñador de formularios web. Supongo que es posible que el bloqueo sea la mejor solución, pero no una solución muy satisfactoria cuando lo que realmente quieres hacer es dejar que todos trabajen y luego fusionarte más tarde. – regularmike