Category Archives: 石本

こんにちは。甘いお菓子が大好きなイッシーです(´〜`)mgmg。世は既にバニラアイスの季節ですね!

今回はバニラアイスとは関係がありませんが、Gitでのバージョン管理をほんの少しだけ掘り下げてブランチを使ってみることにします。ブランチとはmasterから派生し枝分かれした部分です。木の枝と違うのは枝分かれした部分が幹に融合する事があることでしょうか。ブランチを使えばビジネス的な承認が得られていないバージョンをそのままにしておき、次のバージョンに向けた作業を始めることが簡単にできます。効率化万歳\(^o^)/

では早速、以下のようにしてhogeという名前のブランチを作ります。

[cc lang="bash"]
git branch hoge
[/cc]

コレでおしまいです。簡単ですね。以下のコマンドで作ったブランチを確認しましょう。

[cc lang="bash"]
git branch hoge
[/cc]

以下のように表示されます。

[cc lang="bash"]
* master
hoge
[/cc]

アスタリスクがついているものが現在選択されているブランチです。新しく作ったブランチに変更を加えるには、ブランチを切り替える必要があります。

[cc lang="bash"]
git checkout hoge
git branch
[/cc]

以下のように表示されると思います。

[cc lang="bash"]
master
* hoge
[/cc]

以後の作業は全てhogeブランチに反映されるとこになり、何もしなければmasterに変更を及ぼすことはありません。checkoutをすることによってmasterと並行して作業をすすめることができます。

■マージ

枝分かれした方の変更点をmasterブランチに反映させたい時があります。そんな時に使うのがマージです。

説明のための作業

以下のコマンドでmasterブランチに切り替えたあと、ファイルを追加しコミットします。

[cc lang="bash"]
git checkout master
touch public_html/gomi.html
git add .
git commit -a -m “add trash file for the test”
[master 94cf4d1] add trash file for the test
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/trash.html
[/cc]

以下のコマンドでhogeブランチに切り替えたあと、ファイルを追加しコミットします。

[cc lang="bash"]
git checkout hoge
touch public_html/gomi.html
git add .
git commit -a -m “add gomi file for the test”
[hoge b6e5b56] add gomi file for the test
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/gomi.html
[/cc]

お待たせしました。マージです。以下のコマンドでhogeブランチで行った変更をmasterにマージします。

[cc lang="bash"]
git checkout master
git merge hoge
Merge made by recursive.
public_html/gomi.html | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/gomi.html
[/cc]

圧縮コミット

バグフィックスなどの際にブランチを作りまとめてコミットしたい場合、変更履歴をまとめて1つにしコミットしたいですよね。そんな時は以下のようにマージします。

[cc lang="bash"]
git checkout master
git merge –squash hoge
[/cc]

チェリーピック

別ブランチの特定の1コミットをマージしたい場合は以下のようにします。

[cc lang="bash"]
git checkout master
git cherry-pick b6e5b56
[/cc]

別ブランチで作業をしてくれている人がバグを潰してくれた場合もコミット名が分かれば簡単にマージできます。

■タグ

目印のようなものでリリースなどの際にはタグをつけておいた方が分かりやすいと思います。

[cc lang="bash"]
git tag 1.0 hoge
[/cc]

いかがでしょうか?ブランチを作っておけば良かったかもとか思う今日この頃です。ちなみにですが以下のコマンドで特定のコミットを元にブランチを作ることができます。

[cc lang="bash"]
git branch hoge b6e5b56
[/cc]

とまぁできるのですが、その時にやるのがやっぱり一番なのかなと・・・そんなこんなでバージョン管理は慣れが凄く大切だと思います。(。・ω・)ノ゙

みなさんこんにちはこんばんは。イッシーですʕ→ᴥ←ʔ。前回はSubversionでのバージョン管理でしたが世はすっかりGitムードです。プラスアールでも使い方を学びつつ四苦八苦しながらGitに移行してます。そこで今回はGitでの環境構築の部分をまとめてみました。

  • 解説は、プロジェクト名:sample.plusr.biz、ユーザ名:ishimotoとしてます
  • ルート権限で作業します

■サーバ側

【step1】グループを作る

プロジェクト名と同じ名前のグループを作りましょう。重複を防ぐためにもドメイン名が良いかと思います。

[cc lang="bash"]
/usr/sbin/groupadd sample.plusr.biz
[/cc]

【step2】グループにユーザを追加

グループにプロジェクトユーザを加えます。
[cc lang="bash"]
gpasswd -a ishimoto sample.plusr.biz
[/cc]

以下のコマンドでも同様の操作が可能ですが、今まで追加したグループを列挙しなければなりません。

[cc lang="bash"]
/usr/sbin/usermod -G sample.plusr.biz,hoge.plusr.biz,fuga.plusr.biz ishimoto
[/cc]

【step3】新規リポジトリの作成

以下のコマンドで新規リポジトリをサーバー上に作成します。

[cc lang="bash"]
mkdir sample.plusr.biz
cd sample.plusr.biz
[/cc]

【step4】リポジトリの作成

以下のコマンドで新規リポジトリをサーバー上に作成します。

[cc lang="bash"]
git –bare init
[/cc]

※bareとは作業ファイルがないからのリポジトリです。

[cc lang="bash"]
vi description
[/cc]

以下のように任意のプロジェクト名を記述します。

[cc lang="bash"]
sample.plusr.biz.repository
[/cc]

※リポジトリ名を記述しなかった場合、push時に以下のエラーが発生します。

[cc lang="bash"]
*** Project description file hasn’t been set
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/master
[/cc]

【step5】権限設定

グループのユーザに書き込み権限を与えます。

[cc lang="bash"]
chmod -R 0775 /usr/local/development/repos/sample.plusr.biz
chmod -R g+s /usr/local/development/repos/sample.plusr.biz #(1)
chgrp -R sample.plusr.biz /usr/local/development/repos/sample.plusr.biz
[/cc]

※上述の(1)がない場合、pushをしたときに以下のエラーが発生する。

[cc lang="bash"]
error: failed to push some refs to ‘ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz’
[/cc]

■クライアント側

まず、環境に合わせて以下をインストールします。

Mac
Git for Mac OS X
Win
msysgit

【step1】準備

プロジェクト用のディレクトリを作り、配下で以下ののコマンドを実行します。

[cc lang="bash"]
mkdir sample.plusr.biz
cd sample.plusr.biz
git init
[/cc]

【step2】初期状態を準備

フレームワークなどのファイルを配置した後に以下のコマンドを実行します。

[cc lang="bash"]
git add .
git commit -m “import :)”
git remote add origin ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz
git push origin master
[/cc]

※ちなみに間違えてリモートをセットしたときは以下のコマンドで再設定できます。

[cc lang="bash"]
git remote set-url origin ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz
[/cc]

リモートを確認するには以下のコマンドを使用します。

[cc lang="bash"]
git remote -v
[/cc]

※さらにちなみにですが僕はコメントに顔文字を入れたりします。(。・ω・)ノ゙

【参考】

いかがでしょうか?率直なところ、まだ僕はSubversionからGitに乗り換えた恩恵を授かっていません。しかし、開発人数が増加すれば分散リポジトリの恩恵を授かれるはずです。次回は、実際のGit環境での開発について書いてみたいと思います。。。あ、WinのGit環境がわからないな・・・(●´⌓`●)

