Pregunta

Debido a que actualmente estoy luchando por aprender IBM Rational ClearCase, me gustaría escuchar su opinión profesional.

Estoy particularmente interesado en las ventajas/desventajas en comparación con otros sistemas de control de versiones como Subversion o Git.

¿Fue útil?

Solución

Puedes encontrar una buena comparación entre ClearCase y Git en mi respuesta SO:
"¿Cuáles son los conceptos básicos de ClearCase que todo desarrollador debería conocer?", que ilustra algunas diferencias importantes (y algunas deficiencias de ClearCase)


Operaciones centradas en archivos

La deficiencia más importante de ClearCase es su antiguo "centrado en archivos" enfoque (a diferencia de "repositorio-céntrico" como en SVN o Git o Perforce...)
Eso significa que cada check-out o check-in se realiza archivo por archivo.El atomicidad de operación es a niveles de archivos.
Combina eso con un protocolo muy detallado y una red con potencialmente varios nodos entre la estación de trabajo del desarrollador y el servidor VOB, y puede terminar con un servidor de archivos bastante lento e ineficiente (que es ClearCase en su núcleo).

Las operaciones archivo por archivo significan: recursivo lento operaciones (como pago recursivo o recursivo "agregar al control de fuente", Incluso por clearfsimport).
A LAN rápida Es obligatorio mitigar los efectos secundarios de ese protocolo hablador.

VCS centralizado

El otro aspecto a tener en cuenta es su aspecto centralizado (aunque se puede "distribuir" con su función VOB replicada en múltiples sitios)
Si la red no permite el acceso a los VOB, los desarrolladores pueden:

  • todavía funciona dentro de las vistas de instantáneas (pero solo con archivos secuestrados)
  • esperar la restauración de la red si están usando vistas dinámicas

Opción costosa de VCS distribuido

Puede tener alguna característica VCS distribuida replicando un Vob.
Pero:

  • necesita un tipo especial de licencia para acceder a él.
  • esa licencia es costosa y aumenta el costo de la licencia regular
  • cualquier vob que utilice el vob replicado (admin vob, admin pvob,...) también debe replicarse (lo que significa que algunos proyectos que no estén directamente relacionados con un desarrollo distribuido aún tendrán que pagar una licencia multisitio...)

GUI antigua y no fácil de usar

  • la GUI es muy antigua y poco práctica (aspecto MFC de mediados de los 90, GUI completamente sincrónica, lo que significa que debe esperar una actualización antes de hacer clic en otro lugar):Al explorar líneas de base, no se puede buscar rápidamente una en particular.
  • la GUI en Unix no es exactamente la misma que en Windows (la última versión 7.1 es mejor pero aún no está disponible)
  • el proceso de instalación es bastante complicado (aunque el último Installer Manager introducido por CC7.1 es ahora una GUI coherente en Windows o Unix y simplifica el procedimiento)
  • la única aplicación realmente rica solo ha sido desarrollada para CCRC (el Cliente Remoto)

Inconsistencias y coherencias del UCM

Como se menciona en "Cómo aprovechar las funciones de ClearCase", las vistas dinámicas son geniales (una forma de ver datos a través de la red sin tener que copiarlos al disco), pero la característica principal sigue siendo UCM:Puede ser una verdadera ventaja si tienes un gran proyecto con un flujo de trabajo complejo.

Algunas deficiencias en ese frente:

Pólizas limitadas con Base ClearCase

Usar ClearCase sin usar UCM significa tener que definir una política para:

  • crear rama (de lo contrario, cualquiera puede crear cualquier rama y terminarás con un montón de ellas, con una pesadilla del flujo de trabajo de fusión)
  • poner etiquetas (de lo contrario, te olvidas de etiquetar algunos archivos, o pones una etiqueta donde no debías, o "mueves" (jadea) una etiqueta de una versión a otra:al menos las líneas base de UCM no se pueden mover)
  • definir conjunto de cambios.Los conjuntos de cambios solo existen con actividades de UCM.Con Base ClearCase, usted será más inteligente "cleartool find" peticiones...

Sin derechos de aplicación

La gestión de derechos de ClearCase se basa enteramente en los derechos del sistema.
Eso significa que debe registrar a su usuario en el grupo de sistema correcto, lo que no siempre es fácil de hacer cuando debe ingresar un ticket en su servicio de TI para que pueda realizar el registro adecuado.
Añade a eso un ambiente heterogéneo (usuarios en Windows y servidor en Unix), ¡y necesita registrar su usuario en Unix y también en Windows!(con el mismo nombre de inicio de sesión/grupo).A menos que coloque algún tipo de correspondencia LDAP entre los dos mundos (como Centrificar)

Sin API avanzada

  • sólo la CLI está completa ("cleartool" es la interfaz de línea de comandos de ClearCase), lo que significa que cualquier script (en Perl u otro lenguaje) consiste en analizar la salida de esos cleartool comandos)
  • Biblioteca de automatización (CAL) de ClearCase existe, pero es bastante limitado
  • La API de Java existe, pero solo para vistas web para el cliente CCRC.

Ver almacenamientos que no se centralizan ni se respaldan fácilmente

Los almacenamientos de vistas son el equivalente al ".svn" de SubVersion, excepto que solo hay un "almacenamiento de vistas" por vista en lugar de muchos .svn en todos los directorios de un espacio de trabajo de SubVersion.Está bien.

Lo malo es que cada operación dentro de una vista (un simple "ls", finalizar compra, comprobar, ...) activará un red solicitud a la ver_servidor proceso que administra su servidor de visualización.
2 opciones:

  • Declare su almacenamiento de vistas en su estación de trabajo:Excelente para la escalabilidad, puede tener tantas vistas como desee sin sobrecargar la LAN:Todas las comunicaciones se realizan directamente en su estación de trabajo.PERO Si esa máquina se te muere, pierdes tus puntos de vista..
  • Declare su almacenamiento de vistas en un servidor centralizado:eso significa que todo el proceso view_server se creará allí y que todas las operaciones en una vista realizadas por cualquier usuario tendrán que comunicarse con ese servidor.Se puede hacer si la infraestructura es "adecuada" (LAN especial de alta velocidad, servidor dedicado, monitoreo constante), pero en la práctica, su LAN no admitirá este modo.

