2009-10-20 13 views
7

En el trabajo utilizamos forzosamente y se les anima a realizar compromisos regulares (algo con lo que estoy de acuerdo). Sin embargo, me gustaría ejecutar algo así como mercurial para que pueda confirmar localmente cosas que están en proceso y que no necesariamente se compilan/ejecutan y luego de esto hago mis commits regulares al servidor central forzado.Local se compromete a empujar a un servidor central

Mi pregunta aquí es doble, primero, ¿alguien sabe cuán bien Visual Studio podría manejar múltiples enlaces de control de origen (idealmente quiero que todo sea lo más autónomo posible? Hey, soy flojo:))

Y en segundo lugar, ¿hay alguna herramienta disponible que me permita hacer algo tan simple como "Verifique el actual jefe del repositorio mercurial a la fuerza".

Me parece recordar que GIT le permite hacer algo similar a esto, y no estoy totalmente en contra de probarlo.

Si me he perdido nada obvia o estoy pensando en esto en su totalidad por el camino equivocado, no dude en reprendiéndome;)

Saludos

Respuesta

3

El interés de su idea no está tanto en las confirmaciones privadas como en el "desarrollo fuera de línea": Mercurial o Git le permiten trabajar incluso si no está conectado al repositorio central de Perforce.

Pero con respecto a la bifurcación, son más fáciles de crear o combinar con Hg o Git, por lo que podría ser una idea.
El principio sería crear su repositorio de Hg o Git en su espacio de trabajo de Perforce.

using mercurial with perforce (or some other centralized vcs) Este artículo sirve para ilustrar un enfoque similar:

Si el código ya está en fuerza, voy a tirar abajo una copia y hg init un repositorio local; de lo contrario, iniciaré el uso de mercurial y revisaré forzosamente más tarde (normalmente esto es para un pico).
Haré un poco de trabajo, y me comprometo a medida que vaya a mercurial.
Mi compromiso forzado tiende a ser un conjunto de compromisos de hg más pequeños, como alternativa, si deseo hacer un seguimiento de los cambios, verifico los compromisos de hg individuales avanzando el historial usando "hg update" (algunos más sobre esto a continuación).
no comprometen a la carpeta .hg en Perforce por cierto

+0

Gracias, lo probaré más tarde hoy:] – Lee

+0

Esto parece funcionar, también configuró una macro para guardar todos los archivos y confirmar ... overkill:] – Lee

6

En mi opinión, lo que quiere es diferente ramas en lugar de múltiples sistemas SCM. Si desea tener su área de juegos donde pueda enviar trabajos en progreso, cree una rama de desarrollo fuera de la rama principal en Perforce. Puedes actualizar eso regularmente con cosas que otros envían e integrar tus cambios a main una vez que estés satisfecho/hecho.

Esto también elimina la pregunta sobre qué tan bien VS lo enfrentaría.

+0

un punto justo y uno que definitivamente vale la pena considerar, sin embargo, nuestro esfuerzo puede ser lento algunas veces para comprometerse. ¡Pero definitivamente voy a considerar esto! – Lee

2

Git viene con un front-end git-p4 que le permite crear un nuevo repositorio Git que la totalidad o parte de un sub-Perforce árbol. (Los espacios de trabajo del cliente complejo no son compatibles, la última vez que lo revisé). git-p4 se encuentra normalmente en el árbol contrib y puede o no venir con su instalación de Git, o puede obtener una versión reciente here, from git.kernel.org. Este script requiere Python.

Esencialmente, usted git p4 clone su //depot/path aguas arriba y luego puede git p4 sync para tirar hacia abajo los nuevos cambios en su rama actual, o git p4 rebase a reajustar su rama actual en la parte superior de la trayectoria de Perforce aguas arriba. Si tiene un espacio de trabajo de Perforce independiente adyacente a su repositorio de git, puede entonces git p4 submit. (Utilizo una herramienta interna separada en VMware para enviarla a nuestros servidores Perforce, así que no he usado git p4 submit)

Desafortunadamente, no sé qué tan bien VS trata con git o git y Perforce simultáneamente. Supongo que cualquier integración de VS no trata con el lado de Perforce de git-p4, pero puede hacer todas sus operaciones normales de git como lo hace normalmente y simplemente usar un intérprete de comandos para llamar al git-p4.bat o algo así para hacer sus operaciones de Perforce.

Otra opción es tener simplemente un repositorio (o Mercurial) inicializado justo en su espacio de trabajo Perforce git. Here es un ejemplo de someone who does this with Mercurial.

+0

Encontré este artículo muy útil: https: // git.wiki.kernel.org/index.php/Git-p4_Usage –

Cuestiones relacionadas