こんにちは!イッシーです(。・ω・)ノ゙


この度の東日本大地震により、被災されました方々に心よりお見舞い申し上げます。

株式会社プラスアールではささやかながら東日本大地震チャリティとして「禁煙なう」ダウンロード数に応じ上限20万円(1万DL)を日本赤十字社に寄付させていただきます。


僕は生産設備を持っていませんので食料をはじめとした物流における支援は難しいのかもしれません。しかしながらシステムエンジニアとして間接的な支援や情報における支援はできます。僕は、天災における「破壊」を修復するのは人々の「生産」と考えるとともに、その「生産」の一部分を担う者として頑張っていきたいと思います。

さて、突然ですが皆さんはバージョン管理に何を使ってますか?プラスアールではGitでバージョン管理をしてます。大抵の方はGitを使っている、もしくはSubversionからGitへの乗り換えを希望しているのではないでしょうか?

そこで今回はGit!といきたいところですが、Subversionもまだまだ現役だと思いますので、Subversionでバージョン管理する方法をまとめておきたいと思います。

  • 開発サーバーにターミナルでログインしての作業になります
  • 分からない人は分かる人に補助してもらってください
  • 解説は、プロジェクト名:sample.plusr.biz、ユーザ名:ishimotoとしてます
  • ルート権限で作業します

■サーバー側

Subversionは中央集権的に管理するシステムです。大概はサーバーが必要になります。

【step1】グループを作る

プロジェクト名と同じ名前のグループを作りましょう。重複を防ぐためにもドメイン名が最適です。

[cc lang="bash"]
/usr/sbin/groupadd sample.plusr.biz
[/cc]