El primer modo significa:tienes que hacer una copia de seguridad de tu trabajo en progreso (archivos privados o archivos extraídos)
El segundo modo significa:su estación de trabajo puede no estar disponible, puede iniciar sesión en otra y recuperar sus vistas (excepto los archivos privados de una vista instantánea)


Discusión paralela sobre vistas dinámicas:

Para agregar al aspecto de "vista dinámica", tiene una ventaja (es dinámica) y un inconveniente (es dinámica).
Las vistas dinámicas son excelentes para configurar un entorno simple para compartir rápidamente una pequeño desarrollo entre un pequeño equipo:Para un pequeño esfuerzo de desarrollo, una vista dinámica puede ayudar a 2 o 3 desarrolladores a mantenerse en contacto constantemente entre sí, viendo instantáneamente cuando el compromiso de uno rompe algo en las otras vistas.
Para esfuerzos de desarrollo más complejos, es preferible el "aislamiento" artificial proporcionado por la vista de instantáneas (solo ve los cambios cuando actualiza - o "actualiza" - su vista de instantáneas)
Para un esfuerzo o curso de desarrollo realmente divergente, aún se requiere una rama para lograr un verdadero aislamiento del código (en algún momento se requerirán fusiones, lo que ClearCase maneja muy bien, aunque lentamente, archivo por archivo)

El punto es que puedes usar ambos, por las razones correctas.

Nota:por pequeño equipo No me refiero a "pequeño proyecto".ClearCase se utiliza mejor para grande proyecto, pero si desea utilizar vistas dinámicas, debe configurar "ramas de tareas para aislar un pequeño esfuerzo de desarrollo por sucursal:de esa manera un "equipo pequeño" (un subconjunto de su equipo grande) puede trabajar eficientemente, compartiendo rápidamente su trabajo entre sus miembros.
Si utiliza vistas dinámicas en una rama "principal" donde todos están haciendo algo, entonces cualquier registro lo "mataría", ya que podría introducir algunas "interrupciones de compilación" no relacionadas con su esfuerzo de desarrollo actual.
Entonces eso sería un mal uso de las vistas dinámicas y olvidaría sus otros usos:

  • forma adicional de accediendo a datos, Además de vistas de instantáneas, lo que significa que es una gran herramienta para simplemente "ver" los archivos (puede, por ejemplo, usar una vista dinámica para modificar sus especificaciones de configuración hasta que vea lo que desea y luego copiar esas reglas de selección en su vista de instantáneas habitual)
  • una vista lateral para hacer fusiones:trabaja con su vista de instantánea, pero para fusiones puede usar su "vista hermana" dinámica ("hermana" como en "misma especificación de configuración"), para evitar tener una fusión fallida debido a archivos desprotegidos (en los cuales actualmente estaría trabajando en su vista de instantánea), o debido a que una vista de instantánea no está completamente actualizada.Una vez que se completa la combinación, actualiza su vista de instantánea habitual y reanuda su trabajo.

Desarrollar directamente en una vista dinámica no siempre es la mejor opción ya que todos los archivos (no retirados) se leen a través de la red.
Eso significa que se accederá a través de la red al dll, jar o exe que necesita su IDE, lo que puede ralentizar considerablemente el proceso de compilación.
Soluciones posibles:

  • una vista instantánea con todo en ella
  • una vista de instantánea con dll, jar o exe (archivos que no cambian cada cinco minutos:una actualización por día) y vista dinámica con solo las fuentes visibles.

Otros consejos

El coste es una desventaja bastante obvio. No sólo el coste de la licencia, sino también el costo del salario de un gurú ClearCase. Casi todas las empresas que soy consciente de que utiliza ClearCase parece tener al menos una persona cuyo único propósito es dominar a la bestia ingobernable.

El hecho de que esto es complicado lo suficiente como para requerir una niñera a tiempo completo también es preocupante.

una pesadilla total de un sistema. Me hizo gustaría poder volver a VSS! (No importa ninguna moderna sistema de control de código fuente como Subversion o Git!)

  • Es leeeentos .
  • Si utiliza dinámicas puntos de vista y la red se cae no puede acceder a su copia de trabajo de la fuente. Se puede hacer otra cosa que sentarse y esperar para su fijación.
  • Si utiliza instantánea vistas que parecen correr en conflictos y archivos "secuestrados" todo el tiempo, por lo que los archivos de su copia de trabajo son no es lo mismo que en el repositorio de código fuente .
  • Siempre que se trate de un actualización grande o entrega operación que siempre Error por una razón u otra, lo que requiere su gurú ClearCase para pasar unos pocos horas / días para comprender. Oh, sí, que debe tener una, gurú ClearCase dedicada a tiempo completo!
  • Cuando se produce un error que a menudo no puede hacer retroceder de la operación, o bien, por lo que está pegado con una operación en curso y la desarrolladores están bloqueados .
  • (?)
  • Cuando se mira más allá de los iconos de belleza ya que el interfaz gráfica de usuario es muy pobre - hasta en cosas como ser incapaz de cambiar el tamaño de las ventanas para ver las rutas de archivos completos
  • Su ayuda personal es bastante reacio a arreglar nada. Su primera respuesta es siempre " esto es por diseño " y "puede trabajar alrededor de ella?" Si no lo hacen en última instancia, proporcionan una solución (después de mucho discutir) será la solución más básica posible al problema más inmediato.

Básicamente, es lento, complicado y poco fiable como el demonio. Ah, y se me mencionar es ridículamente caro ? La única forma en que posiblemente se puede vender es hablar con los tomadores de decisiones que nunca han usado el producto y nunca lo hará! Estoy seguro de que ningún desarrollador en el mundo volvería a comprarlo.

Envíos atómicos y de cambios son mis mayores quejas contra ClearCase. Digamos que usted comprueba en cinco archivos como parte de una corrección de errores o refactorización. Entonces se descubre que algo se mal estado y hay que volver. Buena suerte hallazgo cuales cinco archivos son y qué versión de cada uno tiene que estar encendido. Pero vamos a dar un paso atrás. Acaba de terminar la edición de los cinco archivos, y es el momento de cometer. El primer cuatro van a través de bien. Esto último requiere una fusión masiva. Los otros cuatro archivos que ya se registró. No esperan a que termine los cambios necesarios en el último archivo. Por supuesto, espero que nadie se actualiza o se está utilizando una visión dinámica. Un servidor de integración continua acumulación va a fallar también.

