2009-06-01 15 views
9

Vorrei combinare due o più directory in un repository git. Questi repository sono collegati logicamente ma appartengono a diversi percorsi del filesystem, ad es./etc/httpd e /var/named/chroot/var/named contengono entrambi dati host virtuali che vorrei gestire nel loro complesso, ma non riesco a collegarli.Gestione di directory non collegate in un repository git

Io ho asked the git mailing list ma non ho avuto fortuna.

Suggerimenti?


Aggiornamento: Non faccio uso di questo meccanismo per la distribuzione di codice, Ho appena trovato è un modo molto conveniente di:

  • tracciamento cambiamenti che avvengono, in modo che io possa molto facilmente git checkout a un precedente punto stabile noto e all'evento git bisect problemi di configurazione.
  • modifiche di gestione temporanea in una directory separata e quindi estrazione da tale directory quando è giunto il momento di eseguire la modifica.
+0

Ciao Robert, hai trovato un modo per ottenere due directory non correlate in un unico repository GIT? Pensavo che i link simbolici sarebbero stati carini, ma su OSX GIT non li rispettava. –

+0

Nulla finora, no. –

+0

Ok, grazie per quello. +1 per la domanda tra l'altro ... –

risposta

2

Il modo migliore per farlo è scrivere uno script che distribuisca i file e utilizzare Git per gestire l'origine del progetto. Se hai esigenze più sofisticate allora strumenti di gestione come Puppet si integrano con il controllo della versione.

Checkout Git diretto non sono un buon modo per eseguire la distribuzione, non era previsto per questo. È possibile evitare il problema di disporre di repository su sistemi di destinazione utilizzando la funzione di esportazione, ma in base alla progettazione Git non memorizza i dati completi dell'autorizzazione/ACL per i file.

+0

Grazie per la risposta. In realtà non eseguo il "deploy" usando git, ho solo/etc impostato sotto il controllo della versione, e lo clonerò alle modifiche dello stage, e poi tirerò quando si presenta la necessità. Lo faccio di più per la cronologia e il monitoraggio piuttosto che per l'implementazione. –

+2

Probabilmente vale la pena dare un'occhiata a etckeeper e poi pensare ai file di configurazione del servizio come casi speciali. etckeeper esegue un repository per/etc (DVCS di tua scelta) e migliora il gestore dei pacchetti di distribuzione per lavorare con esso. –

+0

Sembra intrigante, darò un'occhiata. –

2

Forse potresti configurare un repository Git con più diramazioni disgiunte, una per ciascun albero di directory distinto che desideri monitorare. Non sono sicuro che questa soluzione soddisfi tutte le tue esigenze, ma ti permetterebbe di mantenere le diverse directory nello stesso repository.

+0

Come configureresti un repository GIT con "rami disgiunti multipli?" Per favore, scusa la mia ignoranza ... –

+0

@yar: Vedi "Creare nuovi rami vuoti" nel libro Git: http://book.git-scm.com/5_creating_new_empty_branches.html –

Problemi correlati