2009-11-02 6 views
8

Estoy bastante cómodo con SVN, pero he estado buscando en Mercurial su capacidad para realizar confirmaciones fuera de línea. Algo que no he podido descifrar es cómo hacer una exportación no versionada con una rev agotada. En SVN, las etiquetas solo vivirían en una carpeta \ tags en el repositorio, entonces podría exportar algo desde allí, pero no parece que se utilicen los mismos directorios trunk-branches-tags para los proyectos Hg (¿o sí?)Exportar una copia no versionada de una etiqueta de Mercurial

Lo mejor que puedo averiguar es simplemente clonar el repositorio a alguna velocidad y luego eliminar la carpeta .hg. TortoiseHg tampoco muestra la lista de etiquetas, así que lo clono, navego por el registro, actualizo a lo que sea y luego elimino /.hg. Esto parece realmente torpe, ¿hay algún método preferido?

Respuesta

11

Uso 'archivo hg'.

hg archive [OPTION]... DEST 

    create an unversioned archive of a repository revision 

    By default, the revision used is the parent of the working 
    directory; use -r/--rev to specify a different revision. 

    To specify the type of archive to create, use -t/--type. Valid 
    types are: 

    "files" (default): a directory full of files 
    "tar": tar archive, uncompressed 
    "tbz2": tar archive, compressed using bzip2 
    "tgz": tar archive, compressed using gzip 
    "uzip": zip archive, uncompressed 
    "zip": zip archive, compressed using deflate 

    The exact name of the destination archive or directory is given 
    using a format string; see 'hg help export' for details. 

    Each member added to an archive file has a directory prefix 
    prepended. Use -p/--prefix to specify a format string for the 
    prefix. The default is the basename of the archive, with suffixes 
    removed. 

    options: 

    --no-decode do not pass files through decoders 
-p --prefix  directory prefix for files in archive 
-r --rev  revision to distribute 
-t --type  type of distribution to create 
-I --include include names matching the given patterns 
-X --exclude exclude names matching the given patterns 

El argumento -r aceptará nombres de las etiquetas, y -t files obtendrá un directorio si no desea un archivo histórico.

+0

TortoiseHg no parece ser compatible con 'hg archive', ¿hay algún comando de shell que me muestre una lista de todas las etiquetas? –

+2

Claro que puedes usar 'etiquetas hg'. – tonfa

+1

TortoiseHg ahora es compatible con 'hg archive' a través del menú local' Export-> Archive'. – Pino

3

¿Quizás estás buscando "hg archive"?

para exportar una versión etiquetada uso: hg archive -r mytag ../export-tagged

Cuestiones relacionadas