git-svn の練習
http://code.google.com/ あたりにテスト用のリポジトリを作成して動作確認してみる事に。
とりあえず checkout は
git svn clone svn+ssh://fugahoge
とあるな。Checkout は以下とあります。
svn checkout https://yamanetoshi-android-project.googlecode.com/svn/trunk/ \ yamanetoshi-android-project --username yamanetoshi@gmail.com
とりあえず、ハロワ状態の Android プロジェクトから必要なファイルを持ちてきて
$ ls .git AndroidManifest.xml assets libs proguard-project.txt res src
.gitignore を以下な状態にして
.classpath .project bin/ gen/ project.properties
インデクスに登録して commit を作ります。
$ git add . $ git commit -m 'initial commit'
$ git svn dcommit
なんかごにょごにょ言われましたが、Google のアカウントとパスワードを入力して、って上手くいってるのかと思ったらそうでもない模様。
ERROR: Not all changes have been committed into SVN, however the committed ones (if any) seem to be successfully integrated into the working tree. Please see the above messages for details.
あら、認証エラーらしい。む、http://code.google.com/p/projectname/source に以下な案内がありますね。パスワードはこれなのか。
When prompted, enter your generated googlecode.com password.
リトライ。できた、のかな。trunk 配下に反映されていることを確認。別途ここ以外のソレでも確認の方向にて。
続き
別場所に clone してたナニに rebase (update) してみた。
$ git svn rebase A .gitignore A proguard-project.txt A AndroidManifest.xml A src/com/example/svnsample/MainActivity.java A libs/android-support-v4.jar A res/values-sw720dp-land/dimens.xml A res/values/styles.xml A res/values/strings.xml A res/values/dimens.xml A res/values-sw600dp/dimens.xml A res/drawable-hdpi/ic_launcher.png A res/menu/main.xml A res/values-v11/styles.xml A res/values-v14/styles.xml A res/drawable-mdpi/ic_launcher.png A res/drawable-xhdpi/ic_launcher.png A res/layout/activity_main.xml
git log 見てみたら commit が二つあるな。
$ git log commit 93a268212d12bee8cf9edc02b059928b4eeb6565 Author: yamanetoshi@gmail.com <yamanetoshi@gmail.com@7215229e-9e1a-02ef-698a-ca2a93d5e3bd> Date: Tue Jun 18 09:07:10 2013 +0000 initial commit commit 2e050753385eaf40e76c52fe95667e9759bbc17c Author: (no author) <(no author)@7215229e-9e1a-02ef-698a-ca2a93d5e3bd> Date: Tue Jun 18 08:30:30 2013 +0000 Initial directory structure.
で、以下な修正をしてみて
$ git diff diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 168c9b8..9db941b 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -8,7 +8,7 @@ android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > - <TextView + <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
盛り込んでみます。試験は略。
$ git add . $ git commit -m 'Modify layout' $ git svn dcommit
無事に盛り込まれている模様。つうかこれ、コンフリクトする場合どうなるのかな。とは言えとりあえずコミッタは自分のみ、らしい (そうでない所もありますが) ので、これデフォでもごもごしてみる方向。
別場所のローカルリポジトリで git svn rebase もしてみています。
$ git svn rebase M res/layout/activity_main.xml r3 = ab55cf4d2e544ddce174aeef3da0872678217f99 (refs/remotes/git-svn) First, rewinding head to replay your work on top of it... Fast-forwarded master to refs/remotes/git-svn.
とりあえずコンフリクトさせない形で、であれば
- branch して盛り込み
- master branch で rebase
- master に merge
- master を dcommit
という運転のしかたで大丈夫なのかどうか。