2009-08-30 10 views
10

Estoy probando fósil como mi nuevo VCS, ya que soy un desarrollador solitario que trabaja en proyectos pequeños. Empecé probando fósiles, pero encontré un problema (probablemente novato). ¿Cómo empujar o tirar a otro directorio (que es fácil en Hg). Los comandos de extracción o extracción de fósiles esperan una URL y no un directorio. Cuando inicio un servidor en un directorio e intento enviar desde otro directorio, aparece el mensaje de error "bucle del servidor". ¿Algunas ideas?¿Cómo puedo usar fósiles (DVCS) en un entorno doméstico?

+0

Olvidé decir que eludí el problema de URL en el comando "clonar" al copiar el archivo del repositorio. – Mosh

Respuesta

7

De acuerdo con this fossil ticket, clonar, empujar y tirar requiere un servidor fósil para ejecutarse. No puedes usar el repositorio, tendrás que iniciar un servidor, luego consultar http://localhost/whatever y estarás dorado.

  1. Run fossil server en el repositorio original,
  2. Ir al directorio de destino y corro fossil clone http://localhost: 8080 <repository name> (o empujar o tirar)
+0

Gracias por su respuesta. Lo intenté y todavía recibo la siguiente respuesta: "2fossil: servidor dice: servidor de bucle". Alguna idea? – Mosh

+0

¡Hurra! Funciona. Solo en caso de que alguien más tropiece con el mismo problema. Abra el "servidor fósil" en el directorio original. Ir al directorio de destino y clon fósil (o empujar o tirar) http: // localhost: 8080 Parece bastante obvio ahora, gracias de nuevo. – Mosh

+0

Observe que en el comentario anterior, Stackoverflow tomó literalmente la dirección http. ¿Alguien con privilegios de edición puede arreglar esto? – Mosh

19

Cuando probé esto, clon y tire funcionaba como se esperaba SIN ejecutando un servidor fósil.

Crear un repositorio maestro

>mkdir master 

>cd master 

>fossil new master_repos.fsl 
project-id: dbcb1863865d7d3ed74f873df6daf07c5853df5e 
server-id: ea7a2e2496cc9c958cb7cc50bf48c0810b25a0a0 
admin-user: james (initial password is "89ef88") 

>fossil open master_repos.fsl 


>echo "hello world" > a.a 

>fossil add a.a 
ADDED a.a 

>fossil ci -m "add a.a" 
New_Version: 80b67a84ff276e559328f373008ff3014a869170 

Clone el repositorio maestro

>cd .. 

>mkdir trial 

>cd trial 

>fossil clone ../master/master_repos.fsl trail_repos.fsl 
Repository cloned into trail_repos.fsl 
Rebuilding repository meta-data... 
3 (100%)... 
project-id: dbcb1863865d7d3ed74f873df6daf07c5853df5e 
server-id: 24da0b614d1a1d6cd8ac5a86200390b47b87ee27 
admin-user: james (password is "89ef88") 

>fossil open trail_repos.fsl 
a.a 
project-name: <unnamed> 
repository: C:/Documents and Settings/james/My Documents/code/test/trial/trail 
_repos.fsl 
local-root: C:/Documents and Settings/james/My Documents/code/test/trial/ 
project-code: dbcb1863865d7d3ed74f873df6daf07c5853df5e 
server-code: 24da0b614d1a1d6cd8ac5a86200390b47b87ee27 
checkout:  80b67a84ff276e559328f373008ff3014a869170 2009-11-12 15:19:51 UTC 
parent:  b04cc7533753a8a8a1f8a92b1be8b73cbc368660 2009-11-12 15:18:11 UTC 
tags:   trunk 


>type a.a 
"hello world" 

Modificar el maestro

>cd ../master 

>echo "hello #2" > b.b 

>fossil add b.b 
ADDED b.b 

>fossil ci -m "add b.b" 
New_Version: 863e2501037e9f215ff3ec08a1d7802315151e7b 

Tire del maestro modificado

>cd ../trial 

>fossil pull ../master/master_repos.fsl 
       Bytes  Cards Artifacts  Deltas 
Send:    130   1   0   0 
Received:   230   6   0   0 
Send:    224   2   0   0 
Received:   590   8   2   0 
Total network traffic: 649 bytes sent, 806 bytes received 

>fossil update 
Autosync: file://C:/Documents and Settings/james/My Documents/code/test/master/ 
master_repos.fsl 
       Bytes  Cards Artifacts  Deltas 
Send:    130   1   0   0 
Received:   230   6   0   0 
Total network traffic: 295 bytes sent, 337 bytes received 
ADD b.b 


>type b.b 
"hello #2" 
+0

Voy a probar este método. Gracias. ¿Dónde estabas hace dos meses? ;) – Mosh

+1

+1 por tomarse el tiempo de escribir un ejemplo detallado! :) –

-1

Si el contenido es el mismo, utilizo el mismo archivo fósil. (No necesita extracción/inserción) por ej.

fossil new ~/fs/prj1.fossil 
(mkdir prj1 ; fossil open ~/fs/prj1.fossil) 
(mkdir prj1_feature1 ; fossil open ~/fs/prj1.fossil) 

En algunos casos (prj1 está llena, prj2 es subconjunto de prj1), utilizo el método más seguro 'ui fósil'. por ej.

fossil new ~/fs/prj1.fossil 
(mkdir prj1 ; fossil open ~/fs/prj1.fossil; fossil ui &) 
mkdir prj1_subset 
fossil clone http://localhost:8080 prj1_subset.fossil 
fossil open prj1_subset.fossil 
Cuestiones relacionadas