Página 1 de 1

CVS

Publicado: Sab May 02, 2009 6:57 pm
por Martin Del Angel
Hola a Todos !
Tal vez este no es foro indicado para preguntar esto:
Quiero incursionar en el mundo del CVS.
Cual CVS recomiendan ?
Saludos...

CVS

Publicado: Sab May 02, 2009 7:47 pm
por jfgimenez
Martín,
> Tal vez este no es foro indicado para preguntar esto:
>
> Quiero incursionar en el mundo del CVS.
>
> Cual CVS recomiendan ?
Independientemente de por cual te decidas finalmente, mi consejo es que lo
uses a través de Tortoise o algo similar. La gran ventaja de Tortoise es que
está perfectamente integrado en el explorador de windows, y cualquier tarea
relacionada con el VCS se hace muchísimo más sencilla que tener que
aprenderse un montón de comandos con un montón de parámetros.
Actualmente, lo dos VCS más extendidos y que están soportados completamente
por tortoise son CVS y SVN (SubVersion). Nosotros en Xailer, y yo
particularmente con mis proyectos, utilizamos CVS. No es ni mejor ni peor
que SVN (no te creas lo que dicen que SVN es un CVS mejor que el propio
CVS), simplemente hay algunas diferencias importantes entre ambos que debes
de sopesar: numeración de versiones en el repositorio, atomicidad de las
subidas, formato y tamaño del repositorio, ancho de banda utilizado en el
primer 'checkout' y en las demás operaciones, etc..
Por otro lado, están los DVCS (VCS distribuidos). Tienen la ventaja de que
al ser distribuidos, cada desarrollador tiene su propio repositorio, que
después puede mezclar con el de otros usuarios o con un repositorio
centralizado. Nosotros hemos estado evaluando algunos de ellos, con el
objetivo de pasar de CVS a un DVCS, pero me temo que en versión Tortoise
están todavía muy muy verdes. Los que hemos evaluado son GIT, Bazaar y HG
(Mercurial), pero como ya he dicho, todavía son completamente inusables con
tortoise. Habrá que esperar todavía un tiempo, pero en mi humilde opinión,
los DVCS sustituirán completamente a los VCS a medio plazo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Sab May 02, 2009 10:13 pm
por Martin Del Angel
Jose F. Gimenez wrote:
> Martí­n,
>
>> Tal vez este no es foro indicado para preguntar esto:
>>
>> Quiero incursionar en el mundo del CVS.
>>
>> Cual CVS recomiendan ?
>
> Independientemente de por cual te decidas finalmente, mi consejo es que lo
> uses a través de Tortoise o algo similar. La gran ventaja de Tortoise es que
> está perfectamente integrado en el explorador de windows, y cualquier tarea
> relacionada con el VCS se hace muchí­simo más sencilla que tener que
> aprenderse un montón de comandos con un montón de parámetros.
>
> Actualmente, lo dos VCS más extendidos y que están soportados completamente
> por tortoise son CVS y SVN (SubVersion). Nosotros en Xailer, y yo
> particularmente con mis proyectos, utilizamos CVS. No es ni mejor ni peor
> que SVN (no te creas lo que dicen que SVN es un CVS mejor que el propio
> CVS), simplemente hay algunas diferencias importantes entre ambos que debes
> de sopesar: numeración de versiones en el repositorio, atomicidad de las
> subidas, formato y tamaño del repositorio, ancho de banda utilizado en el
> primer 'checkout' y en las demás operaciones, etc..
>
> Por otro lado, están los DVCS (VCS distribuidos). Tienen la ventaja de que
> al ser distribuidos, cada desarrollador tiene su propio repositorio, que
> después puede mezclar con el de otros usuarios o con un repositorio
> centralizado. Nosotros hemos estado evaluando algunos de ellos, con el
> objetivo de pasar de CVS a un DVCS, pero me temo que en versión Tortoise
> están todaví­a muy muy verdes. Los que hemos evaluado son GIT, Bazaar y HG
> (Mercurial), pero como ya he dicho, todaví­a son completamente inusables con
> tortoise. Habrá que esperar todaví­a un tiempo, pero en mi humilde opinión,
> los DVCS sustituirán completamente a los VCS a medio plazo.
>
Muchas Gracias Jose por tus recomendaciones y comentarios !
Te lo Agradezco
Saludos...

CVS

