Domanda

Convertirò presto la mia parte di un'applicazione dall'utilizzo di un repository supportato da svn all'utilizzo di git one.

In precedenza ho utilizzato git-svn, ma l'intero team è stato trasferito a git e mi è stato chiesto di essere all'avanguardia in questa mossa. Anche se sono felice di aver capito come si fa la maggior parte del trasloco, c'è un aspetto che devo ancora risolvere.

Una directory del mio repository di configurazione è sempre stata utilizzata per tenere traccia della directory degli script di un'applicazione esterna su una macchina Windows autonoma. La directory degli script per quell'applicazione si trova all'interno della directory di installazione delle applicazioni, quindi con svn ho eseguito il checkout solo di quella directory al punto appropriato.

Speravo di poter continuare con quella struttura, ma la mia ricerca suggerisce che i cloni stretti in git richiedono di mantenere la stessa struttura relativa, il che sarebbe difficile nel mio caso.

Per essere esplicito, desidero mappare i contenuti di myrepo:config/scripts su C:\application\scripts.

Per quanto posso vedere, ho diverse opzioni:

1. Utilizza un repository separato per questi file di script.

Questo sarebbe probabilmente preferito, in quanto mi consente di clonare il repository esattamente nella posizione corretta.

Sfortunatamente al momento non esiste una struttura che consenta di archiviare i dati di configurazione (che è ciò che sono questi script) in un luogo diverso dalla directory di configurazione. In quanto tale, ciò richiederebbe una ristrutturazione dei nostri repository oltre alla semplice conversione da svn a git che speravamo.

2. Usa i punti di giunzione.

Potrei mettere la copia di lavoro git della directory config altrove su C:\ e quindi utilizzare un punto di giunzione per far apparire la directory come una sottodirectory della directory dell'applicazione, proprio come Ger4ish suggerisce di utilizzare collegamenti simbolici su Unix.

Sfortunatamente non ho accesso amministrativo a quella macchina, quindi non è così semplice come sembra.

Altre opzioni?

Mi chiedo se ci sono opzioni che ho perso.

Guardando le risposte alla domanda Checkout sparso in Git 1.7.0? posso ottenere alcune spiegazioni, ma il requisito di mantenere la struttura la stessa combinata con la necessità di effettuare il check-out in una posizione specifica significa che questo metodo non funzionerà.

È stato utile?

Soluzione

Hai esaminato i sottomoduli ?Potresti creare un repository git separato per i tuoi script di configurazione e aggiungerlo come sottomodulo al tuo repository principale.Ciò ti consentirebbe di eseguire il checkout direttamente in application/scripts ma mantenere comunque la directory di configurazione nel repository principale.

Ci sono alcune sfumature nel modo in cui i sottomoduli si relazionano al repository principale, quindi vorresti che chiunque si impegnasse nella directory degli script comprendesse questo flusso di lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top