2008-10-30 49 views
24

¿Cuáles son los beneficios de Perforce?¿Cuáles son las ventajas de Perforce?

Me encantaría tener alguna idea de cómo Perforce puede funcionar mejor en una situación dada que, digamos, Subversion.

Si tiene experiencia con Perforce y Subversion y no cree que haya ventajas, o cree que svn tiene ventajas sobre Perforce, también me gustaría saber por qué.

+2

Perforce rocks. He usado SVN, fuente visual segura y otros sistemas. También he usado forzosamente durante varios años. No dirigiría un proyecto comercial en otra cosa. – Jonesome

Respuesta

6

Personalmente, desprecio forzosamente. Su interfaz de usuario es horrible, complicada y simplemente no intuitiva. Tiene errores y se bloquea a menudo.

He trabajado anteriormente con SVN (a través de Tortoise SVN) y lo he encontrado mucho más simple y amigable.

Por supuesto, todo esto es desde el punto de vista del usuario, probablemente SCM tienen una perspectiva diferente

+7

Estoy totalmente en desacuerdo. He estado trabajando con Perforce durante los últimos 6 años. Los choques son raros, tal vez hace 5 años, pero el Perforce de hoy es sólido como una roca. Debes aprender la interfaz de usuario, o simplemente usar el P4V más nuevo, que tiene una interfaz de usuario más "compatible con Windows". – steffenj

+2

Te dirijo a P4WSAD (Integración de forzar-eclipse) que está lleno de errores. En cualquier caso, UX es totalmente objetivo, de ahí el "personalmente" en el comienzo de mi respuesta. –

+4

No creo que sea justo juzgar todo el SCM por el mérito (o la falta de él) de un complemento opcional. Uso Perforce diariamente, con Java pero sin el complemento. Solo manejo el control de fuente fuera de Eclipse. Tan fácil como – ninesided

2

Estoy de acuerdo con la Yuval anterior - de haber trabajado con Perforce y SVN, tanto en interfaz gráfica de usuario y el modo de línea de comandos, Yo prefiero svn. Sin embargo, la compañía para la que trabajaba cambió de los cvs gratuitos que usaba a Perforce. Su GUI es más llamativa. Creo que su modelo de confirmación es diferente: usa bloqueo, que puede ser preferible para algunos desarrolladores/gerentes. En un entorno comercial, contar con personal de soporte para su herramienta de control de versiones también puede ser útil. He oído que en algunas grandes compañías está prohibido el uso de código abierto en entornos de producción, porque quieren poder recibir soporte para cada línea de código.

4

Perforce admite el bloqueo, y parece requerirlo para algunos tipos de archivos que no se pueden fusionar (recursos binarios, imágenes de pensamiento, etc.). Sí no, sin embargo, requieren el bloqueo de archivos de origen ordinarios, los que pueden ser abiertos para su edición por varios usuarios al mismo tiempo, y luego se fusionaron de nuevo en el depósito.

Encontré el sistema de Perforce con "listas de cambios", ese grupo cambia a varios archivos y los trata como una unidad, agradable. Estoy seguro de que puedes hacer algo similar con SVN, pero no es tan fácil de usar.

+3

En realidad SVN funciona de la misma manera que las listas de cambios. Cada número de versión tiene un amplio repositorio, por lo que si retrocede a una versión, se revierte todo el repositorio. – philsquared

7

Perforce tiene un modelo un poco diferente que, por ejemplo, svn. Cada archivo siempre está bloqueado en su copia de trabajo, y debe declarar forzosamente que comenzará a editarlo. Esto tiene, por ejemplo, la ventaja de que siempre se puede ver inmediatamente quién más está trabajando en un archivo.

En resumen, las diferencias con otros SCM no son muy grandes. Encuentra Perforce en muchos lugares porque en un momento era uno de los pocos (si no el único) SCM parcialmente decente que funcionaba en Windows y Mac.

Si no me equivoco, se puede utilizar de forma gratuita con un número limitado de clientes, para que pueda probarlo sin mucho dolor ...

+0

No se aplica el bloqueo, solo en archivos binarios (que no se pueden fusionar). Sin embargo, varias personas pueden trabajar juntas en el mismo archivo ASCII (por ejemplo, el código fuente) y luego fusionarlas. – steffenj