Publicado: Dom May 03, 2009 1:12 am
por Manu
Aquí­ te dejo un documento que hice hace unos años para trabajar con SVN.
Como dice Jose F. no hay ni mejor ni peor pero TortoiseSVN tiene
herramientas que no tiene TortoiseCVS como el merge y otros que ayudan a
controlar tus fuentes...
Martin Del Angel escribió:
> Jose F. Gimenez wrote:
>> Martí­n,
>>
>>> Tal vez este no es foro indicado para preguntar esto:
>>>
>>> Quiero incursionar en el mundo del CVS.
>>>
>>> Cual CVS recomiendan ?
>>
>> Independientemente de por cual te decidas finalmente, mi consejo es
>> que lo uses a través de Tortoise o algo similar. La gran ventaja de
>> Tortoise es que está perfectamente integrado en el explorador de
>> windows, y cualquier tarea relacionada con el VCS se hace muchí­simo
>> más sencilla que tener que aprenderse un montón de comandos con un
>> montón de parámetros.
>>
>> Actualmente, lo dos VCS más extendidos y que están soportados
>> completamente por tortoise son CVS y SVN (SubVersion). Nosotros en
>> Xailer, y yo particularmente con mis proyectos, utilizamos CVS. No es
>> ni mejor ni peor que SVN (no te creas lo que dicen que SVN es un CVS
>> mejor que el propio CVS), simplemente hay algunas diferencias
>> importantes entre ambos que debes de sopesar: numeración de versiones
>> en el repositorio, atomicidad de las subidas, formato y tamaño del
>> repositorio, ancho de banda utilizado en el primer 'checkout' y en las
>> demás operaciones, etc..
>>
>> Por otro lado, están los DVCS (VCS distribuidos). Tienen la ventaja de
>> que al ser distribuidos, cada desarrollador tiene su propio
>> repositorio, que después puede mezclar con el de otros usuarios o con
>> un repositorio centralizado. Nosotros hemos estado evaluando algunos
>> de ellos, con el objetivo de pasar de CVS a un DVCS, pero me temo que
>> en versión Tortoise están todaví­a muy muy verdes. Los que hemos
>> evaluado son GIT, Bazaar y HG (Mercurial), pero como ya he dicho,
>> todaví­a son completamente inusables con tortoise. Habrá que esperar
>> todaví­a un tiempo, pero en mi humilde opinión, los DVCS sustituirán
>> completamente a los VCS a medio plazo.
>>
>
>
> Muchas Gracias Jose por tus recomendaciones y comentarios !
>
>
> Te lo Agradezco
>
>
>
> Saludos...
--

CVS

Publicado: Dom May 03, 2009 4:06 pm
por Martin Del Angel
Manu wrote:
> Aquí­ te dejo un documento que hice hace unos años para trabajar con SVN.
> Como dice Jose F. no hay ni mejor ni peor pero TortoiseSVN tiene
> herramientas que no tiene TortoiseCVS como el merge y otros que ayudan a
> controlar tus fuentes...
>
> Martin Del Angel escribió:
>> Jose F. Gimenez wrote:
>>> Martí­n,
>>>
>>>> Tal vez este no es foro indicado para preguntar esto:
>>>>
>>>> Quiero incursionar en el mundo del CVS.
>>>>
>>>> Cual CVS recomiendan ?
>>>
>>> Independientemente de por cual te decidas finalmente, mi consejo es
>>> que lo uses a través de Tortoise o algo similar. La gran ventaja de
>>> Tortoise es que está perfectamente integrado en el explorador de
>>> windows, y cualquier tarea relacionada con el VCS se hace muchí­simo
>>> más sencilla que tener que aprenderse un montón de comandos con un
>>> montón de parámetros.
>>>
>>> Actualmente, lo dos VCS más extendidos y que están soportados
>>> completamente por tortoise son CVS y SVN (SubVersion). Nosotros en
>>> Xailer, y yo particularmente con mis proyectos, utilizamos CVS. No es
>>> ni mejor ni peor que SVN (no te creas lo que dicen que SVN es un CVS
>>> mejor que el propio CVS), simplemente hay algunas diferencias
>>> importantes entre ambos que debes de sopesar: numeración de versiones
>>> en el repositorio, atomicidad de las subidas, formato y tamaño del
>>> repositorio, ancho de banda utilizado en el primer 'checkout' y en
>>> las demás operaciones, etc..
>>>
>>> Por otro lado, están los DVCS (VCS distribuidos). Tienen la ventaja
>>> de que al ser distribuidos, cada desarrollador tiene su propio
>>> repositorio, que después puede mezclar con el de otros usuarios o con
>>> un repositorio centralizado. Nosotros hemos estado evaluando algunos
>>> de ellos, con el objetivo de pasar de CVS a un DVCS, pero me temo que
>>> en versión Tortoise están todaví­a muy muy verdes. Los que hemos
>>> evaluado son GIT, Bazaar y HG (Mercurial), pero como ya he dicho,
>>> todaví­a son completamente inusables con tortoise. Habrá que esperar
>>> todaví­a un tiempo, pero en mi humilde opinión, los DVCS sustituirán
>>> completamente a los VCS a medio plazo.
>>>
>>
>>
>> Muchas Gracias Jose por tus recomendaciones y comentarios !
>>
>>
>> Te lo Agradezco
>>
>>
>>
>> Saludos...
>
Muchas Gracias Manu!

CVS