【step2】グループにユーザを追加

グループにプロジェクトユーザを加えます。

[cc lang="bash"]
gpasswd -a ishimoto sample.plusr.biz
[/cc]

以下のコマンドでも同様の操作が可能ですが、今まで追加したグループを列挙しなければなりません。

[cc lang="bash"]
/usr/sbin/usermod -G sample.plusr.biz,hoge.plusr.biz,fuga.plusr.biz ishimoto
[/cc]

【step3】リポジトリ作成

以下のコマンドを実行しリポジトリを作成します。

[cc lang="bash"]
svnadmin create –fs-type fsfs /usr/local/development/repos/sample.plusr.biz
mkdir /usr/local/development/repos/sample.plusr.biz/trunk
mkdir /usr/local/development/repos/sample.plusr.biz/tags
mkdir /usr/local/development/repos/sample.plusr.biz/branches
[/cc]

【step4】権限設定

グループのユーザに書き込み権限を与えます。

[cc lang="bash"]
chmod -R 0775 /usr/local/development/repos/sample.plusr.biz/
chgrp -R sample.plusr.biz /usr/local/development/repos/sample.plusr.biz/
[/cc]

【step5】インポート

デフォルトの初期状態の雛形がある場合は以下のコマンドでインポートします。

[cc lang="bash"]
svn import /user/local/development/repos/skeleton file:///usr/local/development/repos/sample.plusr.biz/trunk -m
[/cc]

svn import A B でAをBにインポートします。

【参考】

■Windowsクライアント側

クライアント側も基本的にはコマンドで操作可能ですが、TortoiseSVNなどを利用すると非常に作業が楽になります。

【step1】TortoiseSVNのインストール

サイトからダウンロードしてきてインストールします。

サーバのSSHのポートを変更している場合

C:\Users\[your name]\AppData\Roaming\Subversion\configの[tunnels]セクションに以下を追記します。

[cc lang="bash"]
sshdev = “C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe” -ssh -l [username] -P 1234
[/cc]

【step2】puttyのインストール

step2までの手順で使用することはできますが、接続の度に煩雑なパスワード入力が必要になりまし、SSHで接続する際に鍵を使用している方はputtyを使用した方が断然に楽に作業できますので、サイトからダウンロードします。

次にダウンロードしたファイル内の「plink.exe」を「C:\WINDOWS\system32」にコピーしてください。

【step3】puttyの設定ファイルの編集

コマンドプロンプトで以下のコマンドを実行し、svnのconfigファイルのパスを探しconfigファイルを編集します。

[cc lang="bash"]
echo %APPDATA%
[/cc]

出力したフォルダの中の「Subversion\config」ファイルを編集します。以下の記述を

[cc lang="bash"]
#ssh=$SVN_SSH ssh
[/cc]

以下のように記述します。

[cc lang="bash"]
ssh=plink
#ssh=$SVN_SSH ssh
[/cc]

【step4】秘密鍵の登録

puttyフォルダのpageant.exeを起動し、タスクトレイから右クリックで「AddKey」を選択しパスワードを入力します。

【使用方法】

リポジトリの追加
エクスプローラ上の何も無い部分で右クリック > チェックアウト
コミット等の操作
編集したファイル・ディレクトリで右クリック > コミット

【参考】

■Macクライアント側

Macはデフォルトでsvnコマンドが使用できます。しかし、TortoiseSVNが存在しませんので個人的な趣味によりEclipseのプラグイン(Subversive)を使用します。Windows版のEclipseでも同様に使えるので好みに応じて使い分けると良いかもしれません。

【使用方法】

リポジトリの追加(SVNリポジトリのビュー上)
新規 > リポジトリ・ロケーション > 必要項目の入力 > 右クリックしてチェックアウト
コミット等の操作(プロジェクト・エクスプローラのビュー上)
右クリック > チーム > コミット

※コミットをはじめロックの取得など操作が可能

サーバのSSHのポートを変更している場合

Subversiveを使用するときには問題ありませんが、コマンドラインから操作する場合にはポートの指定で上手くいかないかと思います。以下のコマンドを実行して設定ファイルを編集します。

[cc lang="bash"]
vi ~/.subversion/config
[/cc]

[tunnels]セクションに以下を追記します。

[cc lang="bash"]
sshdev = ssh -p 1234 -l ishimoto
[/cc]

すると以下のコマンドでチェックアウトなどの操作ができるようになると思います。