A veces hacemos un directorio totalmente nuevo lleno de archivos que necesitan ser registrado, pero no queremos comprobar en hasta que se hacen. Es temprano y todo sigue siendo inestable, así que por qué el cheque cosas en que es posible eliminar muy pronto? OK, bien hasta ahora. Ahora es el momento de registrarse. Se agrega la carpeta recién creada de control de código fuente. Bueno, ClearCase no es recursivo, por lo que sólo que solo carpeta se registró. Con SVN, esa carpeta y todo lo que a continuación se añade, como usted elija. El desarrollador tiene que acordarse de añadir todo lo que, de lo contrario, una gran cantidad de archivos van a faltar.

ClearCase propietario de los archivos y carpetas por lo que no se puede modificar nada menos que haya comprobado hacia fuera primero. El plug-in de Eclipse le quita gran parte de la molestia aquí. No puedo decirle cuántas veces me abrió un archivo en vi para hacer un cambio rápido, sólo para descubrir que me había olvidado de comprobar hacia fuera primero. Pedido no es recursivo tampoco.

Las actualizaciones pueden ser dolorosamente lento sin conjuntos de cambios. Cuando se actualiza con una visión instantánea, cada actualizaciones de archivos, no sólo los archivos modificados. Trabajé en un proyecto con más de 20.000 archivos. Me remota a mi máquina de trabajo, iniciar la actualización, a continuación, a trabajar; conseguir café; ir a mi escritorio mientras se estaba terminando. Esto puede sonar como una exageración, pero por desgracia no lo es.

Las vistas dinámicas son terribles menos que esté en un equipo muy pequeño. Y si ese es el caso, ¿por qué tienes ClearCase? He visto innumerables puntos de vista de las personas conseguir una manguera porque alguien comprueba en archivos que se rompieron los puntos de vista de todos los demás. Siempre se debe actualizar y fusionar cualquier conflicto en su propio punto de vista. De esta manera, los cambios sólo afectan a usted. Con una visión dinámica, no se puede fusionar hacia abajo antes de empujar una copia de seguridad; que acaba de comprometerse y esperanza.

Sé costo probablemente no es una gran preocupación, pero los desarrolladores que hacen que el dinero para la empresa disfrutaría pasar el $ 50K- $ 100k (dependiendo de la licencia de ClearQuest, que es una adición común) en cualquiera de eventos de diversión o nuevos equipos (sillas, monitores, etc.). IBM recomienda tener personal para mantener ClearCase ir. ¿Por qué no volver a propósito de esas personas que generan ingresos para la compañía, en lugar de hacer que las cosas no estrellarse y arder?


Algunas de las razones que he oído para no cambiar:

Lo único que ClearCase hace mejor que el resto se está expandiendo archivos individuales, mientras que los demás se mantienen en la misma pista como otra rama.

Todo lo que he hecho en Clearcase siempre parece duro . Considerando que, nunca he tenido esa impresión con otros sistemas (excepto tal vez en alguna ocasión CVS).

He usado SVN, CVS, Clearcase, y Mercurial.

Mi experiencia con ClearCase fue un desastre, y lo haré segunda declaración de don que requiere un residente expert-- por desgracia tuvimos más de uno. Tenía experiencia con CVS y otros sistemas de control de versiones, que estaba familiarizado con los conceptos, pero me encontré con la documentación de ClearCase incomprensible y tuvo que pedir ayuda varias veces; diferentes expertos me dieron consejos contradictorios hasta el punto en que en realidad se rompió cd . Es decir, después de que emite una orden de ClearCase en una cáscara de UNIX, el comando "cd" falló con un mensaje de error.

La tarea básica de un sistema de control de versiones es realmente muy simple. Honestamente, creo que media docena de comandos debería ser suficiente, utilizando un esquema de archivo que juega bien con los demás. Para mí ClearCase se ve como el resultado de un ejecutivo de marketing que complica deliberadamente a la mierda de cosas para hacer que el producto se vea sofisticado y poderoso. He oído que puede ser configurado para comportarse de una manera sencilla, segura y fiable, pero de nuevo que requiere los servicios de un expert-- fuera de la caja es como una navaja suiza motorizado.

Todo que he experimentado relacionados de alguna capacidad de ClearCase es ineficiente, feo, demasiado complejo, lento, confuso, costoso e inconveniente.

Se parece atraer a los gerentes e ingenieros que se acaba lo han conseguido todos MAL.

Maldición, IBM y Rational deben tener tipos de ventas sorprendentes para vender un producto tan horrible.

Sólo estamos migrando fuera de CC en Git para muchas de las razones que se dan aquí. Me gustaría añadir una razón para permanecer lejos de CC o cualquier otro sistema de control de origen comercial.

datos de su empresa vital es rehén de ClearCase. No se puede sacar.

Sus datos de negocio vital es el código, su historial de versiones y todos los metadatos, como cometer los comentarios, que se registraron y cuándo.

Todo el software tendrá una vida útil limitada. Siempre debe preguntarse cuando se introduce un nuevo sistema que se traga los datos empresariales importantes, si se trata de código, los insectos, los datos del cliente o lo que no: ¿Cómo consigo mis datos de nuevo? Si no puede responder a esta pregunta, no se debe introducir ese sistema.

Cuando migramos a cabo hemos perdido la mayor parte de nuestra historia y todos nuestros metadatos. Esencialmente sólo tenemos la historia que corresponde a las versiones de lanzamiento, pero la información sobre qué cambios se realizaron en respuesta a lo que las peticiones del cliente se pierde (tenemos que los datos en el sistema de atención al cliente y la entrada de insectos, por lo que no se pierde por completo, pero el acoplamiento a el código fuente se ha ido).

Esto será en algún lugar entre una molestia y un problema para nosotros en el corto y medio plazo. En un par de años, lo importante no es más, pero tal vez por 1-3 años se va a importar.

(existen herramientas comerciales para migrar a otra CC SMC, pero no se considera adecuado para nuestras necesidades, y dudo que hubiera sido factible. La exportación mínimos que hicimos tomamos el tiempo suficiente.)