Publicado: Lun May 04, 2009 12:03 pm
por jfgimenez
Manu,
> Aquí te dejo un documento que hice hace unos años para trabajar con SVN.
> Como dice Jose F. no hay ni mejor ni peor pero TortoiseSVN tiene
> herramientas que no tiene TortoiseCVS como el merge y otros que ayudan a
> controlar tus fuentes...
Bueno, TortoiseCVS no incluye un merge dentro de él mismo, pero se integra
perfectamente con WinMerge (ellos mismos lo recomiendan), que para mi gusto
es mejor que el que trae TortoiseSVN. Además, WinMerge se puede utilizar de
forma independiente, de hecho yo lo utilizo bastante.
En mi opinión, la gran diferencia entre CVS y SVN es el hecho de que CVS
trata los ficheros de forma individual, asignándole un número de versión
independiente a cada uno, mientras que SVN trata todo el repositorio como
una unidad, donde cada 'commit' implica un cambio de número de versión para
todos los ficheros. Y esta diferencia es la que lleva a otras muchas
diferencias entre los dos, incluso a cosas que se hacen de forma diferente
porque lo normal de uno no tiene sentido en el otro y viceversa.
Por otro lado está el formato del repositorio. A mí personalmente me gusta
mucho más el formato de CVS, porque son ficheros de texto plano que se
pueden editar a mano (sabiendo lo que uno está haciendo), en caso de
corrupción del repositorio. Desde que Xailer empezó, tan sólo hemos tenido
un caso de corrupción del repositorio, y se trabata tan sólo de 1 byte entre
decenas de MB. Lo pudimos corregir precísamente porque estaba en formato de
texto plano, si no, hubieramos perdido parte del historial de los ficheros
(entre la última copia de seguridad y la corrupción).
En cambio, SVN utiliza un formato binario, que no se puede manipular de
ninguna manera, y si se presenta una corrupción no hay más remedio que tirar
de copias de seguridad. Desgraciadamente (para mi gusto), los DVCS que hemos
evaluado utilizan también formatos binarios propios.
Por cierto, cuando se hace un 'checkout' con CVS, se trae todos los ficheros
versionados, y la información extra que necesita almacenar en la copia de
trabajo es mínima. Pero SVN se trae prácticamente una copia completa del
repositorio, que puede llegar a ocupar muchos MB. Y el problema no es lo que
ocupe en el disco duro, que todos son muy grandes, sino el tiempo que tarda
a través de conexiones lentas.
Y ojo, no estoy en contra de SVN. Pero tampoco estoy a favor de ensalzarlo
en detrimento de CVS. Ambos son buenos VCS, con sus ventajas e
inconvenientes.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Lun May 04, 2009 1:27 pm
por rafa
Aparte de lo que comentas, que estoy de acuerdo, particularmente uso CVS
,pero lo único bueno que veo a SVN es el tema de las transacciones , o
se sube todo o no se sube nada.
Y el tema de las ramas en el subversion, mejor lo dejamos.
Yo estoy evaluando Git, la verdad muy contento, además nos permite
usarlo como un sistema 'Centralizado' al estilo del CVS.
Y es que el commit local es maravilloso, y después se sube para el
'Central', pero se puedo configurar de distintas maneras de trabajar.
Actualmente, prácticamente todos están pasando de SVN hacia los sistemas
distribuidos como git, mercurial, etc....
( Del CVS se fueron al SVN )
Saludos
Rafa Carmona

CVS

