Article View: es.comp.os.linux.programacion
Article #46Re: CVS y JAVA
From: Jesús M. NAVARRO
Date: Thu, 21 Oct 2004 15:08
Date: Thu, 21 Oct 2004 15:08
135 lines
6052 bytes
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-mailReferences:
<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