La lección aprendida es: Nunca confiar a datos empresariales vitales a los sistemas propietarios.

No hay confirmaciones atómicas

Una vez que marcó en los archivos, es muy difícil volver a un cierto estado, porque compromete atómicas no son compatibles. Al comprobar en varios archivos, cada archivo recibe una nueva revisión (similar a CVS) y no el registro de entrada en sí mismo. Creo que esta es una característica crucial, ya que casi no se desea revertir los archivos individuales, sino completar cometer acciones (que debería asignar tareas). Con ClearCase sólo se puede volver a ciertos estados mediante el uso de etiquetas. En la práctica, el uso de etiquetas de ClearCase para cada registro de entrada es excesivo y por lo tanto no se hace.

interfaz de usuario Crappy

La interfaz gráfica de usuario de ClearCase Explorer es sólo una gran broma. Horrible en la usabilidad y de aspecto desagradable. Diferente y, a menudo no se proporcionan las funciones necesarias (por ejemplo, de forma recursiva en la comprobación trabajado en artefactos). línea de comandos cleartool herramienta utilizada con cygwin es mucho mejor, pero todavía hay cosas que no están disponibles de forma recursiva como la adición de nuevos archivos / carpetas de control de código fuente. Tengo que reír cabeza si leo una de 50 líneas de código larga secuencia de comandos para solucionar esto.

esfuerzos alta administración

Administrar bestia ClearCase está lejos de ser obvia o ligero (en diferencia de otros sistemas SCM-como CVS, subversión o Git). Esperar a poner un buen número de expertos ClearCase dedicado para mantener funcionando solo.

rendimiento horrible

No hay nada peor que hacer sus desarrolladores esperan, mientras que la interfaz con SMC-herramienta, es como conducir con los frenos de mano habilitados. Se ralentiza el cerebro y también su trabajo. Conseguir nuevos archivos frescas a su visión instantánea toma alrededor de 30 minutos para 10K artefactos. Una actualización (sin artefactos fueron cambiados) por la misma cantidad toma unos 5 minutos. Al experimentar mucho y saltar entre diferentes vistas de puesta al día significa un montón de espera. Se vuelve aún peor, cuando se trabaja en archivos y desea hacer el ingreso o actualizarlos. Entrada y salida exprés, Registro de entrada y añadiendo a ciclos de control de fuente alrededor 10-15 segundos, que es, obviamente, una pesadilla. Se pone muy molesto cuando estás refactorización cambio de nombre / tipos o métodos (muchos archivos pueden verse afectados).

mover

La falta de apoyo de desarrollo distribuido

Hoy en día el desarrollo de software es a menudo una cosa distribuido (desarrolladores están repartidas por todo el mundo que trabaja en el mismo producto / proyecto). ClearCase definitivamente no es adecuado para esto, ya que está muy adecuado para el trabajo fuera de línea. Haciendo un registro de salida (acción antes de poder editar un archivo / carpeta) requiere que esté conectado a la red. Aquí se podría utilizar la opción de secuestro, pero esto es más bien una solución como una función (que básicamente sólo desbloquea el archivo en el sistema de archivos). Si los sitios de desarrollo están muy lejos de su servidor ClearCase la latencia de registro de entrada / salida, incluso puede aumentar de manera tan dramática que no es utilizable en absoluto. Hay soluciones para que al igual que el uso de ClearCase para varios sitios (SMC DB tecnología de réplica), pero usted tiene que pagar más por ello y no es trivial para adminstrate.

Git como alternativa

A pesar de ser un gran fan + partidario de código abierto Todavía estoy dispuesto a pagar dinero para un buen software. Pero al mirar a IBM-monstruo ClearCase yo no invertiría mi dinero aquí, tiene todas estas deficiencias discutidas, y más aún no parece IBM de invertir dinero para mejorar su producto de manera significativa. Recientemente tuve una mirada un SMC Git que se ve muy bien, sobre todo por sus características de ramificación + fusión, donde ClearCase tiene sus principales puntos fuertes.

Esta información proviene de http://www.aldana-online.de/2009/03/19/reasons-why-you-should-stay-away-from-clearcase/

Posiblemente el peor de software jamás se ha hecho. No voy a trabajar para cualquier empresa que utiliza nada racional. Aparte de CC estrellarse por completo y reiniciar mi estación de trabajo con frecuencia en construye dinámico. ¿Qué pasa cuando usted está empujando algo para control de código fuente y CC hace lo que mejor sabe, choque? ¿Es el código a continuación, poner en lost + found, apoyado en algún lugar, tal vez? No, se ha ido para siempre. Así que si alguna vez en la situación espantosa de la utilización de esta pieza gigante de software caro, mantener duplicados de todo. Buen trabajo racional / IBM. Manera de capturar la parte más importante del control de origen, la fiabilidad. Die lento.

Los inconvenientes de ClearCase -. Una adición a la poste más en profundidad aquí

  1. La herramienta de combinación no vale la pena. Apenas le ayuda, recuerda ninguna decisión que ha realizado, es sólo un diff glorificado.

  2. La herramienta de combinación tiene que echa un vistazo a los directorios incluso comprobar si necesitan una combinación. Es un poco loco.

  3. Yo uso Bitkeeper en el trabajo (vamos a suponer Git), y la fusión de dos centros de almacenamiento, incluso si hay conflictos es tan trivial y fácil de usar incluso con la línea de comandos, mientras que ClearCase tener toneladas de herramientas GUI es un proceso largo y laborioso que es también extremadamente propenso a errores.

  4. Todas las herramientas de interfaz gráfica de usuario requieren una tonelada de latencia. Incluso viendo qué se puede hacer en un archivo requiere una conexión de alta velocidad. Así que con un clic derecho en la herramienta de ClearCase en un archivo de trabajo de hogar podría tardar un minuto o dos con Internet de alta velocidad debido a la cantidad extrema de redes requisitos.

  5. Alguien puede estropear completamente el depósito o cheque-ins si hacen sus especificaciones vista diferente al equipo. Que es bastante loco que nadie puede simplemente echa un vistazo a alguna rama; que necesitan la vista apropiada especificación que dicho sea de paso darles la materia derecha. Todo el concepto puede ser agradable y flexible pero el 99% de las veces lo que nos provoca una gran cantidad de dolor. ¿He mencionado que no se puede enviar por correo electrónico su especificación a través de Microsoft Outlook desde herramientas de CC no aceptan UTF-8, por lo que no se puede copiar y pegar?

  6. No tengo absolutamente no bueno que decir de CC. Lo utilicé durante 2 años a 2 compañías y lo dejó caer en un latido sentirse feliz todo el tiempo. También es imposible simplemente experimentar con en casa con sus propios proyectos, por lo que aún aprenderá SVN o Git en casa, y se ven obligados a pasar por dolores ClearCase en el trabajo. Nadie que yo conozca ha utilizado siempre CC voluntariamente. Sólo utilizan porque algunos encargado en el trabajo decidió CC es el camino a la salvación y obligó a todos a migrar a la misma. De hecho, mi última empresa migró de CVS a ClearCase, y después de un año a partir de ClearCase a SVN. Era que odiaba.

  7. ClearCase no es sólo una cosa que te hace decir que no. Es como vivir en una casa llena de hormigas. Cada hormiga es sólo un pequeño inconveniente en el mejor, pero la infestación te volverá loco.