Publicado: Lun May 11, 2009 12:02 pm
por jfgimenez
Rafa,
yo he seguido evaluando los DVCS estos días a ratos, y la verdad, me han
decepcionado bastante :-(
- Bazaar: Tiene muy buena pinta. Los modos de trabajo son muy claros, sin
confusiones ni artifícios raros. Lo malo parecía ser el formato de los
repositorios, que parece que no "terminan de poner el huevo"; con cada
versión de bazaar añaden un nuevo formato. Pero lo peor lo vi al intentar
hacer un "branch". No sé si lo hice mal o no supe hacerlo, pero lo que vi es
que un "branch" consiste en copiar todo el proyecto en otro subdirectorio
(WTF!). Vamos, que para hacer eso no necesito ningún VCS; me copio el
proyecto en otro directorio y hago las comparaciones y los "merges" con
WinMerge. Y no he usado SVN, pero me parece que en SVN es algo parecido :-(
- Git: Está bien, aunque esa forma de nombrar (numerar) las revisiones es un
poco fastidiosa. Pero claro, es el precio a pagar por un sistema 100%
distribuido. Sí, ya sé que permite enviar a un repositorio central, pero da
la impresión de que todo está diseñado para trabajar completamente "peer to
peer", donde los desarrolladores envian "parches" al director o directores
del proyecto y estos lo añaden a sus propios repositorios si lo aprueban.
Por otro lado, no permite tener ramas o revisiones "privadas"; cuando haces
un "push" se envia todo al repositorio remoto. Francamente, me parece una
carencia monumental en un DVCS.
- Mercurial: la verdad es que no lo he revisado a fondo. El simple hecho de
que el TortoiseHG esté hecho con GTK me echa para atrás. Sí, ya sé que a
algunos os gusta mucho, y que puede tener ciertas ventajas. Pero es que la
forma de distribuir los controles en los diálogos tiene poco que ver con
windows. Vamos, que el botón de aceptar lo ponen arriba, en una barra de
botones, en vez de abajo como aparece en prácticamente *todos* los programas
de windows.
Y ahora lo mejor... ¿cómo debería ser un DVCS? Pues en mi opinión, lo ideal
sería:
- El modo de trabajo principal tendría que ser trabajar siempre en modo
local (con un repositorio local) y hacer "push" cuando queramos al
repositorio central. Pero no cualquier repositorio remoto, sino uno central
bien definido. Si estamos trabajando sólos entonces no hace falta un DVCS, y
tanto CVS como SVN sirven perfectamente. No obstante, si queremos usar el
mismo VCS para todo, bastaría con no hacer nunca "push" ;-)
- Tendría que permitir ramas y revisiones tanto "locales" como "privadas".
Locales serían las que se mantienen en el repositorio local, pero que al
hacer "push" se envian al central. Pero las privadas se mantienen siempre en
local, y al hacer "push" sólo se envia el estado final, no las revisiones
intermedias. No tiene sentido que si yo estoy desarrollando una parte algo
complicada y hago commits locales continuos, esos commits aparezcan en el
repositorio central, porque esos estados intermedios no son funcionales.
- El sistema de numeración de revisiones de SVN o Bazaar sería el ideal.
Quizás haya un DVCS que cumpla más o menos con esto, pero o no lo he
encontrado o no lo he sabido ver. Y la verdad, si no fuera porque tengo
mucho trabajo y tengo que dedicar mis esfuerzos a otras cosas, me pondría a
hacer uno; por lo que he podido ver, no es tan complicado. Lo que es más
laborioso es la parte de interface al estilo tortoise. Pero el núcleo...
bastaría con coger un buen algoritmo delta (basta con goglear un poco) y
usar SQLite como repositorio. Yo estoy seguro de que se podría hacer muy
rápidamente.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Lun May 11, 2009 2:08 pm
por rafa
Jose F. Gimenez escribió:
> Rafa,
>
> yo he seguido evaluando los DVCS estos dí­as a ratos, y la verdad, me han
> decepcionado bastante :-(
>
> - Bazaar: Tiene muy buena pinta. Los modos de trabajo son muy claros, sin
> confusiones ni artifí­cios raros. Lo malo parecí­a ser el formato de los
> repositorios, que parece que no "terminan de poner el huevo"; con cada
> versión de bazaar añaden un nuevo formato. Pero lo peor lo vi al intentar
> hacer un "branch". No sé si lo hice mal o no supe hacerlo, pero lo que vi es
> que un "branch" consiste en copiar todo el proyecto en otro subdirectorio
> (WTF!). Vamos, que para hacer eso no necesito ningún VCS; me copio el
> proyecto en otro directorio y hago las comparaciones y los "merges" con
> WinMerge. Y no he usado SVN, pero me parece que en SVN es algo parecido :-(
La verdad que cuando vi, como se 'hacian las ramas' en el SVN.... que
triste, aunque en linux no hay apenas penalizacion por el tema de los
enlaces simbolicos, en windows es una castaña, la prueba, bajate el
harbour, y alucina con las ramas.
Yo tiro directamente del trunk , si no, es inviable.
>
> - Git: Está bien, aunque esa forma de nombrar (numerar) las revisiones es un
> poco fastidiosa. Pero claro, es el precio a pagar por un sistema 100%
> distribuido. Sí­, ya sé que permite enviar a un repositorio central, pero da
> la impresión de que todo está diseñado para trabajar completamente "peer to
> peer", donde los desarrolladores envian "parches" al director o directores
> del proyecto y estos lo añaden a sus propios repositorios si lo aprueban.
> Por otro lado, no permite tener ramas o revisiones "privadas"; cuando haces
> un "push" se envia todo al repositorio remoto. Francamente, me parece una
> carencia monumental en un DVCS.
Ummm.. no he profundizado mucho con Git, como digo y publiqué en
olivares2000, me costó hacer un repositorio central.
De todas maneras, eso que dices de las ramas, quizás pueda pasar cuando
este en modo centralizado, porque precisamente GIT se pensó para manejar
mucho el temas de las ramas/fusiones, es más, dicen las malas lenguas
que es el mejor en este punto.
Pero las ramas privadas en sistemas 'centralizados' no existen, y si
pones Git como centralizado, lógicamente las ramas tienen que subir.
Pero, lo que si puedes hacer es:
- Crear una rama en local.
- Hacer commit local.
- NO hacer push de la rama, si no del HEAD. ( esto tengo que probarlo y
te cuento )
Entonces, tienes lo que quieres, modelo centralizado, y ramas privadas.
Como sabrás, Git funciona similar al CVS para trabajar con ramas, que
tienes que hacer un checkout de la rama/head/revision que queramos para
trabajar en ella.
>
> - Mercurial: la verdad es que no lo he revisado a fondo. El simple hecho de
> que el TortoiseHG esté hecho con GTK me echa para atrás. Sí­, ya sé que a
> algunos os gusta mucho, y que puede tener ciertas ventajas. Pero es que la
> forma de distribuir los controles en los diálogos tiene poco que ver con
> windows. Vamos, que el botón de aceptar lo ponen arriba, en una barra de
> botones, en vez de abajo como aparece en prácticamente *todos* los programas
> de windows.
Bueno.... para gustos los colores ;-)
>
> Y ahora lo mejor... ¿cómo deberí­a ser un DVCS? Pues en mi opinión, lo ideal
> serí­a:
>
> - El modo de trabajo principal tendrí­a que ser trabajar siempre en modo
> local (con un repositorio local) y hacer "push" cuando queramos al
> repositorio central. Pero no cualquier repositorio remoto, sino uno central
> bien definido. Si estamos trabajando sólos entonces no hace falta un DVCS, y
> tanto CVS como SVN sirven perfectamente. No obstante, si queremos usar el
> mismo VCS para todo, bastarí­a con no hacer nunca "push" ;-)
>
Exacto.
> - Tendrí­a que permitir ramas y revisiones tanto "locales" como "privadas".
> Locales serí­an las que se mantienen en el repositorio local, pero que al
> hacer "push" se envian al central. Pero las privadas se mantienen siempre en
> local, y al hacer "push" sólo se envia el estado final, no las revisiones
> intermedias. No tiene sentido que si yo estoy desarrollando una parte algo
> complicada y hago commits locales continuos, esos commits aparezcan en el
> repositorio central, porque esos estados intermedios no son funcionales.
>
Asi es como lo hace Git, los commits son locales, el push es cuando
quieras tu publicarlo en el central, si lo has configurado como central.
Lo guapo también es enviar ramas de un desarrollador a otro, etc..
> - El sistema de numeración de revisiones de SVN o Bazaar serí­a el ideal.
>
Ah! Pues a mi me gusta mucho más el sistema del CVS. ;-)
Después, Tags a todo lo que quiera controlar en el tiempo, que es más o
menos lo que hace SVN.
> Quizás haya un DVCS que cumpla más o menos con esto, pero o no lo he
> encontrado o no lo he sabido ver. Y la verdad, si no fuera porque tengo
> mucho trabajo y tengo que dedicar mis esfuerzos a otras cosas, me pondrí­a a
> hacer uno; por lo que he podido ver, no es tan complicado. Lo que es más
> laborioso es la parte de interface al estilo tortoise. Pero el núcleo...
> bastarí­a con coger un buen algoritmo delta (basta con goglear un poco) y
> usar SQLite como repositorio. Yo estoy seguro de que se podrí­a hacer muy
> rápidamente.
>
Bueno, fí­jate en el Linus, creo Git porque no habí­a lo que querí­a, ya
sabes, te lí­as y te creas uno propio ;-)
Saludos
Rafa Carmona

