2013-05-28 9 views
9

sto cercando di impostare i subrepositories nel mio repo progetto Mercurial per le dipendenze del progetto. Ma quando provo a commettere il file .hgsub Continuo a ricevere questo errore:Mercurial: Subrepo errore - "abortire: impegnarsi con il nuovo subrepo [percorso] escluso"

abort: commit with new subrepo lib/dependency-dir excluded 

Dettagli:

All'interno directory repository Mercurial del mio progetto (al livello superiore), ho una sottodirectory , lib/, che conterrà le mie dipendenze.

Si dà il caso che tutte le mie dipendenze vivono GitHub, dove ho biforcato ogni libreria per creare, ad esempio, https://github.com/mygithubaccount/forked-dependency

ho creato un file .hgsub e ha aggiunto alla repository (anche a livello superiore). Esso contiene le voci come le seguenti (ho provato isolare ciascuno come segue, ma non sembra fare alcuna differenza):

lib/dependency-dir = [git]https://github.com/mygithubaccount/forked-dependency.git 

poi ho fatto la seguente, a partire dal lavoro di mio repository del progetto directory:

$ cd lib 
$ git clone https://github.com/mygithubaccount/forked-dependency.git dependency-dir 
$ cd .. 
$ hg commit .hgsub 
abort: commit with new subrepo lib/dependency-dir excluded 

Qualche idea su cosa sto facendo male?

+0

Non credo di aver mai funzionato, ma ho rinunciato e ho fatto un altro percorso. Tutte le risposte qui erano potenzialmente utili, troppo tardi. Quindi li sto rivalutando tutti, ma dando a Carl l'Accetto come la sua è stata la prima risposta. –

risposta

1

Ho avuto questo problema anche. Non sono sicuro che corrisponda alla tua situazione, ma stavo cercando di aggiungere sottorepository a un nuovo repository. Una volta aggiunti altri file e li ho impegnati, sono stato in grado di aggiungere il file .hgsub ai subrepos e di eseguirlo senza ottenere questo errore.

3

ho appena risolto il problema aggiungendo il file prima, e poi impegnandosi:

$ hg add .hgsub 
... 
$ hg commit .hgsub 
1

Per me, il problema era che git non era sul mio percorso di sistema. Aggiungendolo mi sono permesso di eseguire il commit del mio sottoreposto git (notare che ho dovuto riavviare il workbench TortoiseHg per ottenere il percorso di sistema aggiornato).

12

L'unico modo ho ottenuto questo lavoro è stato quello di impegnarsi senza specificare il file .hgsub

hg commit "messaggio" -m

+0

Grazie a te che ha funzionato per me. Ho provato prima la maggior parte degli altri suggerimenti su questa pagina. Non volevo eseguire il commit del nuovo sottoreposto perché sembra che non dovrebbe essere nel repository principale, anche se sospetto che il commit senza specificare sia lo stesso di entrambi. – Ant

3

ho dovuto impegnarsi sia .hgsub e il nuovo subrepository allo stesso tempo selezionandoli esplicitamente nel comando commit. Ho evitato hg commit all perché avevo altri file che contenevano work in progress.

0

Quando ho avuto questo problema, il problema era che avevo due barre nel percorso della directory subrepo.

0

Se c'è una differenza tra il caso il nome della cartella per la subrepo ed è percorso nel file .hgsub questo sarà anche innescare questo messaggio di errore.

Ho sperimentato questo copiando un .hgsub da un altro repository che aveva la stessa struttura di cartelle, tuttavia il nuovo repository utilizzato l'intestazione del titolo per i nomi delle cartelle mentre le cartelle nel repository originale erano tutte minuscole.

Modifica sia l'.hgsub oi nomi delle cartelle stesse risolto il problema.