Estoy tratando de consolidar algunos comentarios en un puesto real aquí. No estoy realmente aquí para convencerte de que uno es mejor que el otro, excepto por el modo de hacer unos cuantos puntos:

  • Si usted está comparando Git y ClearCase, respetuosamente sostienen que es necesario definir mejor sus necesidades - si usted está considerando ClearCase para una "buena" razón, el GIT, probablemente, no es ni siquiera en la ecuación - es demasiado nueva confiar para el control de la fuente de nivel empresarial, la OMI.
  • ClearCase introduce una gran cantidad de conceptos en el espacio de control de versiones que otros sistemas no tienen, por lo que puede ser bastante desalentador y confuso. Sobre todo si la única experiencia que tiene es la lectura de la documentación, como parece ser el caso para algunas personas aquí.
  • ClearCase definitivamente no es muy adecuado para grandes bases de códigos soportados por los desarrolladores que no están en una LAN con un servidor VOB. Usted puede tener muchos servidores replicados VOB (multi-site) para conseguir que cerca de desarrolladores remotos, pero esto no es necesariamente práctico si esos sitios remotos son sólo un único promotor.
  • ¿Quieres versiones de archivos o versiones repositorio? Esta es una cuestión muy importante, y uno que filtrará necesariamente a cabo un conjunto completo de herramientas, lo que hace más fácil su trabajo. versiones repositorio tiene un montón de ventajas (y no es "nuevo", como algunos carteles reclamados - herramientas comerciales como Perforce han existido por más de una docena de años, y que puede haber habido herramientas que hacían versiones repositorio incluso antes de Perforce), pero no es una panacea.
  • Con una cantidad suficientemente grande de instalación de cualquier sistema de control de código fuente, usted va a necesitar ayuda. Al considerar las herramientas, debe tener en cuenta lo fácil que será encontrar personas para ayudar a usted (ya sea solicitantes de empleo que tienen experiencia, o asesores que estarán allí en el aviso a momentos para hacer frente a cualquier problema). No hay tal cosa como un sistema SMC sin necesidad de mantenimiento, y suponiendo que tiene uno conseguirá que en más problemas de escoger uno que requiere "demasiado" de la administración.
  • No prestar demasiada atención a las personas que hablan de lo malo "vistas dinámicas" son - las malas políticas SCM son malos, independientemente de la herramienta que está utilizando. Sus políticas y prácticas de gestión de configuración tienen que ser separado de su elección de la herramienta - ninguna herramienta impedirá que la gente rompiendo todo a su base de código si no se define ramificación sensible y políticas que se fusionan. Si alguien sugiere que tienen los desarrolladores se comprometen directamente en / principal es siempre una idea sensata, es posible que desee alejarse de esa conversación.

ClearCase es una herramienta muy bien, pero es un complicado herramienta. Allí no está recibiendo todo esto - que no tiene un modo "fácil de instalar". :-) Desde un punto de vista técnico, no hay nada que GIT o SVN pueden hacer eso ClearCase no puede (aunque a menudo la terminología es diferente, ya que los proyectos de código abierto tienden a simplemente inventar nueva taxonomía, donde ya existía uno), pero algunas cosas son definitivamente más fácil / más difícil para un sistema dado, dependiendo de su diseño. ClearCase vistas "instantánea" son básicamente lo mismo que tendría si marcó un repositorio de SVN o CVS - es una copia local del código fuente en su máquina, con los punteros de nuevo en el servidor central para disfrutar de herramientas para consultar el historial de versiones, etc. puede trabajar con estos puntos de vista sin ningún tipo de conexión de red al servidor ClearCase en absoluto una vez que han sido creados, y se puede "reciclar" ellos para evitar la descarga de toda su repositorio de nuevo cuando se quiere pasar a trabajar en otra rama, por ejemplo. "Vistas dinámicas" son básicamente una invención ClearCase, y el modo de funcionamiento estándar para una LAN. Aparecen los mismos que retirar un repositorio SVN, pero que en realidad no copiar ningún archivo hasta que haga cambios. De este modo, la vista está disponible de inmediato, pero es evidente que no se puede trabajar con si el servidor principal clearcase es unavailpoder, y es desagradable para trabajar con más de una conexión de alta latencia. También tienen la ventaja de poder ser montado como una unidad de red en cualquier máquina con acceso al servidor en el que fueron creados, por lo que si sus ventanas estación de trabajo muere, sólo puede conectarse a otro, montar su punto de vista, y obtener de vuelta al trabajo, ya que todos los archivos se almacenan en el servidor de VOB (para los archivos que no se haya modificado en esta rama), o la view_server (para los archivos que haya creado o modificado solo en esta vista).

También, y esto merece su apartado propio .... clearmerge es casi vale la pena el precio de la entrada. Es sin duda la mejor herramienta de combinación que he utilizado en mi vida. Creo firmemente que una gran cantidad de malas prácticas en el SMC ha desarrollado debido a la falta de alta calidad fusionar herramientas, por lo que los usuarios de CVS nunca aprendieron a usar ramas correctamente y este miedo de ramificación ha propagado hasta la actualidad por ninguna en particular una buena razón.