CVS

Publicado: Lun May 11, 2009 2:41 pm
por jfgimenez
Rafa,
> De todas maneras, eso que dices de las ramas, quizás pueda pasar cuando
> este en modo centralizado, porque precisamente GIT se pensó para manejar
> mucho el temas de las ramas/fusiones, es más, dicen las malas lenguas
> que es el mejor en este punto.
Sí, ya vi que se podían incluso fusionar varios "commits" en uno, por si has
hecho "commits" al tun tun o simplemente para ir llevando el trabajo
respaldado, y al final lo quieres refrejar como un sólo cambio.
> Pero las ramas privadas en sistemas 'centralizados' no existen, y si
> pones Git como centralizado, lógicamente las ramas tienen que subir.
>
> Pero, lo que si puedes hacer es:
> - Crear una rama en local.
> - Hacer commit local.
> - NO hacer push de la rama, si no del HEAD. ( esto tengo que probarlo y
> te cuento )
Eso fue lo que hice, pero al hacer el "push", después de haber fusionado la
rama "local" con "master", también me subió la rama "local" :-(
Quizás lo no hice bien. Cuando tenga un hueco lo probaré de nuevo.
> Como sabrás, Git funciona similar al CVS para trabajar con ramas, que
> tienes que hacer un checkout de la rama/head/revision que queramos para
> trabajar en ella.
Sí, y en mi modesta opinión, esa ES LA FORMA DE TRABAJAR. Lo demás son
tonterías y vueltas que le dan a las cosas para marear al personal ;-)
> Asi es como lo hace Git, los commits son locales, el push es cuando
> quieras tu publicarlo en el central, si lo has configurado como central.
Bueno, hasta ahora no lo he conseguido. Es lo mismo de más arriba.
> Lo guapo también es enviar ramas de un desarrollador a otro, etc..
Sí, eso es una ventaja... para los proyectos que de verdad funcionen así. Me
imagino que en el caso del kernel de linux, cuando alguno de los
desarrolladores hace algo, se lo enviará por email a alguno de los
directores; éste creará una rama local, pondrá ahí el código que haya
recibido y lo evaluará. Y si le convence, lo fusionará con "master" y
adelante.
Pero en la mayoría de los casos (o al menos en mi caso), lo que interesa es
tener un repositorio central donde alojar el proyecto, y utilizar
repositorios locales para el trabajo diario. Incluso estaría bien que
permitiera añadir ficheros de forma privada, es decir, que sólo estén en el
repositorio local y no suban al central. P.ej. podrías tener copia de
ficheros de prueba o ficheros de configuración particular (paths y demás).
Ten en cuenta que un VCS también es un excelente sistema para tener copias
de seguridad de los proyectos.
>> - El sistema de numeración de revisiones de SVN o Bazaar sería el ideal.
>>
> Ah! Pues a mi me gusta mucho más el sistema del CVS. ;-)
> Después, Tags a todo lo que quiera controlar en el tiempo, que es más o
> menos lo que hace SVN.
No, no es eso. Me refería a la forma de versionar por fichero o por
"commit", además de la numeración en sí. CVS versiona por fichero, y aunque
puedes utilizar etiquetas, si estás viendo el historial de un fichero en
concreto no puedes saber qué otros ficheros se subieron en el mismo
"commit". En el caso de SVN y Bazzar, e incluso GIT, un "commit" es una
unidad, por muchos ficheros que tenga ese "commit". Eso es bueno, y es mucho
mejor si además se numera al estilo CVS, SVN o Bazaar, es decir, 1.1...
1.2... 1.3...
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Lun May 11, 2009 5:16 pm
por rafa
Jose, acabo de probarlo, y la rama solamente la verán los demás cuando;
- Fusionas la rama con la master
- Y la subes, Push.
En el caso de que crear una rama, esta solamente existe en tu
repositorio local, NADIE tiene acceso a esa rama, y se ve reflejada
solamente en el historial, si se hace el push correspondiente.
Además, esta situación que he recreado;
1)
USER A, crea una rama, rama1
USER A, cambia a la rama1 y modifica fichero de ejemplo del repositorio
master
USER A, commitea la rama.
USER A, cambiar a master, y hace push al central, se queja porque no hay
nada que subir
Ahora;
2)
USER B, hace pull
En este momento, B no tiene constancia de ninguna rama de USER A.
Ahora;
3)
USER A, fusiona rama1 con master
USER A, commit
USER A, push
Ahora;
4)
USER B, pull
USER B ve los cambios en la master con la rama1.
USER B NO PUEDE cambiar a rama1 porque para él, no existe esa rama en su
repositorio
Esto es tan simple por preguntar por las ramas en el USER B;
git branch
* master
Osease, este es el comportamiento que buscas.
Lo que me queda la duda, es como hacer que la rama lo vea también el USER B.
Espero haberte sacado de dudas ;-)
Un enlace muy útil que encontré por si interesa;
http://www.marblestation.com/?p=654
Saludos
Rafa Carmona

