Come fare: inviare un repository GitHub ai server dei plugin di wordpress


21

Sviluppo il mio plugin su github ma quando si tratta di distribuzione devo in qualche modo copiare le mie modifiche in Wordpress SVN . Attualmente lo faccio manualmente e copio su ogni file in ogni directory individualmente, ma questo richiede tempo e soggetto a errori.

Ho visto e provato alcuni script, ma penso di averli eseguiti in modo errato poiché si verificano errori o non copiano correttamente i file.

Quindi la mia domanda è: qualcuno l'ha raggiunto automaticamente e se sì, come hai fatto?

Grazie!


Mentre penso che questa sia una domanda interessante e utile, cade anche fuori dal campo poiché si tratta dell'interazione di Git e Subversion e non c'è nulla di specifico su WordPress. Devo pensare a quale sarebbe la migliore azione qui ...
Rarst

Ho iniziato a fare domande su meta per discutere di questo caso.
Rarst

@Primi ringraziamenti, scusami per aver smarrito la domanda
studioromeo

Risposte:


1

guarda questo tutorial da un collega del mio team: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

ma non usa la soluzione, è più facile lavorare separatamente :(


Grazie @bueltge. Quindi ho ragione nel pensare che sia tornato al metodo manuale?
studioromeo

4
Per l'amore di tutto ciò che è santo, non seguire le istruzioni su quel sito. Se improvvisamente fai centinaia di impegni con il nostro SVN, farò personalmente l'obiettivo della mia vita di trovarti e batterti con un bastone. O forse ti bando da WordPress.org. ;) Per favore, impegna solo la versione finale, non tutte le tue modifiche che hai impegnato a git. Apprezziamo la tua storia, ma solo una storia significativa. Il problema con git è che le persone commettono un sacco di schifezze inutili e non abbiamo bisogno di sapere tutta quella roba, in generale.
Otto

@Otto Lol! No, voglio solo essere in grado di distribuire le mie modifiche al repository SVN. Attualmente faccio questo sovrascrivendo manualmente i file nel mio repository svn estratto ma questo è noioso e soggetto a errori. Hai qualche suggerimento?
Studioromeo

3
Fare un rebase interattivo delle modifiche di Git ti permetterà di combinarle in un unico commit SVN. Maggiori informazioni su come fare questo sono qui: stackoverflow.com/questions/158514/…
Otto

1
@Otto "Sinceramente non lo saprei, non uso Git. Lo trovo fastidioso. " Si può rispondere con un'altra citazione (direttamente da te) " Farò personalmente l'obiettivo della mia vita di trovarti e batterti con un bastone ":)
kaiser,

1

Dopo aver letto queste risposte, ho inviato uno dei miei plugin a GitHub e ho scritto uno script release.sh . Questo script ottiene un controllo parziale del mio plugin da plugins.svn.wordpress.org usando --depth immediatese aggiorna i file in trunk/e assets/. Questo dovrebbe semplificare una spinta periodica a svn, usando il repository wordpress.org per taggare i rilasci piuttosto che mantenere la cronologia di sviluppo:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Una versione più generica potrebbe funzionare con una più ampia varietà di plugin, gestire file eliminati e aggiornare automaticamente i tag svn in base ai tag git.


1

Vedi Come pubblicare un plugin WordPress - Git da @EAMann per una descrizione dettagliata.


Se hai intenzione di fare questo genere di cose, ti preghiamo di fare un rebase interattivo e quindi modificare tutti i commit per essere schiacciati, in modo da non fare dozzine di piccoli commit sui server SVN. Maggiori informazioni su come eseguire questa operazione sono qui: stackoverflow.com/questions/158514/…
Otto

5
@Otto Anche se capisco perfettamente il tuo desiderio di ridurre il carico del server :) Amo davvero molto i commit atomici se devo eseguire il debug del codice di altre persone. Hm ... un collegamento automatico a un repository Git pubblico con una cronologia di commit completa potrebbe essere un utile miglioramento per la directory dei plugin.
fuxia

3
Devo essere d'accordo con @Otto su questo. SVN di WordPress.org dovrebbe davvero essere il repository di rilascio, non il repository di sviluppo.
MikeSchinkel,

1

La domanda era vecchia ma ora la soluzione è ora disponibile con le azioni GitHub. Recentemente GitHub ha aggiunto Github Actions il flusso di lavoro automatizzato per il repository GitHub.

E la nota azienda 10up ha creato "Action WordPress Plugin Deploy".

È molto facile da configurare. E come dice @otto, non è necessario inviare ogni modifica a svn, quindi possiamo impostare l'automazione durante la creazione di un nuovo tag su github.

Quindi, il nostro plugin github inserisce automaticamente il codice nel repository di WordPress quando creiamo un nuovo tag di rilascio.

Link utili:


0

Non lo faccio automaticamente, ma è abbastanza semplice:

Fai controllare il camion SVN e il master Git nella stessa directory. Usa Git per quasi tutto, come si farebbe con qualsiasi progetto solo Git.

Imposta stable tagessere trunk, quindi quando sei pronto per rilasciare, taggalo in Git e poi spingi immediatamente sul trunk. Non preoccuparti di inviare a SVN /tags, poiché la cronologia delle tue uscite è sicura in Git (e Github).

Questo è tutto.

Per pulirlo, aggiungo .svna .gitignore, e .git(e tests/, phpunit.xmle così via) per essere ignorato da SVN.

Uno script release.sh non sarebbe altro che il seguente (una volta che il numero di versione nel codice è stato aggiornato e tutti impegnati in Git):

git tag $1
svn ci -m"Release: $1"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.