2012-01-03 21 views
11

In un progetto piuttosto grande, vorrei mettere lo stesso file (o cartella) in posizioni diverse. Quando viene modificato in una posizione, le modifiche devono essere propagate. In Subversion, potrei usare gli esterni per ottenere questo comportamento.Monitoraggio di collegamenti rigidi o simbolici con mercurial su Windows

Ho cercato di risolvere questo problema utilizzando collegamenti fisici e collegamenti simbolici, ma Mercurial sembra non tenere traccia di nessuno di essi. Invece, impegna il contenuto dei file nel proprio repository anziché nella proprietà del collegamento. Quando clono il repository, le informazioni vengono perse.

Si tratta di un comportamento specifico di Windows di Mercurial o non è possibile tracciare i collegamenti? C'è un altro modo per tenere traccia di un file accessibile da diverse posizioni in Mercurial?

risposta

15

Mercurial can tracce di link simbolici, ma sembrano strani quando controllati su Windows. Quello che succede è che Mercurial crea un file con il target di collegamento come contenuto . Sfortunatamente non vi è alcun supporto per la creazione di collegamenti simbolici reali su sistemi Windows che li supportano, come Windows Vista. Il risultato è che non è possibile utilizzare collegamenti simbolici in un repository che dovrebbe essere portabile tra entrambi i sistemi. Si prega di see the discussion in Issue1825 per ulteriori informazioni su questa funzione.

La corrispondenza più vicina per svn:externals è Mercurial subrepositories. A seconda di come è stato utilizzato svn:externals, i sottorepos possono o non possono essere ciò che si desidera. Si prega di see my answer per un'altra domanda su subrepos per qualche consiglio. Ho scritto parte del codice per i subrepos e non mi è venuto in mente, penso che montare un subrepo più volte nello stesso repository principale suona come una ricetta per la confusione. Ma forse puoi farlo funzionare - devi solo essere consapevole che i subrepos sono una parte difficile di Mercurial.

+2

Ma NTFS supporta collegamenti simbolici da Windows Vista. – fschoenm

+0

Giusto, avevo dimenticato che Windows ha recentemente aggiunto il supporto per i collegamenti simbolici. Sfortunatamente non abbiamo il supporto per crearli. [Numero1825] (http://mercurial.selenic.com/bts/issue1825) è correlato a questo. –

+0

Recentemente? Vista è stata rilasciata 5 anni fa;) – fschoenm

Problemi correlati