CVS

Publicado: Lun May 11, 2009 5:30 pm
por rafa
Se me olvidaba, me entró la duda por no la veia en el USER B, para subir
una rama al 'Central' y así­ el USER B poder verla;
$ git push origin rama1
De esta manera, el resto, a traves de pull, tendrán acceso a tu rama,
de lo contrario, solamente tu la tienes en local.
No veas el pollo mental cuando vamos por la linea de comandos ;-)
Saludos
Rafa Carmona

CVS

Publicado: Mar May 12, 2009 12:23 am
por Manu
Rafa, Jose F. :-)
Yo me sigo quedando con SVN, no lo dudo ni un instante y pirula en todos
los sistemas operativos... en Windows va super bien. Desde que lo uso no
he tenido ni un solo problema nunca. Por otro lado, no sé los proyectos
que podéis tener tan grandes en los que se pueda penalizar los tiempos,
estoy seguro que por ejemplo el proyecto Xailer se lo bebe sin problemas...
Jose F. tú lo has probado bien?
rafa escribió:
> Se me olvidaba, me entró la duda por no la veia en el USER B, para subir
> una rama al 'Central' y así­ el USER B poder verla;
> $ git push origin rama1
>
> De esta manera, el resto, a traves de pull, tendrán acceso a tu rama,
> de lo contrario, solamente tu la tienes en local.
>
> No veas el pollo mental cuando vamos por la linea de comandos ;-)
> Saludos
> Rafa Carmona

CVS

Publicado: Mar May 12, 2009 9:26 am
por rafa
Manu escribió:
> Rafa, Jose F. :-)
> Yo me sigo quedando con SVN, no lo dudo ni un instante y pirula en todos
> los sistemas operativos... en Windows va super bien.
Bueno, todos los demás también corren en todos los sistemas ;-)
>Desde que lo uso no
> he tenido ni un solo problema nunca. Por otro lado, no sé los proyectos
> que podéis tener tan grandes en los que se pueda penalizar los tiempos,
> estoy seguro que por ejemplo el proyecto Xailer se lo bebe sin problemas..
Yo tampoco he tenido problemas con ninguno que he probado, excepto una
vez con el CVS, pero al ser un fichero, cogí­ copia seguridad y lo volví­
a dejar tal cual ;-)
El tema de las ramas en SVN es un infierno ;-), fijate que hasta te
tienes que crear tu mismo los directorios a mano.
Y tampoco creo que tenga que ver si el proyecto es grande, pequeño, etc...
Pero, hay que reconocer que todo el mundo se esta yendo para sistemas
distribuidos, así­ como los del CVS se iban para el SVN, por la
flexibilidad y , para mi, el poder hacer commits, ramas, etc... sin
afectar al resto del proyecto.
Ahora, yo estoy trabajando con CVS, muchos años, y para mi , PERFECTO!,
pero estoy experimentando con Git, la verdad es que tienen que hacer
clientes más sencillos y simples, y el tortoise Git no va del todo fino.
Pero como siempre, para gustos, los colores ;-)
Saludos
Rafa Carmona

CVS

