Github で管理してる WordPress プラグインを SVN のリポジトリにコミットする

シェアする

僕は普段バージョン管理システムには git を使用しているのですが、 WordPress のプラグインを公式に登録するには Subversion を使用しないといけない。なので git svn コマンドを使ってゴニョゴニョした。

Sponsored Links

github にリポジトリを用意

ボタン押していくだけなので省略

SVN と接続

svn log プラグインリポジトリの URL とコマンド打つ。

$ svn log http://plugins.svn.wordpress.org/simpleapplinks/
------------------------------------------------------------------------
r1011796 | plugin-master | 2014-10-22 07:41:13 +0900 (Wed, 22 Oct 2014) | 1 line

adding simpleapplinks by ryomatsu
------------------------------------------------------------------------

この r から始まる数字リビジョン番号というのかな、git svn clone する際にこの数字を使用します。

$ git svn clone --no-minimize-url -s -r1011796 http://plugins.svn.wordpress.org/simpleapplinks/
WARNING: --prefix is not given, defaulting to empty prefix.
         This is probably not what you want! In order to stay compatible
         with regular remote-tracking refs, provide a prefix like
         --prefix=origin/ (remember the trailing slash), which will cause
         the SVN-tracking refs to be placed at refs/remotes/origin/*.
NOTE: In Git v2.0, the default prefix will change from empty to 'origin/'.
Initialized empty Git repository in /home/ryomatsu/project/simpleapplinks/simpleapplinks/.git/
r1011796 = 1cb72a9c49e46860328b81fc987411f0cd35f4c8 (refs/remotes/trunk)
Checked out HEAD:
  http://plugins.svn.wordpress.org/simpleapplinks/trunk r1011796

これでローカルにリポジトリができた。cd しよう。

$ cd simpleapplinks
$ ls -al
total 12
drwxrwxr-x 3 ryomatsu ryomatsu 4096 Oct 22 22:28 .
drwxrwxr-x 6 ryomatsu ryomatsu 4096 Oct 22 22:28 ..
drwxrwxr-x 9 ryomatsu ryomatsu 4096 Oct 22 22:28 .git

svn リビジョンを取得しよう。git svn rebase はいらないかもしれないが一応。

$ git svn fetch --all
$ git svn rebase
Current branch master is up to date.

github との接続

github に保存されているプロジェクトを取得してこよう。

$ git remote add origin git@github.com:ryomatsu/SimpleAppLinks.git
$ git fetch origin
Enter passphrase for key '/home/ryomatsu/.ssh/id_rsa_github_ryomatsu':
warning: no common commits
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 29 (delta 9), reused 29 (delta 9)
Unpacking objects: 100% (29/29), done.
From github.com:ryomatsu/SimpleAppLinks
 * [new branch]      master     -> origin/master
$ git branch --all
* master
  remotes/origin/master
  remotes/trunk

取得できたら SVN へ rebase しよう。

$ git rebase --onto remotes/trunk --root remotes/origin/master
First, rewinding head to replay your work on top of it...
Applying: first commit
Applying: change powerdby link's default setting to false
Applying: fix plugin's name
Applying: add readme and screenshot
Applying: fix stable tag in readme.txt
Applying: fix a bug that return 500 error when display iOS and Mac App Store if review is a few
$

git log を見たらバージョンが古いのでアップデートのためのブランチを作成し、マージ。

$ git branch --all
* (no branch)
  master
  remotes/origin/master
  remotes/trunk
$ git checkout -b git-merge
Switched to a new branch 'git-merge'
$ git checkout master
Switched to branch 'master'
$ git merge git-merge
Updating 1cb72a9..96911a9
Fast-forward
 README.md                      |    7 +
 ...
$ git branch -d git-merge
Deleted branch git-merge (was 96911a9).

SVN と GitHub へコミット

WordPress 公式のプラグインリポジトリへコミットします。git と違って commit でサーバに push までやってくれますね。

$ git svn dcommit

それから github へも -f をつけて push する。

$ git push -f origin master

これでおk

ついでにタグつけてバージョンを指定する(でいいのかなこれ。。)。

$ git tag 1.0
$ git svn tag 1.0
Copying http://plugins.svn.wordpress.org/simpleapplinks/trunk at r1012137 to http://plugins.svn.wordpress.org/simpleapplinks/tags/1.0...
Found possible branch point: http://plugins.svn.wordpress.org/simpleapplinks/trunk => http://plugins.svn.wordpress.org/simpleapplinks/tags/1.0, 1012137
Found branch parent: (refs/remotes/tags/1.0) 9c010522ea0e1c0ccf7f49fc10c3d4787f403ef4
Following parent with do_switch
Successfully followed parent
r1014259 = 79502b39865ad8f237e463f84892501550e91e84 (refs/remotes/tags/1.0)

あとは元記事ではプラグインバナー等を保存する Assets ディレクトリの扱い方が書かれている。自分のプラグインは特に作成する予定が無いので省略。

svn 久しぶりに触った、というか git-svn は初めてだ...。とりあえずこれで使えるようにはなった。

Sponsored Link

シェアする

フォローする