+2

Hay una licencia gratuita de solo 2 desarrolladores para Perforce. – riadd

+0

También es muy fácil obtener un permiso temporal de Perforce para probarlo para su equipo. Solo llame y pregunte y puede obtener tantas licencias como necesite de forma gratuita durante 30 o 60 días. – user5722

20

He trabajado con Perforce durante años, así como Clearcase, Sourcesafe, RCS, PVCS, CVS y Subversion. Más recientemente, comencé a usar GIT también.

De esta experiencia, mi opinión es que, para la mayoría de los propósitos, Perforce es el mejor sistema de control de versiones para entornos comerciales. Aunque no es tan simple, inicialmente, como Subversion, tiene una serie de características más potentes, especialmente en torno a la bifurcación y la fusión. El enfoque "bloquear por defecto" generalmente es más adecuado para este entorno.

Para cosas personales, pequeños proyectos de colaboración, pequeñas empresas de nueva creación o proyectos de código abierto, creo que Subversion es más adecuada en muchos casos. Tienen diferentes enfoques, diferentes formas de trabajar.No puedes simplemente alinearlos en una escala y decir cuál es el mejor.

Dicho esto, odio ClearCase. ClearCase por lo general se ve forzado desde arriba (es decir, una decisión de administración).

Para muchos de los casos en que Subversion triunfa Perforce muchas personas parecen preferir los sistemas distribuidos como GIT, Bazar, Mercurial, en estos días. Por lo que he visto de GIT, es posible que tengan razón y estoy seguro de que otros pósters lo confirmarán.

+0

Phil: ¿está completamente permitido su propia opinión de Clearcase, pero me interesaría saber por qué la "odia"? ¿Qué fue lo que te llevó a tal enojo? :) – Spedge

+1

Es una opinión compartida por la mayoría de mis compañeros de trabajo :-) ClearCase es pesado, lento y complejo. Es particularmente malo en los registros a granel, y no tiene un concepto de asociación de archivos que se registran al mismo tiempo (como las listas de cambios de Perforce). ¡Diría más, pero no tengo personajes! – philsquared

+3

Clearcase es un mundo de dolor, y una vez que te mueves a algo como forzosamente te preguntas por qué alguna vez aguantaste esta mierda. – jonnii

4

Puede encontrar sugerencias en What are the benefits of using Perforce instead of Subversion? (solo siguiendo su etiqueta Perforce ...).

Usamos Perforce en el trabajo y aunque tengo poca experiencia con varios software SCM, este me parece bastante bien hecho, con una buena GUI (en Windows), buena compatibilidad con línea de comandos, muchas características agradables ... Podría Tómate un tiempo para acostumbrarte a su lógica, pero probablemente sea cierto para la mayoría de SCM, creo.

14

Uno de los principales puntos de venta de Perforce es la velocidad. El servidor realiza un seguimiento del estado de los archivos en el cliente; por lo tanto, las operaciones como "obtener el último estado del depósito" son triviales: el servidor ya sabe qué archivos tiene y le puede devolver la cantidad mínima de información.

Esta ventaja también presenta una desventaja, ya que el servidor y el cliente pueden perder sincronización si edita archivos localmente sin verificarlos primero, mueve los archivos localmente sin realizar una integración o elimina los archivos localmente.

Dado que el servidor Perforce solo envía al cliente el mínimo de datos, Perforce funciona bien sobre enlaces lentos, como una situación en la que un cliente en los EE. UU. Accede a un depósito en Londres. Una vez dicho esto, el protocolo de Perforce es relativamente "hablador", por lo que es susceptible a la desaceleración de los enlaces congestionados.

+1

Estoy de acuerdo con su desventaja comentada, especialmente si no puede conectarse al servidor por alguna razón. Sin embargo, es fácil hacer que Perforce resuelva el problema: http://stackoverflow.com/questions/266771/detecting-perforce-unmodified-filed-files – user5722

+0

Sí, se llama 'Force Resync'. –

+0

Esta idea de desventaja es de personas que no son conscientes de VCS. Los archivos locales son RO hasta que los compruebes. Se necesita un esfuerzo real para hacer lo incorrecto. Y, aunque ocurriera lo incorrecto, no sucederá dos veces ... – Jonesome