Publicado: Mié May 13, 2009 11:40 am
por jfgimenez
Rafa,
> Jose, acabo de probarlo, y la rama solamente la verán los demás cuando;
> - Fusionas la rama con la master
> - Y la subes, Push.
>
> En el caso de que crear una rama, esta solamente existe en tu
> repositorio local, NADIE tiene acceso a esa rama, y se ve reflejada
> solamente en el historial, si se hace el push correspondiente.
Ya, pero es que precísamente lo que quiero subir al central es el estado
final de los cambios. Es decir, yo quiero hacer todos los commits que
necesite en local (hasta aquí todo perfecto y nadie ve mis cambios). Pero
cuando termine, quiero subir el resultado final al central, y aquí es donde
al hacer el push me sube todos los commits locales. Y no he encontrado la
forma que subir sólo el estado final.
Puede parecer una chorrada, pero te aseguro que es una situación muy común
cuando estás haciendo cambios de calado en un proyecto. Te tiras varios días
haciendo cambios que no puedes subir al repositorio central porque todavía
no funciona todo y fastidiarías a los demás. Pero sí te interesa ir haciendo
esos commits locales para poder ir salvando partes del trabajo, tanto para
hacer copias de seguridad como para poder comparar y/o volver atrás en caso
necesario.
> Además, esta situación que he recreado;
>
> 1)
> USER A, crea una rama, rama1
> USER A, cambia a la rama1 y modifica fichero de ejemplo del repositorio
> master
> USER A, commitea la rama.
> USER A, cambiar a master, y hace push al central, se queja porque no hay
> nada que subir
>
> Ahora;
> 2)
> USER B, hace pull
> En este momento, B no tiene constancia de ninguna rama de USER A.
>
> Ahora;
> 3)
> USER A, fusiona rama1 con master
> USER A, commit
> USER A, push
>
> Ahora;
> 4)
> USER B, pull
> USER B ve los cambios en la master con la rama1.
> USER B NO PUEDE cambiar a rama1 porque para él, no existe esa rama en su
> repositorio
> Esto es tan simple por preguntar por las ramas en el USER B;
> git branch
> * master
>
> Osease, este es el comportamiento que buscas.
>
> Lo que me queda la duda, es como hacer que la rama lo vea también el USER
> B.
Pues yo he hecho eso mismo varias veces, tanto fusionando rama1->master como
master->rama1, y al final, al hacer el push, el usuario b tiene acceso a
todo lo que ha hecho el usuario a. Seguramente se me está pasando algo por
alto, pero no sé lo que es. Seguiré probando a ratos.
> Un enlace muy útil que encontré por si interesa;
> http://www.marblestation.com/?p=654
Muchas gracias. Cualquier información sobre el tema me viene muy bien.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Mié May 13, 2009 11:43 am
por jfgimenez
Rafa,
> Se me olvidaba, me entró la duda por no la veia en el USER B, para subir
> una rama al 'Central' y así el USER B poder verla;
> $ git push origin rama1
>
> De esta manera, el resto, a traves de pull, tendrán acceso a tu rama,
> de lo contrario, solamente tu la tienes en local.
Sí, pero en el momento en que fusionas la rama con master, y después haces
el push, ya aparece también la rama en los otros usuarios :-(
> No veas el pollo mental cuando vamos por la linea de comandos ;-)
Jejeje, es lo que tienen todos los nuevos DVCS, que al no estar su
respectivo Tortoise terminado al 100%, todavía hay cosas que hay que hacer
con comandos. Pero está en el caso de Bazaar, que su tortoise ni siquiera
tiene todavía el push y el pull :-(
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Mié May 13, 2009 12:01 pm
por jfgimenez
Manu, Rafa,
>> Yo me sigo quedando con SVN, no lo dudo ni un instante y pirula en todos
>> los sistemas operativos... en Windows va super bien.
> Bueno, todos los demás también corren en todos los sistemas ;-)
100% de acuerdo ;-)
>>Desde que lo uso no
>> he tenido ni un solo problema nunca. Por otro lado, no sé los proyectos
>> que podéis tener tan grandes en los que se pueda penalizar los tiempos,
>> estoy seguro que por ejemplo el proyecto Xailer se lo bebe sin
>> problemas..
> Yo tampoco he tenido problemas con ninguno que he probado, excepto una
> vez con el CVS, pero al ser un fichero, cogí copia seguridad y lo volví
> a dejar tal cual ;-)
En todos los años que llevo usando CVS, sólo he tenido un problema: 1 sólo
byte cambiado en el repositorio que impedía comparar una versión bastante
antigua de un sólo fichero, y eso que el repositorio ocupaba varias decenas
de MB. Pero gracias a que el repositorio de CVS es texto puro y duro, pude
corregir el error sin mucho problema, y tenerlo todo de nuevo al 100%. Si
eso mismo ocurre con SVN o con cualquier otro VCS, seguramente no lo hubiera
podido corregir, porque todos utilizan formatos binarios para el
repositorio.
> El tema de las ramas en SVN es un infierno ;-), fijate que hasta te
> tienes que crear tu mismo los directorios a mano.
>
> Y tampoco creo que tenga que ver si el proyecto es grande, pequeño, etc...
Eso es cierto. Es más, prueba a descargar Harbour desde su SVN y mira cuanto
te ocupa en el disco. Y ahora haz lo mismo con xHarbour desde su CVS. Por
supuesto que el espacio en disco es lo de menos, pero sí hay que tener en
cuenta la cantidad de MB que hay que descargar antes de poder hacer nada. Y
eso sin contar el desmadre monumental de la gestión de las ramas. Vamos, no
sé porqué lo hicieron así, pero parece que el que lo hizo estaba de resaca
(o chutado) ese día ;-)
> Pero, hay que reconocer que todo el mundo se esta yendo para sistemas
> distribuidos, así como los del CVS se iban para el SVN, por la
> flexibilidad y , para mi, el poder hacer commits, ramas, etc... sin
> afectar al resto del proyecto.
En mi opinión, lo que parecía algo normal de CVS ha demostrado con el tiempo
ser su mayor error: tratar los ficheros por separado. SVN y todos los nuevos
DVCS que he visto tratan el repositorio como una unidad. Es decir, lo que se
guarda en el repositorio son estados completos del proyecto. Si haces un
commit de 3 ficheros, tienes un estado antes del commit y otro después del
commit, aunque puedas comparar los ficheros individualmente.
En cambio, CVS trata cada fichero por separado, y "a priori", cuando revisas
el historial de cambios, no puedes saber si en un commit concreto subiste 1
fichero ó 10. Es decir, lo que se guarda en el repositorio son los estados
de cada uno de los ficheros, pero no el estado general del proyecto. Eso
tiene consecuencias negativas, como que puedes recuperar una versión
anterior de un sólo fichero pero dejar en otra versión otros ficheros que
estaban asociados a la misma modificación. La única forma práctica de saber
qué ficheros se han subido en un commit es usando un fichero 'changelog',
pero la verdad es que es bastante incómodo.
A partir de aquí, es lógico que muchos proyectos hayan migrado de CVS a
otros VCS, incluido SVN. Pero lo que llama la atención es que si como dicen,
SVN es un CVS mejor que CVS, ya deberían haber migrado todos o casi todos, y
no es así. ¿No será que SVN no es tan bueno como quieren hacernos creer?
> Ahora, yo estoy trabajando con CVS, muchos años, y para mi , PERFECTO!,
> pero estoy experimentando con Git, la verdad es que tienen que hacer
> clientes más sencillos y simples, y el tortoise Git no va del todo fino.
Eso es cierto. Pero también es cierto que todavía están en pleno desarrollo,
y que ni siquiera han llegado a la 1.0.
Habrá que seguir esperando, y si se demoran mucho o si al final no termina
de encajar, pues habrá que hacerse uno a medida ;-)
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