Ok, todo esto dicho, si usted está buscando razones para no usar ClearCase, no son difíciles de encontrar, aunque creo que esa es la forma equivocada de hacerlo. Realmente lo que necesitará para llegar a buenas razones para utilizar ClearCase, no razones para no utilizar ClearCase. Usted debe entrar en cualquier situación SMC suponiendo que ClearCase es demasiado complicado o demasiado herramienta de una herramienta para el trabajo, y luego ver si tiene alguna situación que le anima a utilizar de todos modos. Tener IBM Rational o logos no es una buena razón ..: -)

No me incluso considerar ClearCase a menos que se puede decir que sí a todas las declaraciones siguientes:

  • hacer ahora, o en algún momento tendrá, más de 50 desarrolladores que trabajan en la misma base de código.
  • La mayoría de los desarrolladores están en el centro, o tienen conexiones de alto rendimiento de baja latencia a una ubicación central.
  • Usted tiene un conjunto de políticas y SCM puede identificar cómo utilizar ClearCase para hacer cumplir esas políticas (en realidad debe tener en cuenta esto para cualquier herramienta)
  • El dinero es realmente ningún objeto

Mi experiencia está limitada por CC, CVS y SVN. En principio, CC es tecnológicamente capaz, listo para la empresa y comparable de características con cualquier VCS modernas. Pero tiene varios defectos que la hacen inutilizable en cualquier entorno orientado a las personas. Para entornos orientados a procesos es probable que sea más apropiado, aunque dudo que tales ambientes son apropiadas por sí mismos. Tal vez, en el ejército, el software cósmica o médica, no sé. De todos modos, creo que incluso para estos dominios existen herramientas apropiadas y aún más amigable.

Además de ser VCS técnicamente capaces, CC tiene varias ventajas distintivas:

  • Las vistas dinámicas
  • Versión Árbol agradable
  • Triggers
  • Buena versiones de combinación, incluyendo cambios de nombre

En mi opinión, su uso está limitado a excepción último; y no compensan defectos. bonita vista dinámica en teoría, pero no siempre está disponible en la práctica. árbol Versión tiene mucho menos su uso en otros VCS, aunque necesaria en CC debido a la proliferación de las ramas (ver 6). Disparadores, que yo sepa, muy detallado y capaz, pero creo que para las tareas más prácticos ganchos SVN son lo suficientemente buenos. Y ahora sobre las desventajas que en su mayoría se refiere a la facilidad de uso:

  • CC falla totalmente en sentido de la facilidad de uso para el grupo de usuarios principal: para los desarrolladores. Y esa es la razón principal por la que creo que nunca debe ser usado en cualquier entorno, ya sea de la empresa o no. Incluso si era gratis, sería, sin embargo, chupar el dinero de su empresa por la pérdida de tiempo de los desarrolladores y frustrante ellos. Este punto se compone de:
    1. "Confirmar Check-In" con el enfoque de bloqueo estricto - es contraproducente, refactorización antipático, y peligroso en las organizaciones del repositorio con la rama de desarrollo única para múltiples desarrolladores. Mientras tanto, las ventajas de un estricto bloqueo son insignificantes.
    2. El bajo rendimiento y alta carga
    3. Es efectivamente no se puede utilizar de forma remota sin multi-sitio (debido a la 2). Multisitio es caro también. ClearCase cliente remoto es muy limitado. Que ni siquiera tienen cleartool (antes de la versión 7.1), dejando solos vistas dinámicas.
    4. Se puede difícilmente ser utilizado fuera de línea. Las vistas dinámicas no se trabajan. vistas instantáneas se leen de manera efectiva solamente, porque no se puede comprobar a cabo sin acceso al repositorio (ver 1). Secuestro es mala opción que de hecho significa que CC renuncia a cualquier responsabilidad por archivo de secuestrado. Y CC no se puede mostrar diferencias con la versión anterior cuando fuera de línea. SVN es capaz de mostrar la diferencia con el anterior revisión aun siendo fuera de línea.
    5. excesivamente complicado modelo, sobre todo con la UCM: VOB, PVOBs, Proyectos, arroyos, sucursales, puntos de vista, entregan, actualizar, cargar, restaurar, rebase, combinar, la línea de base, el registro de entrada, la salida. Creo que la mitad de estos conceptos son sólo superfluo y no añade valor, al tiempo que aumenta la complejidad tanto técnica como conceptual. Pocas cosas desarrolladores a entender siquiera básica de CC.
    6. proliferación de las ramas. Por ejemplo, el repositorio organiza a menudo con la corriente por desarrollador (debido a 1). Simplemente no tiene sentido en el SVN o la mayor parte de otro VCSs.
    7. No hay revisiones ancho del repositorio. Bueno, hay las revisiones que entender, que llamaron líneas de base. Pero cuando veo a algún archivo de revisión y quiero obtener instantáneas de repositorio en el momento de ese archivo de revisión, voy a tener algunos problemas. Tendré que hacer magia negro con especificación de configuración para crear una vista instantánea, o encontrar alguna manera a través visión dinámica, si está disponible.
    8. Crappy GUI usuario. árbol de versiones, aun siendo agradable, tiene la facilidad de uso mediocre. Herramienta de fusión es una pena. Otras "características":. No ventanas de tamaño variable, ausencia de búsqueda incremental en algunos lugares, la interfaz de ratón centradas, ver y sentir en el estilo de 1995, el flujo de trabajo extraña distribuidos entre cliente y Explorador de proyectos, etc.
    9. CC provoca complementos de verificación raras y vastas. Todos ustedes saben, que los registros de entrada deben ser pequeña y frecuente. Pero los desarrolladores por lo general refrains de interacciones adicionales con CC, secuestran los archivos y el trabajo en VCS local o incluso sin VCS en absoluto (que es más a menudo, por desgracia). Y luego, después de dos semanas de desarrollo comienzan cometer función comlex que añade 20 archivos y afecta a otros 20 archivos. Su duración es de un día o dos, ya que secuestraron archivos y ahora necesitan para llevar a cabo la fusión manual con todos los nuevos cambios de cesión temporal y resolver todos los conflictos y discrepancias. Durante ese proceso, el código no se encuentra compilables, debido a que varios archivos correctamente nos registramos y otros no lo hacen. Y después de que todavía no radica compilables porque se olvidaron de añadir otros 2 archivos a CC.
  • Es muy caro
  • Es muy complejo en términos de infraestructura y requiere que los administradores dedicados

