2013-10-07 20 views
8

Ho un progetto con diverse dipendenze su repository remoti (tutto su github.com al momento se questo aiuta). Le dipendenze non cambiano spesso. Sarebbe bello se ci fosse un modo per mantenere i file esistenti di rebar.conf allo stesso modo in cui puntavano ai repository upstream, ma per essere in grado di memorizzare i repository (o uno snapshot) localmente in modo che le build pulite non avessero bisogno andare su internetUn modo per ottenere i get-deps dell'armatura controlla una cache locale prima di clonare un repository?

Esiste comunque? Cioè opzioni della riga di comando dell'armatura, impostazioni dell'ambiente, opzioni git, ecc.?

risposta

2

suppongo che si possa fare paio di cose:

  1. Fai il proprio clone locale di tutti i depositi e cambiare rebar.config a prendere questo pronti contro termine da esso. Al primo sguardo sembra la soluzione orribile , ma ha molti vantaggi. Github è spesso non disponibile, la velocità di clonazione aumenta e l'ultimo valore più prezioso è : i progetti si stanno evolvendo e un giorno scoprirete che tutto ciò che è è rotto perché uno dei deps ha cambiato l'APi nel ramo principale.
  2. Si potrebbe fare la cartella di deps locale con tutto ciò che serve repos e condividere tramite link simbolico con ogni repo necessario.
+0

Sì. Il clone locale potrebbe essere l'unico modo per andare con il tondo per cemento armato. Inizialmente, speravo in un modo automatico e trasparente di scattare un'istantanea di tutti i repository dipendenti. Sono d'accordo con i vantaggi che elencherai. –

+0

È una soluzione imperfetta, però, perché le dipendenze delle dipendenze non saranno a conoscenza della cache locale. –

+0

devono essere presenti anche deps di deps. – danechkin

0

L'armatura ha una funzione che consente di aggiungere un file di script personalizzato, rebar.config.script, per modificare la configurazione del rebar in modo dinamico. Ciò consente di implementare qualcosa di simile alla risposta n. 2 di @ danechkin, tranne che utilizzando una variabile di ambiente per passare tra la cartella dei servizi condivisi locale e quella predefinita per il progetto. Non sono necessarie modifiche a rebar.config. L'esempio su https://github.com/basho/rebar/wiki/Dynamic-configuration mostra come farlo.