2009-08-30 6 views
10

Sto provando fossili come mio nuovo VCS, dato che sono uno sviluppatore solitario che lavora su piccoli progetti. Ho iniziato a testare fossili ma ho riscontrato un problema (probabilmente di maggiore interesse). Come si spinge o si tira su un'altra directory (che è facile su Hg). I comandi pull o push di Fossil prevedono un URL e non una directory. Quando avvio un server in una directory e provo a inviare da un'altra directory, ricevo il messaggio di errore "loop server". Qualche idea?Come posso utilizzare fossili (DVCS) in un ambiente domestico?

+0

Ho dimenticato di dire che ho aggirato il problema dell'URL sul comando "clone" copiando il file del repository. – Mosh

risposta

7

Secondo this fossil ticket, la clonazione, la spinta e la trazione richiedono l'esecuzione di un server fossile. Non puoi semplicemente usare il repository, dovrai avviare un server, quindi fare riferimento a http://localhost/whatever e dovresti essere d'oro.

  1. Run fossil server nel repository originale
  2. Vai alla directory di destinazione e corro fossil clone http://localhost: 8080 <repository name> (o spingere o tirare)
+0

Grazie per la risposta. Ho provato e ho ancora la seguente risposta: "2fossil: server dice: loop server". Qualche idea? – Mosh

+0

Evviva! Funziona. Nel caso in cui qualcun altro inciampi sullo stesso problema. Apri "server fossile" nella directory originale. Vai alla directory di destinazione e clone fossile (o push o pull) http: // localhost: 8080 Sembra piuttosto ovvio ora, grazie ancora. – Mosh

+0

Si noti che nel commento precedente Stackoverflow ha preso letteralmente l'indirizzo http. Qualcuno con i privilegi di modifica può risolvere questo problema? – Mosh

19

Quando ho provato questo, clonare e tirare lavorato proprio come previsto SENZA gestire un server fossile.

Creare un repository 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 il repository principale

>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" 

Modificare il maestro

>cd ../master 

>echo "hello #2" > b.b 

>fossil add b.b 
ADDED b.b 

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

Estrarre dal master modificato

>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

Proverò questo metodo. Grazie. Dove eri due mesi fa? ;) – Mosh

+1

+1 per aver dedicato del tempo a scrivere un esempio dettagliato! :) –

-1

Se il contenuto è lo stesso, io uso lo stesso file fossile. (Non è necessario tirare/premere) es.

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

In alcuni casi (prj1 è piena, prj2 è sottoinsieme di prj1), io uso il metodo più sicuro 'ui fossili'. es.

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 
Problemi correlati