ClearCase parece extremadamente potente, desde el exterior. Pero, en realidad, es sólo que el número de comandos y opciones que necesita para utilizar el flujo de trabajo básico es tan alto que éstos quedan ocultos detrás de algunos alias o secuencias de comandos, y terminas con algo menos potente que CVS, con la facilidad de uso de Visual Source Seguro. Y cada vez que quieres hacer algo un poco más complicado que las secuencias de comandos permiten, se obtiene una sensación de malestar en el estómago.

Compárese esto con Git, que parece complicado desde el exterior, pero después de una semana de trabajo con ella se siente completamente en control. El modelo de repositorio es sencillo de entender, y muy poderosa. Debido a que es fácil de conseguir en las tuercas y tornillos, en realidad es agradable para excavar por debajo de la superficie de su flujo de trabajo diario.

Por ejemplo, averiguar una tarea trivial como la manera de ver sólo una versión no HEAD de un archivo en una visión instantánea Me tomó un par de horas y lo que terminó con la era a completar truco . No es el tipo de truco agradable tampoco.

Pero en Git, averiguar una tarea aparentemente complicado, tales como la forma de comprometerse de forma interactiva sólo algunos cambios, (y dejar el resto para más tarde) era muy divertido, y todo el tiempo que tiene la sensación de que el VCS me está permitiendo a organizar el código y la historia de una manera que se adapte a mí, en lugar de la historia de ser un accidente de cómo se utilizó la VCS. "Git significa nunca tener que decir 'debe tener'" .

En mi trabajo, utilizo Git para todo tipo de tareas ligeras, incluso dentro de ClearCase. Por ejemplo, hago TDD, y me comprometo a Git siempre que un montón de pruebas pasan y estoy a punto de refactorizar. Cuando la tarea está hecha con el tiempo, me registro a ClearCase, y Git me ayuda a revisar exactamente lo que estoy cambiando. Simplemente tratar de conseguir ClearCase para producir un diff a través de un par de archivos - que no se puede! El uso de Google para averiguar los diferentes cortes personas han tratado de evitar esto. Este es el control de versiones debe hacer algo fuera de la caja, y que debe ser fácil! CVS ha tenido esto durante décadas!

  • Pesadilla para administrar en entornos seguros
  • Tecnología obsoleta
  • GUI no intuitiva
  • Caro
  • Monstruo de recursos
  • Vendido a Microsoft

¿En mi opinión?¿Única razón para tenerlo?Si sigues religiosamente a RUP.

El apoyo es terrible. Hemos tenido billetes abiertos durante años. Nuestro Guru Eclipse realidad arreglado un error en su plugin de Eclipse localmente en unos 30 minutos desmontando el archivo java. Pero el billete todavía no tiene más allá del nivel de un apoyo. De vez en cuando o bien tratar de cerrar escondidas o un ping de nuevo a nosotros 'probar en la versión más reciente' (a pesar de que los enviamos una receta reproducción que se podrían tratar por sí mismos.).

No toque con un poste de barcaza.

Rendimiento.

ClearCase es potente, estable (si están bien mantenidos y supervisados) pero es lento. Geológica veces.

Las vistas dinámicas vistas conducen a tiempos de construcción horribles, vistas instantáneas pueden tomar las edades para actualizar (hora del almuerzo para grandes proyectos) o la caja (volver a casa para el día).

  • Los desarrolladores pasarán 1/2 de su tiempo en averiguar clearcase antes de realizar cualquier trabajo y una vez que han averigüé que van a instalar git localmente y sólo empujar al repositorio clearcase según sea necesario.

  • Vas a tener que contratar a un administrador Clearcase dedicado.

Yo sugeriría SVN para el conjunto de herramientas y Git para escalar / flujo de trabajo. También me gustaría sugerir evitando en lo posible CC. (Sin contar el dinero, el hecho de que es un dolor para uso que se requiere un administrador de tiempo completo es una broma total)

Recientemente tuve que bregar con una situación similar. Tal vez usted puede aprender de mi historia.

El equipo estaba recién asignado a estaba usando una herramienta de peso pesado de una manera enrevesada y propenso a errores. La primera vez que intentaban venderlas en mis herramientas y los procesos de elección. Este intento fracasó rotundamente. Me quedé atónito que fueran a un entorno tan gravosa sobre uno que era más fácil y más eficaz. Resulta que querían ser disciplinado, y el uso de un proceso doloroso sintió disciplinado a ellos. Suena extraño, pero es cierto. Tenían un montón de otras ideas falsas también. Después me di cuenta de lo que estaban buscando, en realidad nos quedamos con la suite misma herramienta (Serena), pero masivamente cambiaron la forma en que se ha configurado.

Mi consejo es averiguar lo que importa a su equipo. Rasgadura en ClearCase no llegarán a ninguna parte a menos que hablan a sus intereses. También, averiguar por qué no quieren utilizar alternativas. Básicamente hacer una reunión pequeños requisitos y adaptarse a sus opciones de la herramienta a sus necesidades. Dependiendo de sus opciones, quién sabe, claro del caso puede llegar a ser la mejor opción después de todo.

No estoy totalmente en contra de ClearCase (que tiene sus ventajas), pero hacer una lista de las desventajas:

  • Limitaciones de la Licencia - No puedo trabajar fácilmente desde su casa, porque yo no tengo acceso al servidor de licencias. Incluso con una visión instantánea en mi portátil tengo que jugar trucos porque no puedo obtener una licencia. Hay un cliente remoto especial, pero añade un montón de sus propias limitaciones a la mezcla
  • Limitaciones de la Licencia de nuevo -. Sólo tantos asientos para todos, y luego nadie puede usarlo
  • herramientas de Unix de retraso - ClearCase parece funcionar mejor en los sistemas Unix, pero las herramientas GUI chupan allí. la integración de Windows / Unix de ClearCase introduce todo tipo de sus propios dolores.

El mayor inconveniente para mí es a la vez el rendimiento (especialmente si su VOB es multisitio o fuera del sitio), y potencialmente largos tiempos de parada.