[cc lang="bash"]
svn checkout svn+sshdev://123.123.123.123/usr/local/development/repos/sample.plusr.biz
[/cc]

いかがでしょうか?多少粗雑な部分もあったかと思いますが参考にしていただければと思います。実は自分のプロジェクトでは諸事情によりまして1プロジェクトだけSubversionを使用してますが、今後はGitに統一します。次回はGitでのバージョン管理を解説できればと思います。

こんにちはイッシーです\(^o^)/。たまにミッチャンて呼ぶ人もいますが、まぁ好きな方で呼んでください♪

普段はスマートフォン事業部でiPhoneやandroidのアプリを開発してるのでクライアントはMacです。今まではWindowsを使用してたので、戸惑うこともチラホラ・・・そこでMacでのWebアプリケーションの開発環境を本日はメモっておきます。

と思ったのですがWindowsユーザにも読んでほしいので、Windows用の設定も書いておくことにします。

  • テキストエディタはwindowsのメモ帳を使用せず、秀丸・サクラエディター・emeditorなどを使用し、Macの場合はターミナルでそのまま編集してください
  • プロジェクト名は「hoge.plusr.biz」とします

【step1】xamppをインストール

Win

http://www.apachefriends.org/jp/xampp-windows.html

Mac

http://www.apachefriends.org/jp/xampp-macosx.html

【step2】apacheの設定 – その一

Win
C:\xampp\apache\conf\httpd.conf
Mac
vi /Applications/XAMPP/xamppfiles/etc/httpd.conf

以下の記述の部分を

[cc lang="c"]
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
[/cc]

以下のように変更しローカルからのアクセスのみ許可します。

[cc lang="c"]
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from 192.168.
Allow from 127.0.0.1
[/cc]

【step3】apacheの設定 – その二

Win
C:\xampp\apache\conf\extras\httpd-vhosts.conf
Mac
vi /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf

バーチャルホストの設定

以下の部分の記述を

[cc lang="c"]
#NameVirtualHost*:80
[/cc]

以下のようにしてコメントを外します。

[cc lang="c"]
NameVirtualHost*:80
[/cc]

次に、行末に以下を追記します。

Win

[cc lang="xml"]

ServerName hoge.plusr.biz
DocumentRoot “C:\xampp\htdocs\hoge.plusr.biz\trunk\public_html”

[/cc]

Mac

[cc lang="xml"]

DocumentRoot “/Applications/XAMPP/xamppfiles/htdocs/hoge.plusr.biz/trunk/public_html”
ServerName hoge.plusr.biz

[/cc]

【step4】mysqlの設定

Win
C:\xampp\mysql\bin\my.ini
Mac
vi /Applications/XAMPP/xamppfiles/etc/my.conf

それぞれのセクションに以下を追記します。

[cc lang="c"]
[mysqld]
character_set_server = utf8
[client]
default-character-set=utf8
[/cc]

以下のような記述も見られますがセキュリティの観点から推奨はしません。といっても開発環境なんだけど。。。

[cc lang="c"]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
default-character-set = utf8
init-connect = SET NAMES utf8
[/cc]

【step5】phpの設定

Win
C:\xampp\php\php.ini
Mac
vi /Applications/XAMPP/xamppfiles/etc/php.ini

mbstringのセクションにある以下の項目を変更し、文字コードをUTF-8ベースに変更します。

[cc lang="c"]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = off
[/cc]

但し、開発するシステムの仕様に依存しますので携帯サイトなどはこの限りではありません。

また、開発環境では問題とならないが以下の項目を変更してPHPの情報をレスポンスヘッダから隠します。

[cc lang="c"]
expose_php = Off
[/cc]

【step6】Apatch, MySQLの再起動

XAMPPのコントロールパネルから再起動してください。

【step7】hostsファイルの設定

Win
C:\WINDOWS\system32\drivers\etc\hosts
Mac
http://www.apple.com/jp/downloads/macosx/tools/hoster.html

ちなみにiPhoneのシミュレータはデフォルトでhostsファイルを参照するようなのですが、androidのシミュレータはhostsファイルを参照させるために別途設定が必要なようです。

Win

以下のように記述することで任意のドメインでアクセスしたときにローカルを参照するようになります。

[cc lang="c"]
[自分のIPアドレス] hoge.plusr.biz
[/cc]

Mac

基本的な概念は変わりませんがhosterを起動して設定してください。

基本的な内容ではありましたがいかがでしょうか?基本的にはファイルパスが違うだけで設定項目は変わりません。次回は遊び心あるトピックにしようかと思います。