2015-06-13 32 views
7

Sto lavorando su un userscript per Firefox, per cui uso GreaseMonkey. Inoltre, per facilitare lo sviluppo, utilizzo git per aggiornare le diverse versioni del mio codice.Come lavorare correttamente su un userscript di GreaseMonkey usando git?

Ora, mi permetta di provare a spiegare il problema.

Quando aggiungo per Greasemonkey l'userscript dalla mia directory git locale, poi i nuovi file vengono creati nella cartella gm_scripts del mio profilo di Firefox.

GreaseMonkey utilizza questi file come origine e non la mia directory git, quindi se voglio modificare il mio codice e testare alcune cose, devo cambiare i file all'interno di gm_scripts. Ciò significa che non posso eseguire il commit della modifica, prima devo copiare i file da gm_scripts nella mia directory git. Questo è veramente scomodo.

C'è un'altra soluzione. Posso anche modificare lo script dalla mia directory git e quindi reinstallarlo su GreaseMonkey usando un segnalibro che punta a questi file locali. Ma ancora una volta, questo non è affatto utile.

Quello che ho pensato terzo è stato quello di definire la cartella all'interno della gm_scripts come mia directory git. Sfortunatamente, il mio progetto contiene molti file che ho ordinato in cartelle e voglio mantenerlo pulito. Ma l'aggiunta di un userscript a GreaseMonkey rende tutti i file da estrarre dalla loro cartella.

extraction

Inoltre, il mio progetto Git non si contiene solo la cartella userscript, c'è qualche altra roba. Quindi non è probabilmente una buona idea per dichiarare directory di un gm_script come fonte di git, mettendo molti file in gm_scripts, mentre non avevano nulla a che fare con un userscript non è un buon metodo. E non è giusto essere costretti a lavorare in una cartella persa nelle profondità del mio profilo di Firefox.

Vorrei sapere se c'era una tecnica per lavorare in modo efficiente e facile su un progetto che includesse sia GreaseMonkey che git.

risposta

4

È possibile collegare i file necessari!

di Windows (Elevated Command Prompt):mklink <<gmfile>> <<gitfile>>

Unix/Linux:ln -s <<gitfile>> <<gmfile>

Grazie a Enkidu dal gruppo di discussioneGreasespot per la sua risposta!


Uso di Windows e un file .bat, questo codice viene utilizzato per collegare tutti i file da voi cartella git a quello Greasemonkey (può avere errori se ci sono spazi nei percorsi o se due dei tuoi file hanno lo stesso nome).

echo off 

set git_dir=C:\path\to\your\git\folder 
set gm_dir=C:\path\to\your\greasemonkey\userscript\folder\ 

for /R %git_dir% %%G IN (*) do (
    echo Y | del %gm_dir%%%~nxG 
    mklink %gm_dir%%%~nxG %%G 
) 
+1

Grazie mille per quello. Dovevo fare qualcosa di simile, ma su Linux. Nella mia configurazione, ho semplicemente collegato l'intera directory 'gm_scripts' usando uno script Bash. In questo modo ho potuto gestire l'intera directory con un repository GitHub. Trova lo script nello stesso repository all'indirizzo https://github.com/bgoodr/bgoodr-userscripts/blob/master/firefox/install_gm_scripts_dir_link.sh – bgoodr

+0

Su Windows, deve essere un collegamento reale (ad es.'mklink/H <><>'). Un collegamento simbolico, che è l'impostazione predefinita, non è sufficiente quando la sorgente del collegamento è "<>" (ovvero il file attuale esiste nella cartella git). Non ho controllato per vedere se git è confuso quando il link è il contrario, avendo il link target il '<>' (cioè il file effettivamente esistente in * gm_scripts * con un link ad esso nella directory git), ma potrebbe essere necessario anche un collegamento reale con quella direzione. Windows non esegue collegamenti simbolici in modo trasparente, ma i collegamenti reali funzionano. Testato su Win10 x64. – Makyen