Si eres como yo y el trabajo en un tiempo relativamente pequeña oficina como parte de una gran empresa (sin el sitio de TI), servidores Clearcase que van abajo le puede costar la mejor parte de un día de trabajo en la falta de productividad, así como conseguir las personas adecuadas para solucionarlo.

En pocas palabras, lo utilizan sólo si realmente lo necesite para lo que está haciendo y asegúrese de que tiene un presupuesto de TI rollizo para mantenerla.

ClearCase es perfectamente utilizable si estás dispuesto a utilizar también otro sistema de control de versiones en la parte superior de la misma! Personalmente, creemos que el uso de mercurio sábana de CC que funciona bastante bien.

  1. no hay confirmaciones atómicas

A partir de la nueva versión de la versión 7.1 CC proporciona el registro atómica como la funcionalidad si te gusta eso. En lo personal yo realmente no lo querría, pero al parecer algunas personas ver que como "una característica esencial". No me gustaría una gran masa de una sola vez como una especie de versión masiva. Por otra parte ... si quieres que sólo encenderlo.

... así que ya no es un argumento.

Se utilizó UCM ClearCase integrado con ClearQuest (DR sistema de seguimiento de Solicitud / cambio) desde hace 4 años con más de 50 desarrolladores. Tenemos más de 50 proyectos UCM más de mil de los arroyos que maneja más de 35K DR y solicitudes de cambio. Durante este período hemos hecho oficialmente más de 600 entregas de integración y al mismo tiempo que tiene hasta 6 esfuerzos de desarrollo y liberación concurrentes.

Yo soy el tipo principal CM / ClearCase con una copia de seguridad que es capaz de realizar la entrega regular / fusión e integración construye. La red y los servidores son compatibles con el equipo de TI. Todo lo que puedo decir es que hemos tenido prácticamente ningún problema que vienen desde el lado CM de este enorme esfuerzo de desarrollo y nunca fueron un tapón de la demostración. Nuestros desarrolladores donde entrenaron con sólo las cosas básicas y simples pasos que se les dio a ellos cada vez que un nuevo proyecto (rama) fue creado a petición de la administración de proyectos.

Muchos desarrolladores se quejó de ClearCase porque carecen / TI / ClearCase / Proceso de apoyo al CM adecuada / Gestión. Los desarrolladores deben centrarse en el desarrollo no SMC o ser un especialista en herramientas. Para un desarrollo de software grande, por lo menos 5-7% del presupuesto debe ser gastado en MC y soporte de herramientas.

El funcionamiento de un JDK de un VOB en Linux.

Pruébelo, es necesario jugar con la variable LD_PRELOAD (sé!)

el punto de "que necesita una persona dedicada" y "es complicado", etc ....

El tema central aquí con la búsqueda de este problema es que usted tiene que definir si quiere tener gestión de la configuración realizada en su organización (que no es la gestión de versiones). Gestión de la Configuración es como Gestión de Proyectos: incluso sin una herramienta que todavía puede hacer gestión de proyectos y sin una herramienta que puede hacer gestión de la configuración. Muchas personas tienen dificultades para comprender esto y mucha gente piensa gestión de la configuración es igual a una herramienta que las versiones de software de fuentes o algo ...... (por lo tanto las comparaciones con subversiones u otros sistemas de gestión de versión)

ClearCase es una solución que es construir para el uso en un entorno de gestión de la configuración ERGO:. Hay un administrador de configuración (al igual que "hay un jefe de proyecto")

Así que ... si en su percepción de que la persona dedicada está ahí para administrar una herramienta Creo que hay algo muy malo. En mi percepción de que hay una persona dedicada que hace que la gestión de configuración desde una perpectiva del usuario final sólo aparece cuando hay un problema con la herramienta, pero considera que esto es sólo el 1% de su puesto de trabajo.

Así que lo que hay que hacer (como en cualquier otro proyecto de software) volver a sus necesidades y poner una lista de requisitos juntos en lo que quiera con su organización de gestión de configuración. Y sí, como en cualquier otro proyecto de software que tendrá los usuarios (como por ejemplo, los desarrolladores) que no están de acuerdo totalmente con otros usuarios (como por ejemplo, gestión) sobre ciertos requisitos. Allí se encuentra la llave en mi humilde opinión sobre algunas de las reacciones que leí aquí.

Y en mi humilde opinión, si usted tiene la lista de organización de requisitos y un gestor de configuración en la mezcla .... la elección es bastante claro (véase también el foro en www.cmcrossroads.com)

ClearCase no es una herramienta única para los usuarios finales que entran en sus fuentes bajo control de versiones como Subversion o Git. Esto es sólo el 1% de por qué un administrador de configuración realmente quiere una herramienta de gestión de la configuración madura.

Y ... creo que la elección de un sistema CM nunca debe sentar con los desarrolladores igual a la elección de la herramienta de gestión de proyectos derecha o el sistema de CRM derecha. Los desarrolladores son los usuarios finales de una cierta parte de la funcionalidad de la herramienta.

Yo seré quizá solo aquí, pero ClearCase no es tan malo como todo el mundo dice. Puede manejar enormes repositeories. Vista dinámica son bastante fresco y potente característica también. Es fiable, se puede personalizar mediante la adición de activadores y las restricciones sobre una base de archivos PEF, permisos, etc.

Por desgracia, viene con un precio, precio grande. Es costoso, y para que funcione correctamente necesita ser configurado y mantenido por el equipo de TI dedicado correctamente. Esto hace que sea muy bueno para BigCo, pero no tan sabia elección para SmallFirm.

Soy un gran fan de DVCS y git, pero puedo entender por qué sería BigCo elegir ClearCase sobre SVN y Git. Lo que no puedo entender por qué alguien decide SVN sobre Git;>

vistas dinámicas. Debe contemplar un sistema de archivos translúcida completamente funcional.

Un beneficio importante es que la propiedad intelectual está siempre en la red corporativa. Una computadora portátil puede ser perdida / robada y sin código fuente en peligro.

Otro es el instante en el acceso al código fuente y los archivos cambiado, no hay tiempo se pasó alguna vez de descargar nada.

Se sirve bien para el propósito que tiene.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top