CVS

Publicado: Mié May 13, 2009 12:23 pm
por rafa
Jose F. Gimenez escribió:
> Rafa,
>
>> Jose, acabo de probarlo, y la rama solamente la verán los demás cuando;
>> - Fusionas la rama con la master
>> - Y la subes, Push.
>>
>> En el caso de que crear una rama, esta solamente existe en tu
>> repositorio local, NADIE tiene acceso a esa rama, y se ve reflejada
>> solamente en el historial, si se hace el push correspondiente.
>
> Ya, pero es que precí­samente lo que quiero subir al central es el estado
> final de los cambios. Es decir, yo quiero hacer todos los commits que
> necesite en local (hasta aquí­ todo perfecto y nadie ve mis cambios). Pero
> cuando termine, quiero subir el resultado final al central, y aquí­ es donde
> al hacer el push me sube todos los commits locales. Y no he encontrado la
> forma que subir sólo el estado final.
>
> Puede parecer una chorrada, pero te aseguro que es una situación muy común
> cuando estás haciendo cambios de calado en un proyecto. Te tiras varios dí­as
> haciendo cambios que no puedes subir al repositorio central porque todaví­a
> no funciona todo y fastidiarí­as a los demás. Pero sí­ te interesa ir haciendo
> esos commits locales para poder ir salvando partes del trabajo, tanto para
> hacer copias de seguridad como para poder comparar y/o volver atrás en caso
> necesario.
>
Entonces, bajo mi punto de vista, tienes la solución bien simple;
- Te creas una rama para hacer todos los commits que quieras.
- Cuando terminas, cambias al tronco y fusionas los cambios de la rama.
- Después subes , push, al central, el tronco.
De esta manera, como no has subido la rama, NADIE va a ver los commits
locales que hiciste en la rama, ¿ no crees ?
Te lo digo por las pruebas que he realizado, no he profundizado mucho en
el tema, puesto que he estado jugando a crear un repositorio en mi casa,
y atacar por ssh desde cualquier lugar, y ver como trabajan los
diferentes clientes, y la verdad que al final he terminado en la linea
de comandos, voy más rápido en según que cosas, pero es porque los
clientes no estan muy finos todaví­a.
>
>> Además, esta situación que he recreado;
> .....
> Pues yo he hecho eso mismo varias veces, tanto fusionando rama1->master como
> master->rama1, y al final, al hacer el push, el usuario b tiene acceso a
> todo lo que ha hecho el usuario a. Seguramente se me está pasando algo por
> alto, pero no sé lo que es. Seguiré probando a ratos.
>
Quizás el push tienes puesto -a para subir todo, master y brancs, no
puedo afirmarlo, pero como ya te comenté , si no subes la rama, nadie
tiene acceso a ella, porque esta como local en tu maquina.
Como te comenté, el la history del user B, que es le que no tiene la
rama, si VE que a habiado una fusion, pero ¿ has intentado que el user B
pueda cambiar a esa rama ? ;-)
Saludos
Rafa Carmona