Soy nuevo en Mercurial HG. Mis amigos crearon un repositorio y lo voy a usar. Instalé TortoiseHG e intento obtener el último código. Descubrí que cuando uso la operación Clonar, extraeré todo el código a mi local, incluidos los historiales (¿estoy en lo cierto?). Esto no es necesario para mí. Solo quiero obtener el último código. ¿Hay una operación para esto?Al usar Mercurial HG, ¿cómo obtener el último código?
Respuesta
En resumen, no.
En un poco más de tiempo: Mercurial aún no admite clones "poco profundos" en los que solo se obtiene parte de la historia. Entonces, cada vez que clonas, atraes todo el repositorio con todos los conjuntos de cambios.
Además, a diferencia de Subversion, no hay forma de hacer un clon "estrecho" en el que solo se realiza la salida de una porción de un repositorio. Por ejemplo, si un repositorio tiene los directorios foo/
y bar/
, no hay forma de obtener solo el directorio bar/
. En otras palabras, Mercurial siempre opera en instantáneas de todo el proyecto.
Parece que la historia es algo importante para Mercurial. Y siempre incluirá toda la historia. – DeepNightTwo
Cambié la terminología en la respuesta a lo que normalmente usamos en Mercurial: hablamos de clones "poco profundos" cuando solo obtienes parte de la historia y clones "angostos" cuando solo obtienes parte del árbol de archivos. –
Las personas han hecho prototipos para clones poco profundos, pero todavía no forman parte de la distribución principal. –
Una vez que haya clonado un repositorio, para obtener el código de la "sugerencia" (la última versión de la rama actual - la predeterminada si no es precisa) solo necesita update
.
Tiene una acción de actualización en TortoiseHG. Una vez hecho esto, puede mirar los archivos en la carpeta.
Si deseaba otro estado del repositorio (una versión antigua o un estado antiguo etiquetado), sigue siendo el comando update
, con otros parámetros (consulte los documentos o la interfaz TortoiseHG).
¡Gracias por lo que me dijiste! – DeepNightTwo
Si solo quiere el código más reciente y no tiene la intención de hacer nada relacionado con el repositorio, como commit o versiones anteriores, o lo que sea, depende de dónde obtuvo el código de y cómo
Si está utilizando uno de los servicios de alojamiento, como bitbucket, generalmente hay un enlace de descarga que le proporciona solo el código fuente.
Por ejemplo, si vas here, hay un "Obtener código" enlace hacia arriba y hacia la derecha, que le da algunas opciones en el formato de archivo (zip o lo que sea.)
Si tienes los archivos en alguna parte de lo contrario, debe explorar la interfaz desde la que los obtuvo. Intenta pegar el enlace desde el que clonaste en tu navegador y mira lo que obtienes.
Necesito tomar operaciones como registrar y agregar archivos. Aún estoy tratando a Mercurial como SVN ... – DeepNightTwo
Sure. Clona el repositorio y luego elimina el subdirectorio .hg.
El problema es que sigue emitiendo mucho tiempo para clonar todo el repositorio. Parece que tiene que ... – DeepNightTwo
En realidad no es una solución tan mala. – Marian
La forma más fácil de lograr lo que quiere:
hg archive [destination folder]
Para tirar sólo un subconjunto de los conjuntos de cambios, especifique una o más revisiones identificadores con -r/- rev o ramas con -b/--rama. El clon resultante contendrá solo los conjuntos de cambios especificados y sus antepasados.
e.g. hg clone -b NeededBranch http://example.com/myRepo
La pregunta era cómo clonar sin sacar la historia, sacar a los antepasados todavía va a sacar mucha historia en la mayoría de los casos de uso. –
@YaakovKuperman: Podría ser que está bien extraer el historial una vez, si a partir de ese momento se corta el historial. Pero tienes razón, en la mayoría de los casos esto no reducirá mucho el tamaño total de la historia. Esta técnica es más útil para lidiar con situaciones complicadas de conflicto de fusión. – Yitz
Puede ser que sea un poco tarde, pero en realidad es posible olvidar un poco de historia con Mercurial. Solo necesita habilitar la extensión de conversión desde su archivo mercurial.ini o.archivo hgrc.
[extensions]
hgext.convert=
Ahora usted es capaz de utilizar la extensión convertido al "clon" solamente de cambios a partir de la revisión especificada.
hg convert --config convert.hg.startrev=[wheretostart] path_to_full_history_repo path_to_new_repo
Ten en cuenta que esta no es la misma operación con el clon de Hg. Es por eso que el repositorio de origen debe ser un repositorio local. Por ejemplo si tenemos un repositorio en MiProyecto carpeta y queremos olvidar todos los cambios realizados antes de la revisión 100. Podemos utilizar el siguiente comando:
hg convert --config convert.hg.startrev=[100] MyProject MyShrinkedProject
si se va a utilizar este repositorio encogida en un "centro servidor "recuerda cuidar de que todo el mundo lo clone antes de seguir trabajando". Los repositorios ya no son compatibles entre sí.
Esta respuesta supone que está bien obtener una clonación completa una vez y, a partir de ese momento, usar solo una clonación parcial. Es una buena solución si necesita algo del historial, pero solo regresa a una cierta revisión. Si desea comenzar de nuevo sin historial: 1. Comience con un clon completo. 2. Ejecute el manifiesto de hg y guarde el resultado en un archivo. 3. Borre la carpeta .hg. 4. Ejecute hg init. 5. Ejecute hg add en la lista de archivos guardados. – Yitz
- 1. Mercurial deshacer tres hg push
- 2. ¿Deshacer el último addremove en Mercurial?
- 3. Cómo usar mercurial (Hg) dentro de una aplicación Python?
- 4. ¿Cómo obtener mercurial para notar archivos agregados en subdirectorios? (hg st, hg add)
- 5. Cómo revertir un mercurial hg pull?
- 6. Mercurial hg serve multiple repositories
- 7. Usando hg revertir en Mercurial
- 8. Mercurial HG colisión caso plegado?
- 9. Obtener mercurial "hg commit" para trabajar con Notepad ++
- 10. Mercurial: enumere archivos "hg diff"
- 11. Mercurial predeterminado de combinación hg
- 12. Importar historial de TFS en Mercurial (hg)
- 13. Mercurial: aplicar "hg pull -u" antes de "hg commit"
- 14. hg: ¿Cómo cambio el idioma de mi instalación de Mercurial (hg)? (MacOS)
- 15. Mercurial hg Subrepository issue - "abort: revisión desconocida"
- 16. Cómo obtener el último registro
- 17. "Error al cargar DLL" al usar mercurial en trac
- 18. Cómo inicializar el proyecto de código de Google en Mercurial
- 19. Mercurial "hg status" y paths relativos
- 20. Mercurial/hg - abortar: fusiones no confirmadas pendientes
- 21. Mercurial (hg) comprometer solo ciertos archivos
- 22. ¿Cómo usar Mercurial de Visual Studio 2010?
- 23. ¿Cómo obtener el último error (WSAGetLastError)?
- 24. Encriptador de código: obtener el último segmento de URI
- 25. Cómo usar mercurial desde nant
- 26. ¿Cómo consigo mercurial para mostrar la diferencia durante `hg com`?
- 27. Mercurial: ¿Cómo hacer que HG LOG muestre un padre trivial?
- 28. ¿Cómo ver los comandos de Mercurial emitidos por Tortoise HG?
- 29. ¿Cómo cambia Mercurial cuando ya he usado hg clone?
- 30. ¿Cómo obtener el último registro de Sqlite?
¡Gracias a todos! Aunque todavía tengo que clonar todo el repositorio, ¡aprendo más sobre Mercurial HG de cada respuesta! – DeepNightTwo