🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #46

Re: CVS y JAVA

#46
From: Jesús M. NAVARRO
Date: Thu, 21 Oct 2004 15:08
135 lines
6052 bytes
Hola, Leto:

Leto Atreides escribi� en es.comp.os.linux.programacion:

> Hola:
> 
> Tengo un problema al aplicar el CVS para un proyecto Open Source escrito
> en JAVA. Mi problema es que yo trabajo en un directorio que se llama
> (por ejemplo) jpm y que contiene los siguientes archivos:
> 
> jpm/
>    bak/
>    classes/
>    doc/
>    dtd/
>    src/
>    jpm
>    jpm.html
>    jpm.jpx
> 
> A m� s�lo me interesa compartir por cvs el contenido de la carpeta src/
> que contiene los fuentes. Por lo tanto, dentro de esta carpeta, realizo
> la siguiente sintaxis:
> 
> cvs import -m "importaci�n inicial a CVS" jpm leto_ii start

Hasta aqu�, parece que la cosa est� bien.

> 
> Con esta instrucci�n me sube los fuentes perfectamente a mi servidor
> CVS. Hasta aqu� todo perfecto.
> 
> Mi problema se plantea cuando hago un checkout dentro del directorio
> src/ para sincronizar mi versi�n con la del servidor cvs. La instrucci�n
> que utilizo es:
> 
> cvs checkout jpm

Aqu� est� tu error: crees que el directorio scr original ya est� bajo
control de CVS, lo que es falso.  Una vez importado un proyecto, debes
descargarte en el lugar que te parezca oportuno una "sandbox", una copia
local apta para la gesti�n de CVS.  Eso es exactamente lo que hace el
comando anterior.

> 
> El problema con esta instrucci�n es que me genera una carpeta jpm/
> dentro de src/ con la misma estructura de hay en src/.

En efecto: si hiciste el checkout en jpm/src/, all� es donde se te
descargar� lo que le pidieses al servidor.  Puesto que le pediste el m�dulo
jpm, eso es lo que te ha descargado y por eso te aparece el directorio
jpm/src/jpm.  La estructura del m�dulo jpm del servidor es la importaste
anteriormente (o sea, el contenido del directorio jpm/src original).

> Adem�s, me genera 
> un directorio CVS por cada subdirectorio de jpm/ 

Correcto tambi�n: esos directorios CVS en tu sandbox es la forma que tiene
CVS de controlar el estado de la misma.

> y como yo tengo 
> definido que mi directorio de fuentes es src/, cuando intento compilar
> me dice que hay clases duplicadas (los que hay en src/ y jpm/) y,
> tambi�n, me da error por los archivos que se encuentran dentro de los
> directorios CVS puesto que no son clases v�lidas de JAVA.

�Y c�mo construyes el c�digo?  Por un lado, tu sistema de compilaci�n
deber�a ser autosuficiente, sin indicarle una ruta de entrada.  Por otro
lado, dir�a que todas las herramientas de "ayuda" a la compilaci�n
(pensemos en make o ant) son capaces de excluir los directorios de control
de CVS.

> Lo que me interesar�a es que cuando hiciera un checkout se volcara todo
> en el directorio src/ sin crear un directorio jpm/

La forma "directa" es importar tal y como quieres que se "vea" en el
checkout.

Volvamos al principio:
Al importar, dentro de la carpeta src:
cvs import -m "importaci�n inicial a CVS" src leto_ii start

Ahora, borramos o movemos el directorio src original (`mv src src_orig`, por
ejemplo)

Sigue el checkout correspondiente, desde el directorio del proyecto (en el
ejemplo, dentro del directorio jpm):
cvs checkout src

Ver�s que ahora la cosa est� con la estructura que deseas, pero existen los
directorios CVS/ dentro de jpm/src.

Otra alternativa es crear una estructura adecuada dentro del fichero
CVSROOT/modules, pero esa opci�n la dejo para otro rato.
 
> y que al compilar no 
> tuviera en cuenta los subdirectorios CVS/.

Ah� no puedo ayudarte: tendr�s que revisar la documentaci�n de tu
herramienta de compilaci�n.

> �Alguien a trabajado con cvs y java?

Tengo un conocido que lo hace: de un tiempo a esta parte est� usando
Eclipse, con el plug-in correspondiente para CVS y no parece que le vaya
mal.

> �C�mo lo estructur�is?

Como cualquier otro proyecto: El material original, al repositorio, y el
derivado a la calle.  Tambi�n hay que tener en cuenta, porque puede ser
interesante, que el repositorio *NO* es el c�digo fuente, sino una "copia"
apta para el consumo de CVS.  Muchas veces se puede emplear la sandbox
directamente como lugar de trabajo para el c�digo fuente, pero otras puede
que no sea as�.  En �ltimo t�rmino, tu problema puede solucionarse,
teniendo en cuenta mi anterior advertencia, haciendo el checkout del c�digo
fuente (y la gesti�n CVS) en cualquier otra parte del disco duro, y
utilizar un script que llame a rsync (por ejemplo) para mover los cambios
desde y hacia jpm/src/.

> �Hay alg�n  
> est�ndar de directorios o metodolog�a de trabajo con cvs y java?

No lo hay.  De hecho, probablemente CVS no sea la herramientas m�s adecuada
para el desarrollo en Java.  En Java, los archivos tienden a cambiar de
nombre con relativa frecuencia como consecuencia de la refactorizaci�n de
clases, y CVS no es una herramienta muy c�moda para gestionar cambios de
nombre, "splits" o fusiones del c�digo (un fichero se divide en dos, o dos
se funden en uno) o cambios en la estructura de los directorios.
-- 
SALUD,
Jes�s
***
jesus_navarro@undominio.net
***
Technical Details
Message-ID: <l00l42-epk.ln1@mithrandir.intranet>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!not-for-mail
References: <cl5b4f$a8g$1@electra.cc.upv.es>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,5f705728abfc69f9
X-Google-Thread: 1116f3,5f705728abfc69f9
X-Google-Attributes: gidf86c8,gid1116f3,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!not-for-mail
From: Jesús M. NAVARRO <jmnavarrol@able.es>
Newsgroups: es.comp.os.linux.programacion,es.comp.lenguajes.java
Subject: Re: CVS y JAVA
Followup-To: es.comp.os.linux.programacion
Date: Thu, 21 Oct 2004 17:08:35 +0200
Lines: 135
Message-ID: <l00l42-epk.ln1@mithrandir.intranet>
References: <cl5b4f$a8g$1@electra.cc.upv.es>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit
X-Trace: news.uni-berlin.de GtEJTnD4JQ4hq8Cje7MYYwyDWqSqcpBBC6Xexv34R9jUGJuUry
X-Orig-Path: mithrandir.intranet!news
User-Agent: KNode/0.7.7