방법 : GitHub 저장소를 워드 프레스 플러그인 서버로 푸시


21

github에서 플러그인을 개발했지만 배포와 관련하여 변경 사항을 Wordpress SVN에 복사해야합니다 . 현재이 작업을 수동으로 수행하고 각 디렉토리의 각 파일을 개별적으로 복사하지만 시간이 많이 걸리고 오류가 발생하기 쉽습니다.

나는 몇 가지 스크립트를 보았지만 시도했지만 오류가 있거나 파일을 올바르게 복사하지 않으므로 잘못 실행해야한다고 생각합니다.

그래서 내 질문은 누군가 자동으로 이것을 달성 했습니까? 그렇다면 어떻게 했습니까?

감사!


나는 이것이 흥미롭고 유용한 질문이라고 생각하지만 Git과 Subversion의 상호 작용에 관한 것이므로 WordPress에만 국한되는 것은 없기 때문에 범위를 벗어납니다. 여기에 최선의 행동이 무엇인지 생각해야합니다 ...
Rarst

이 사건을 논의하기 위해 메타대한 질문을 시작했습니다 .
Rarst

@Rarst 고마워, 질문을 잘못 배치하여 죄송합니다
studioromeo

답변:


1

내 팀 동료가이 자습서를 참조하십시오. http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

그러나 그는 솔루션을 사용하지 않으며 별도의 작업이 더 쉽습니다.


@bueltge에게 감사합니다. 그가 수동 방법으로 되돌 렸다고 생각하는 것이 맞습니까?
studioromeo

4
거룩한 모든 사람을 사랑하려면 그 장소의 지시를 따르지 마십시오. 당신이 갑자기 우리 SVN에 수백 번의 커밋을한다면, 나는 개인적으로 당신을 찾고 막대기로 당신을 이길 내 인생의 목표로 삼을 것입니다. 또는 WordPress.org에서 당신을 금지시킬 수도 있습니다. ;) git에 커밋 한 모든 변경 사항이 아닌 최종 버전 만 커밋하십시오. 우리는 당신의 역사를 소중히 여기지만 의미있는 역사 만 있습니다. 자식의 문제는 사람들이 쓸모없는 쓰레기를 저지르고 일반적으로 말하면 모든 것을 알 필요가 없다는 것입니다.
Otto

@ 오토 롤! 아니요, SVN 저장소에 변경 사항을 배포하고 싶을뿐입니다. 현재 체크 아웃 된 svn repo에서 수동으로 파일을 덮어 쓰지만 지루하고 오류가 발생하기 쉽습니다. 의견 있으십니까?
studioromeo

3
Git 변경 사항을 대화식으로 리베이스하면 단일 SVN 커밋으로 결합 할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 다음과 같습니다. stackoverflow.com/questions/158514/…
Otto

1
@Otto " 나는 모르겠다는, 정직하게, 나는. 나는 짜증나는 그것을 찾을 수 있습니다. 힘내를 사용하지 않는 " "(바로 당신)에서 다른 견적 답변을 얻을 수 있습니다 당신을 찾아 당신을 이길 나는 개인적으로 내 인생의 목표를 만들 것 와 막대기 ":)
kaiser

1

이 응답을 읽은 후 플러그인 중 하나를 GitHub에 푸시하고 release.sh 스크립트를 작성했습니다. 이 스크립트는 사용 plugins.svn.wordpress.org에서 내 플러그인의 부분 체크 아웃을 취득 --depth immediates하고있는 파일을 업데이트 trunk/하고 assets/. 이렇게하면 개발 내역을 유지 관리하는 대신 wordpress.org 리포지토리를 사용하여 릴리스에 태그를 지정하여 svn을 주기적으로 푸시해야합니다.

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

보다 일반적인 버전은 더 다양한 플러그인에서 작동하고 삭제 된 파일을 처리하며 git 태그를 기반으로 svn 태그를 자동으로 업데이트 할 수 있습니다.


1

자세한 설명 은 @EAMann 에서 WordPress 플러그인 – Git을 게시하는 방법을 참조하십시오 .


이런 종류의 작업을 수행하려면 대화식 리베이스를 수행 한 다음 SVN 서버에 수십 번의 작은 커밋을 수행하지 않도록 모든 커밋을 스쿼시하도록 변경하십시오. 이 작업을 수행하는 방법에 대한 자세한 내용은 다음과 같습니다. stackoverflow.com/questions/158514/…
Otto

5
@Otto 서버로드를 줄이려는 소망을 완전히 이해하지만 다른 사람들의 코드를 디버깅 해야하는 경우 원자 커밋을 좋아합니다. 흠… 완전한 커밋 히스토리가있는 퍼블릭 Git 리포지토리로의 자동 링크는 플러그인 디렉토리의 유용한 향상이 될 수 있습니다.
fuxia

3
이것에 대해 @Otto에 동의해야합니다. WordPress.org의 SVN은 실제로 개발 저장소가 아닌 릴리스 저장소 여야합니다.
MikeSchinkel

1

문제는 오래되었지만 이제는 GitHub 작업으로 솔루션을 사용할 수 있습니다. 최근 GitHub는 Github Actions에 GitHub 리포지토리의 자동화 된 워크 플로우를 추가했습니다.

그리고 잘 알려진 회사 10up은 "Action WordPress Plugin Deploy"를 만들었습니다.

설정이 매우 쉽습니다. @otto에 따르면 각 변경 사항을 svn으로 푸시 할 필요가 없으므로 github에서 새 태그를 만드는 동안 자동화를 설정할 수 있습니다.

따라서 github 플러그인은 새 릴리스 태그를 만들 때 자동으로 코드를 WordPress 리포지토리로 푸시합니다.

유용한 링크:


0

나는 자동으로하지 않지만 꽤 간단합니다.

SVN 트럭과 Git 마스터를 동일한 디렉토리에서 체크 아웃하십시오. Git 전용 프로젝트와 마찬가지로 거의 모든 것에 Git을 사용하십시오.

을 설정 stable tagtrunk준비 힘내에, 그것을 태그를 릴리스를하고 즉시 트렁크에 밀어 때 다음합니다. /tags릴리스 히스토리가 Git (및 Github)에서 안전하므로 SVN으로 푸시하는 것에 대해 걱정하지 마십시오 .

그게 다야.

나는 추가, 그것을 청소하기 .svn.gitignore하고, .git(그리고 tests/, phpunit.xml등) SVN에 의해 무시 될 수 있습니다.

release.sh 스크립트는 실제로 다음과 같습니다 (코드의 버전 번호가 업데이트되고 모두 Git에 커밋 된 경우).

git tag $1
svn ci -m"Release: $1"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.