Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2012
andresenlared andresenlared is offline
Miembro
 
Registrado: oct 2003
Posts: 153
Poder: 21
andresenlared Va por buen camino
Talking Manejo de Subversion - Cambios en linea base

Saludos a todos.

Tengo una pregunta respecto a la gestion de la configuracion, Tengo proyectos en delphi controlados por SVN, Las aplicaciones son diseñadas conforme dice la normatividad de salud en Colombia, Se diria entonces que la implementacion de la norma es la funcionalidad base y que todos los clientes la deben tener igual. pero los clientes suelen pedir desarrollos a la medida que afectan en algo la funcionalidad base.

Mi pregunta esta encaminada a determinar cual seria el control a realizar por subversion. Por ejemplo.

1. Crear un branch por cada cliente y llevar los desarrollos separados. Analizando este punto en el momento en que cambie la normatividad en salud, que de por cierto es muy cambiante, se tendria que ir a modificar cada branch con lo que se requiera.
2. Realizar una parametrizacion por cliente en la misma aplicacion y llevar solo el trunk, haciendo merge por cada desarrollo a la medida realizado. En este punto puede ser que el mantenimiento nos pueda generar no conformidades en otras funcionalidades, por lo parametrizado que esta la aplicacion.

Con lo anterior va la pregunta de este hilo, cual es la mejor forma de llevar el control de los fuentes con estas caracteristicas de negocio,

Muchas gracias.
__________________
Popayán-Colombia
Responder Con Cita
  #2  
Antiguo 03-04-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Eso depende de la profundidad y divergencia de los cambios. Una alternativa es manejar las variaciones por medio de un sistema de plugins.

El problema es que tu concepto de branching esta limitado por los problemas de SVN. Por ejemplo, es muy normal que al hacer cambio en un branch no solo aplique para tu cliente, sino tambien para toda la aplicacion. Si manualmente tienes que administrar y copiar/pegar los cambios entre los branchs, no esta sirviendote de mucho el usar un SCM.

Debes combinar, en mi opinion, un esquema que te permita aislar el codigo volatil del estable. Esto se logra tanto nivel de la arquitectura del codigo como del soporte de la herramienta de SCM.

P.D> Subversion al igual que todos los SCM centralizados tiene un soporte mediocre al concepto de branching y peor de merge.


Cita:
“The trouble with distributed version control is that it makes it too easy to branch,” I said, “and branching always causes problems.” Turns out this was wrong, too. I was on a streak.

Branching causes problems in Subversion because Subversion doesn’t store enough information to make merging work. In Mercurial, merging is painless and easy, and so branching is commonplace and harmless.
En ese aspecto, absolutamente te recomiendo que te muevas a mercurial o git. En estos, hacer branching y merge es algo tan natural y casi sin complicaciones en su proceso.

El problema con SVN es mas acentuado mientras mas gentes este tocando codigo y mientras mas tiempo pase entre el branch & merge, o mas radical los cambios (como mover archivos, borrar, y cambiar decenas). Con mercurial (el que uso) eso no es problema. De hecho, cada vez que se modifcan el arbol luego de un commit es un branch, y cada commit es un merge. Asi de natural es el proceso de esto en los SCM distribuidos.

Esto es lo que hago.

Tengo una rama que es la estable (la por defecto). Hago un branch para la linea de desarrollo donde hago los cambios de forma regular, que luego aplico a la estable. Luego tengo N ramas por cada cambio radical, que representa una gran divergencia (por ejemplo, mientras actualizo del iPhone al iPad) pero aislado de la linea de desarrollo (que representa los cambios del dia a dia). Estos al final se integran a la linea de desarrollo, y esta eventualmente a la estable. Cuando un cambio que aplico a una rama la necesito en estable, puedo aplicar SOLO ESOS CAMBIOS y casi sin problemas (osea, no mas que un hora de ajustes) los tengo en la estable sin necesidad de traer toda la rama que esta aun incompleta.

De nuevo, reitero que absolutamente te deberias de mover a mercurial o git si vas a hacer branching de forma significativa. Mi experiencia con SVN en todos los casos que intente de hacer merge fue traumatica, y es por eso que en SVN es algo "raro" usar branch. Por el contrario, en mercurial y git es algo totalmente natural.

Por eso, el soporte de tu SCM terminaria forzandote a seguir un camino u otro.


P.D Git es mas popular estos dias, pero recomiendo mucho mas mercurial. Es mas simple, tiene mejor soporte en windows (como se refleja en esta pregunta que hice)

Puedes ver el tutorial:

http://hginit.com/

O usar git. Igual con ambas no hay pierde.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 03-04-2012
andresenlared andresenlared is offline
Miembro
 
Registrado: oct 2003
Posts: 153
Poder: 21
andresenlared Va por buen camino
Muchisimas gracias por tu ayuda. Ya lei algo de Mercurial, y me parece excelente, definitivamente los casos que trata en el documento ya me han pasado sobre todo al hacer merge.

Definitivamente el proceso es mucho mas facil, ahora nos resta definir en cuanto a la arquitectura como seria la mejor forma de desarrolloar ya que contamos con delphi, java y php.

Saludos.
__________________
Popayán-Colombia
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
Subversion y Tortoise svn jrodriguez Varios 6 10-09-2010 17:47:04
Manejo de excepciones de base de datos andressanchez Varios 8 10-03-2010 19:15:55
Manejo de consultas SQL y Base de datos metroyd Conexión con bases de datos 0 07-10-2007 22:31:37
Control de cambios en base de datos Interbase dalfina Firebird e Interbase 3 07-08-2007 19:26:07
manejo de la base de datos con sql altatrejo Conexión con bases de datos 0 22-08-2005 18:52:04


La franja horaria es GMT +2. Ahora son las 10:36:28.


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