A maneira mais fácil de criar um patch para envio ao WordPress Core?

13

Enviei alguns patches para o núcleo do WordPress no Trac (um dos quais já foi usado), mas toda vez que penso em fazê-lo, estremeço porque minha configuração para fazê-lo é incrivelmente entediante.

Alguém pode detalhar as etapas necessárias para enviar um patch para o core e, em seguida, a melhor maneira de otimizar o processo para que não seja tão tedioso? Atualmente, trabalho com o Mac OS X e o PhpStorm, mas acho que um script de shell pode ser mais fácil? Ou talvez um script PHP que funcione corretamente?

Uma das questões é que não entendo completamente o que preciso começar. Eu começo com o tronco? Preciso fazer o download de uma nova cópia e adicionar / editar essa cópia com o meu código toda vez que quiser criar um patch?

Novamente, embora eu tenha feito isso trabalhando com o SVN e o patch esteja realmente fora do meu conjunto de habilidades atual, eu quero mudar isso. Espero que os especialistas em patches do WordPress possam me ajudar. Desde já, obrigado.

ATUALIZAR:

Após a resposta do @ hakre, acho que devo acrescentar mais à pergunta:

  • Posso criar patches a partir da versão mais antiga ou devo usar o tronco?
  • Se estou trabalhando em um projeto usando a versão lançada (3.0.1), posso modificá-lo e criar um patch para o core ou preciso fazer o download e configurar uma cópia nova e nova do tronco e fazer minhas modificações recentemente?
  • Posso usar scripts de shell para codificar o login no script e apenas executá-lo para recriar tudo o que preciso e / ou criar o patch?
  • E quais são as armadilhas?

Todas essas perguntas parecem ser assumidas por quem sabe como o SVN do WordPress funciona e, como tal, sempre é encoberto em qualquer discussão.

MikeSchinkel
fonte

Respostas:

8

A maneira mais fácil de criar um patch é descrita aqui:

http://wordpress.org/download/svn/

Posso criar patches a partir da versão mais antiga ou devo usar o tronco?

Você deve criar o patch com a mesma versão em que deseja aplicar.

Em outras palavras, não espere que um patch criado no WP 3.0.1 seja aplicado corretamente no WP 3.1-alpha.

Se estou trabalhando em um projeto usando a versão lançada (3.0.1), posso modificá-lo e criar um patch para o core ou preciso fazer o download e configurar uma cópia nova e nova do tronco e fazer minhas modificações recentemente?

Você não precisa configurar uma nova instalação para cada novo patch. Você pode simplesmente usar o svn revert para voltar a uma cópia original.

Além disso, o banco de dados não precisa estar limpo toda vez. Na verdade, é melhor se você tiver algumas modificações, simular um ambiente ativo.

scribu
fonte
1
Nossa, é muito fácil criar um patch depois de termos nossa cópia de trabalho svn diff > my-patch.patch:, me gusta!
Brasofilo 23/10
5

Eclipse PDT + Subclipse + X

Estou usando o Eclipse que possui integração SVN . Eu acho que o PHP Strom também o faz. Entro em um dos meus projetos de tronco, que são basicamente um checkout do repositório svn do WordPress.

Depois edito os arquivos que preciso editar. O Eclipse mostra quais são modificados, clico com o botão direito do mouse em um diretório, seleciono Team->Create Patche recebo todos os arquivos alterados que posso selecionar para o diff. Então eu posso escolher entre copiar para a área de transferência ou salvar em disco. Salvei todos os patches criados com o número do ticket em um diretório que tenho no meu disco rígido.

Então eu vou para o navegador e carrego o patch.

Eu também poderia fazer isso com uma integração do MyLyn Trac , que é ainda mais confortável, mas você precisa do XML-RPC diretamente no trac e, portanto, precisa de um administrador do trac para entrar em contato. Funciona muito bem, mas eu não o tenho configurado em todos os projetos e o uso principalmente quando faço resumos de tickets.

Então, realmente, confira o Eclipse, se quiser. É enorme e lento, então você precisa de um computador grande. Nos pequenos, fiz boas experiências com o Fedora Linux. O Eclipse funciona bem nele. Eu sei que você é um fã do PHP Storm, mas, bem, eu realmente gosto do meu Eclipse e ele vem com muitas extensões que realmente agitam. Mesmo para PHP :). Mas o PHP Storm também deve fazer o checkout / patch também.

WordPress Eclipse 1x1

Ah e eu tenho uma ferramenta no meu sistema operacional que salva todos os diretórios que usei. Para que eu possa salvar os patches e enviar os arquivos rapidamente, porque eles sempre estão no mesmo diretório que eu tenho na lista recente.

Exemplo de integração: Sniffer de código PHP, Eclipse e WordPress

hakre
fonte
Obrigado por responder. Eu tentei o Eclipse e odiei. Muito sem resposta e simplesmente não gostei da interface. Portanto, é uma boa resposta para outras pessoas para as quais o Eclipse é uma opção, mas sua resposta não atende às minhas necessidades. Vou dar voto e voto, mas prefiro uma solução que não esteja ligada ao IDE, também uma que explique melhor o processo.
MikeSchinkel
Também queria dizer que o PhpStorm tem integração total de SVN (e Git), mas é realmente necessário que o usuário entenda completamente o efeito que cada menu terá, pois oferece pouca ou nenhuma orientação sobre como trabalhar com eles (há muito nos arquivos de ajuda, mas como eles não são sensíveis ao contexto e como o SVN + Git é uma grande adição ao PhpStorm, é fácil se perder completamente em tudo isso.) É por isso que eu quero entender isso no centro e não precisar mudar para IDEs Eu não gosto de fazer isso.
MikeSchinkel
@ MikeSchinkel - Se o SVN for muito complicado para você (independentemente do tipo de editor do SVN +), não será possível criar patches para o projeto wordpress. Basicamente, se você não gosta da interface da interface do usuário com o SVN, aprenda a linha de comando. Mas você precisa aprender de qualquer maneira. Você pode usar o SVN com qualquer editor que você goste. Eu tenho um tronco SVN copyrunning e configurado em um servidor da web para criar patches e testá-los. Depois de fazer um patch, removo as alterações locais (reverter) da minha cópia local e, em seguida, posso continuar com outros patches. Sempre é trabalho. O que mais há a dizer?
21710 ha hakre