11

Uso forzosamente en el trabajo todos los días y no se lo recomendaría a nadie. Estoy seguro de que fue quizás el mejor SCM durante años, pero su modelo principal está desactualizado.

Perforce es quizás el más sistema de SCM centralizado que he usado. Imagine que están orgullosos de no almacenar nada en el disco. Hacer una sincronización es molesto porque en una gran cantidad de casos no hará nada a menos que no realice una sincronización forzada, y una sincronización forzada copia todo desde el servidor hacia usted. Si su proyecto es de 10 GB, copiará todos. .

Tengo experiencia previa en el uso de SourceSafe, CVS, SVN, Mercurial y git (menos de los dos últimos).

Creo que la mayoría de los SCM de código abierto son maduros y puede elegir uno de ellos. Si quieres algo centralizado ve a SVN y si quieres algo descentralizado usa Mercurial (tuve malas experiencias con git en Windows).

Algunos otros problemas que tuve con Perforce:

  • lo que compromete no es lo que recibe: por ejemplo, si usted comete un archivo UTF16 en un Mac Intel y sincronizarlo desde otro Mac PPC se le obtener otro archivo UTF16 porque forzosamente es inteligente y lo encubierta con el pedido de bytes del cliente. UTF16-BE - UTF16-LE?!
  • scripting forzado es 10 veces más difícil que otras herramientas.
  • si empiezas a usarlo y lo atas a tus procesos mediante scripting probablemente mueras con él porque todo se hace de manera forzada y obligatoria :(
  • imagen que es muy fácil bajar un servidor p4: simplemente sincronícese en la raíz del proyecto. ¡Donde trabajo esto no está permitido porque puede quitar el servicio! Hay un script de observación que está monitoreando los procesos del servidor forzado y si uno de ellos toma el control de x GB de RAM. no matarlo y le enviará una notificación. Sí, haciendo un simple comando en el cliente puede crear un proceso de 3GB en el servidor en 5-10 segundos.
+2

No estoy de acuerdo con casi todas las afirmaciones que has hecho aquí. La codificación de archivos es configurable, si configura Perforce incorrectamente, no es su culpa. La creación de scripts es increíble, y con tantos idiomas admitidos (Java/Python/Ruby/.NET, etc.), la barrera de entrada es bastante baja. La creación de scripts de un SCM casi siempre se hace a medida del software elegido, no puedo pensar en un solo caso donde este no sea el caso. Realmente no puedo comentar sobre quitar un servidor ya que nunca lo he visto suceder, incluso sincronizando todo el depósito entre el Reino Unido y Australia. – ninesided

+1

Respeto tu opinión, pero no olvides que "todo el depósito" puede ser algo muy diferente de una compañía a otra. Tengo muchos archivos (¡6 dígitos!) Y más de 30 GB de datos en un único almacén. – sorin

+1

@sorin No estoy seguro de cómo se configura Perforce en su empresa, pero almacenamos más de 7 dígitos en nuestros depósitos y lo que dice nunca sucede. Algo me dice que algo está mal con su configuración. – CodingMadeEasy

0
servidor

un Perforce puede leer y escribir fil arbitraria es en el cliente, y así ejecutar código arbitrario. La configuración de Perforce es toda del lado del servidor, por lo que el servidor podría tratar simplemente todo el disco duro de la computadora de los clientes como un repositorio, y hacer lo que quiera.

Nunca ejecute Perforce excepto en un entorno limitado SELinux.

Recuerde: el cliente de Perforce es el títere del servidor. Debe usar las funciones de seguridad del sistema operativo para evitar que haga algo que no desea que haga. SIEMPRE trate al cliente de Perforce como hostil.

+0

No hay control del lado del servidor de la ejecución del código en el cliente. ¿Tienes prueba de este reclamo? –

+0

Sí. El servidor controla dónde termina el repositorio, por lo que puede decirle al cliente que sobrescriba cualquier archivo. – Demi

+0

Esa acción es controlada por el cliente. Y tienes 100% de control sobre cuándo sucede. Si no quiere que suceda, simplemente no puede sincronizar el cliente. –

Cuestiones relacionadas