Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo he usado varios, el último fue jedi vcs, porque se integraba dentro del propio delphi. Y resultaba muy cómodo.
Ahora no sé qué usar, no encuentro la forma de hacer algo "simple". Me explico: yo solo, varios proyectos, cada proyecto puede tener varias versiones y, lo principal, cada versión puede tener varios ficheros adaptados para distintos clientes.
Quisiera poder elegir algo así como: proyecto xxx del cliente yyy, y que si modifico algo del proyecto xxx se actualice en el de todos los clientes de ese proyecto. Pero si un cliente tiene un fichero adaptado para él, que esos no se cambie lo que esté adaptado para él, solamente lo que es genérico para todos.
Imágenes Adjuntas
Tipo de Archivo: jpg arbol.jpg (11,3 KB, 6 visitas)
Responder Con Cita
  #2  
Antiguo 30-08-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Quisiera poder elegir algo así como: proyecto xxx del cliente yyy, y que si modifico algo del proyecto xxx se actualice en el de todos los clientes de ese proyecto. Pero si un cliente tiene un fichero adaptado para él, que esos no se cambie lo que esté adaptado para él, solamente lo que es genérico para todos.

Yo lo hago con git y las llamadas branch:

Por defecto se crea una branch master en donde esta el proyecto llamemos "principal"
Luego por cada cliente que tiene una modificacion particular, se crea un branch a partir de una existente, por ejemplo de master.

Entonces ahi en esa branch es en donde haces las modificaciones para "pepito" y el resto ni se entera. De hecho al andar pasando entre un branch y otra (git switch branch) lo que realmente sucede es que los archivos con los que trabajas localmente pasan a ser los de la branch a la que cambiaste

Ej: Estabas en "pepito", haces switch a "master" y todo lo que agregaste nuevo en pepito no va aparecer en el disco fisicamente. No vas a tener un NuevoFormAgregado.pas. Logicamente si volves a pepito si va a estar. En ese sentido se mantiene la estructura simple y no tenes que andar comiendote la cabeza pensando "esto era de quien???"

Lo unico que no es automatico es el tema de, llamemosle "herencia". Para que se propagen los cambios es necesario hacer merge/cherry pick. Es decir, "alimentarte" de todos los nuevos cambios (commits) que queres que se reflejen. Esto lo tenes que hacer en CADA branch; podes pickear commits de cualquier brach, incluso de otro repositorio
Responder Con Cita
  #3  
Antiguo 30-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
...
Sí, Al, gracias, más o menos es lo que hago, aunque no resulta muy eficiente con distintos parámetros para mantener el código para un cliente u otro. Pero no he encontrado nada mejor hasta ahora. Saludos
PD. Por cierto, no es con Delphi, desde hace unos años estoy haciendo "cositas" para Android. Cosas de la vida, que te lleva de un lado a otro y todo cambia por completo cuando menos te lo esperas.

Cita:
Empezado por AgustinOrtu Ver Mensaje
...
Lo que comentas parece interesante, pero todos los sistemas de control de versiones que he visto me resultan engorrosos para mantener varios proyectos con distintas versiones y distintas subversiones, ¿usas algún entorno gráfico para usar Git o todo mediante comandos?
Responder Con Cita
  #4  
Antiguo 30-08-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Tortoise Git
Responder Con Cita
  #5  
Antiguo 30-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por AgustinOrtu Ver Mensaje
Gracias, voy a echarle un vistazo
Responder Con Cita
  #6  
Antiguo 31-08-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Acá usamos TortoiseSVN para administrar los archivos desde el explorador de Windows. Somos un equipo de cuatro personas, todos con sus ideas muy arraigadas. Lo más difícil ha sido ponernos de acuerdo en cómo llamarles a los directorios.
Responder Con Cita
  #7  
Antiguo 31-08-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lo que comentas parece interesante, pero todos los sistemas de control de versiones que he visto me resultan engorrosos para mantener varios proyectos con distintas versiones y distintas subversiones, ¿usas algún entorno gráfico para usar Git o todo mediante comandos?
La facilidad de hacer branchs (y Merges, que es lo dificil!) es la habilidad #1 de git/mercurial. Es muy facil la mayor parte del tiempo, y si puedes lograrlo como dice * AgustinOrtu* es lo mejor...

Ahora bien, tambien se puede usar un "mono-repo"

http://danluu.com/monorepo/

Que es meter todo los proyectos en un solo repositorio. Curiosamente, asi hacen en facebook y otras empresas donde todos los proyectos estan en un solo lugar. Obvio, descargar eso puede implicar una *larga descarga* inicial, pero es cuasi-identico a cargar una "directorio de proyectos portable", y sigues haciendo tal cual como hasta ahora.

----

Si la cosa es muy complicada, tienes un problema de dependencias muy severo, entonces tienes un problema de programacion: Debes desacoplar el codigo, y hacer composicion y eliminar herencias. Muchos no lo ven, pero le relacion de los archivos en un proyecto (modulos, namespaces) TAMBIEN hace parte del arbol de objetos, y cuando estos dan lios? Es porque hay una falla en el diseño de ese arbol ==== Tal cual como hay una falla en un arbol OO o en la construccion de Tablas en una BD.

"Plano es mejor que anidado"
"Simple es mejor que complejo, y complejo que complicado"
"Prefiere composicion en vez de herencia"
"Principios SOLID para proyectos OO"
"Elimina el manejo de estado no esencial"

Y mucho mas tambien aplica...
__________________
El malabarista.
Responder Con Cita
  #8  
Antiguo 31-08-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
La mejor forma de hacer merges o cherry pick es evitar commit estilo

Cita:
Commit hash xxxxxzzz:
Agrego al cliente método bla bla
Corregido listado de bla bla
Nuevo campo en la BD bla bla
Lo mejor es ser ordenado y hacer un feature por commit/commit lo más sencillo posible que toque lo menos archivos posible

Haciendo eso los merge son cuento de niños
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
numeración alfanumérica y aleatoria Aprendiendo OOP 5 06-09-2011 19:34:25
Numeración de Factura zeta2 Varios 3 11-02-2010 20:21:56
continuar una numeracion con Qreport Alfredo Impresión 7 23-10-2007 11:05:53
Numeracion y viñetas en Word maurogambo Servers 1 27-07-2004 10:18:26
Control de numeracion de versiones erickperez6 Varios 2 14-05-2003 17:10:28


La franja horaria es GMT +2. Ahora son las 18:22:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi