Pregunta

Deseo controlar las versiones de un directorio, llamarlo "proyecto" y mantener los archivos fósiles dentro de otro directorio llamado "fósiles". He creado con éxito el repositorio "Project.fsl", agregué mis archivos de proyecto, comprometido y cerrado.Mi problema es entender cómo dar el siguiente paso.

Esto es lo que hago, siguiendo las fossilbook sugerencias.

$ cd project
$ fossil new ../fossils/project.fsl
$ fossil open ../fossils/project.fsl
$ fossil add .
$ fossil ci -m "first commit"
$ fossil close project.fsl

Ahora trabajé en mi proyecto, edité algunos archivos, eliminé algunos archivos, creé algunos archivos y cambié el nombre de algunos archivos.Me gustaría agregar el estado actual del proyecto al repositorio.¿Cómo puedo hacer eso?

Según lo que leí en el documento, tenía la impresión de que primero tenía que abrir el repositorio, luego agregar archivos y luego confirmar.Si no abro el repositorio, obtengo el Not within an open checkout. mensaje.Pero si yo open Fossil quiere sobrescribir mi directorio con los archivos más antiguos.(Y si abro desde dentro del fossils directorio, obtengo una versión "desempaquetada" de mi proyecto copiada en el directorio de fósiles, que tampoco es lo que quiero)

$ cd project
$ fossil open ../fossils/project.fsl

Aquí Fossil quiere sobrescribir mi proyecto con la versión anterior.Digo no a todas las sugerencias.Sospecho openNo fue el enfoque correcto, pero si no, ¿cuál es?

Quiero agregar mis cambios al repositorio, así que ahora que project.fsl está open, intento esto:

$ fossil add .
 ADDED  Slides/tmp.tex

$ fossil commit -m "no idea what I'm doing, this will not end well"
 would fork.  "update" first or use --allow-fork.

$ fossil close
 there are unsaved changes in the current checkout

En este punto elimino todos los archivos ocultos llamados .fslckout .fossil e inténtelo de nuevo, con resultados igualmente decepcionantes.

Para ser franco, mi único interés en fossil es mantener un historial de mi proyecto.No tengo coautores y no planeo hacerlo. fossil diff o fossil ui o algo así hasta que llegue el momento, que espero que nunca suceda, en el que necesite profundizar en la historia de mi proyecto.

Editar. Soy un novato total.No estoy seguro de entender el significado de checkout, manifest, leaf, etc.por lo que me resulta muy difícil sacar algo del manual, a pesar de las innumerables horas que paso intentándolo.No entiendo mucho de esta página en fossil open: http://fossil-scm.org/fossil/help/open

¿Fue útil?

Solución

fossil open es lo correcto a hacer.En tu caso es el fossil close eso no era necesario.

En este punto, debes hacer fossil open ../fossils/project.fsl --keep para abrir su repositorio manteniendo todos los cambios.

El abierto El comando marca el directorio actual como un directorio de trabajo (en términos fósiles, un verificar).Le recomiendo que no lo cierre hasta que necesite mover su repositorio o el directorio de trabajo.Personalmente, eso sólo sucede cuando cambio a una computadora diferente.

Para que los fósiles identifiquen todos los cambios, simplemente haga fossil addremove;Luego, Fossil agregará todos los archivos nuevos y eliminará todos los archivos eliminados, de modo que el repositorio vuelva a coincidir con el directorio de trabajo.Por supuesto, aún tendrás que confirmar los cambios después.

Nota eso addremove hace no ¡Reconoce automáticamente los cambios de nombre de archivos!Si ha cambiado el nombre de los archivos, debe comunicárselo a Fossil para cada archivo usando el fossil rename dominio, antes realizas el addremove dominio.Por supuesto, si no le importa romper el historial de edición de archivos específicos, puede omitirlo y dejar que Fossil piense que se eliminó un archivo y se agregó otro en su lugar.

Otros consejos

Ceremonia baja y comienzos fáciles

Para un único desarrollador, el ciclo de vida de un depósito de fósiles puede ser muy sencillo:

  1. fossil new para crear el archivo del repositorio.
  2. fossil open para crear el primer (o posiblemente único) espacio de trabajo activo
  3. fossil add, fossil remove, fossil rename y fossil addremove para mantener a Fossil informado sobre qué archivos rastrear.
  4. fossil commit para confirmar cambios en el repositorio

donde los pasos 3 y 4 se repiten según sea necesario durante la vida útil del proyecto.

Ésta es una de las mayores ventajas de los fósiles:Es una ceremonia muy baja por diseño.Puedes mantener un proyecto muy elaborado solo y realmente solo usar fossil commit sobre una base regular.

Próximos pasos

La siguiente etapa de sofisticación puede avanzar en varias direcciones.Si desea compartir el trabajo de un proyecto con un segundo desarrollador, querrá obtener más información sobre cómo clonar un repositorio y sincronizar actualizaciones.Si desea permitir el trabajo independiente en una función sin interrumpir las compilaciones troncales, puede obtener más información sobre la bifurcación y la fusión.Si desea aprovechar las funciones de wiki y de seguimiento de tickets, querrá obtener información sobre fossil ui, fossil server o configure su servidor web para iniciar Fossil.

Pero ninguno de esos casos de uso requerir el uso de la fossil close dominio.De hecho, la salida de fossil help Recientemente se dividió en una lista más corta de comandos que necesitan la mayoría de los usuarios y una lista más larga de todos los comandos.en esa división fossil close no entró en la lista corta.Las únicas funciones que realiza y que no se pueden realizar fácilmente mediante la simple eliminación de archivos es verificar que no haya cambios no guardados y eliminar el pago abierto de su lista personal de pagos disponibles para el usuario. fossil all dominio.

Vocabulario específico de fósiles

Incluso un solo desarrollador querrá aprender algo del vocabulario utilizado en la documentación de Fossil.

  • "registrarse":Un conjunto específico de revisiones de archivos, identificado por un UUID y posiblemente por una o más etiquetas.
  • "verificar":Un árbol de carpetas asociado (por fossil open) con un repositorio específico.La mayoría de los comandos de Fossil requieren que el directorio actual esté dentro de una caja abierta.
  • "UUID":Un identificador único para cualquier cosa específica almacenada en el depósito de fósiles.En la práctica, el UUID es el SHA-1 de la cosa expresada en hexadecimal.En la mayoría de los casos, el UUID se puede acortar a suficientes dígitos iniciales del hash completo para identificarlo de forma única.Por lo general, se escribirá con 8 o 10 dígitos entre corchetes.
  • "artefacto":Un archivo u otro contenido (una página wiki, un ticket, un manifiesto, etc.) almacenado en el repositorio.Cada archivo que registra se convierte en un artefacto.Lo mismo ocurre con todos los metadatos (comentarios, marcas de tiempo, etc.) sobre cada registro.
  • "rama":Una línea de registros sucesivos que se derivan de algún registro raíz.Las ramas se utilizan para mantener los cambios a un lado hasta que estén listos para fusionarse, o simplemente para contener cambios que son errores.
  • "hoja":El checkin al final de una sucursal.
  • "trompa":La primera rama de cualquier repositorio se denomina "troncal".La mayoría de las otras ramas serán ramas de algún registro a lo largo del tronco.
  • "manifiesto":La lista de archivos modificados en un registro particular junto con los metadatos que describen ese registro (el usuario, la hora, la descripción, el UUID de su registro principal y cualquier etiqueta que pueda llevar) conforma el manifiesto.La mayoría de los usuarios realmente no necesitan preocuparse por los manifiestos, son creados por fossil commit y se puede ver desde la interfaz web.

Interfaz web

Cualquier usuario querrá conocer la interfaz web de Fossil.Un primer paso fácil es decir fossil ui dentro de una caja abierta.La línea de tiempo muestra el historial de desarrollo con un nodo para cada registro y líneas dibujadas para mostrar las ramificaciones y fusiones.La interfaz web es altamente configurable, proporciona un wiki y un rastreador de tickets, y también proporciona una interfaz gráfica de usuario desde la cual se pueden ajustar la mayoría de las configuraciones relacionadas con el proyecto y el repositorio.

Fossil en sí es un servidor web eficiente para el contenido del repositorio.De hecho, la mayoría de las páginas de sitio web oficial de fósiles son servidos por el propio Fossil desde el repositorio del código fuente a Fossil.

Fuentes para obtener más ayuda

Aparte de la sitio web y la ayuda de comando individual disponible en fossil help, hay varios otros recursos que muchos usuarios deberían conocer.

Ahí está el lista de usuarios de fósiles con una relación señal-ruido consistentemente alta.Los principales desarrolladores le prestan atención, al igual que muchos usuarios útiles y conocedores.La lista tiene al menos uno. archivo, así como una lista separada para que los desarrolladores discutan nuevas características y planes, pero fosil-dev no será interesante a menos que quieras trabajar en las partes internas de Fossil.

Jim Schimpf tiene un libro que intenta ser tanto un tutorial como una referencia completa, e incluye algunos consejos sobre las mejores prácticas.Vale la pena leerlo.

La ayuda de línea de comando incorporada junto con la documentación para todas las URL de páginas comprendidas por la interfaz web también está disponible en la interfaz web de Fossil en /help URL dentro del sitio de cualquier repositorio.Ese texto de ayuda incluye documentación de cada comando, incluidos los comandos de prueba internos no compatibles.

Y finalmente, la [etiqueta fósil] [etiqueta] aquí en StackOverflow no se puede ignorar como recurso.

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