2012年9月30日日曜日

Git 事初め (2) - 最低限のブランチ機能

ブランチの作成

ブランチとは?

  • 本流から分岐し、本流に影響なく、開発作業を続ける機能のこと

現状の確認

$ cat wmeterserver.py
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
$ git branch
* master
デフォルトでは master ブランチのみが存在している。「*」が現在作業中のブランチ。

develop ブランチの作成

$ git branch develop

$ git branch
  develop
* master
develop ブランチが作成されたが、作業中のブランチは master のまま。

develop ブランチへ切り替え

$ git checkout develop
Switched to branch 'develop'

$ git branch
* develop
  master
develop ブランチに切り替わった。作成 & 切り替えは「git checkout -b develop」一発でもできる。

develop ブランチでファイルの修正 & commit

$ vi wmeterserver.py
$ cat wmeterserver.py
print 'Content-Type: text/html'
print ''
print 'Hello'
print 'Hello, world!'
print ''
$ git add wmeterserver.py
$ git commit -m 'text/plain -> text/html'
[develop a4de3c7] text/plain -> text/html
 1 file changed, 3 insertions(+), 1 deletion(-)

ブランチのマージ

master ブランチへ切り替え

$ git checkout master
Switched to branch 'master'

$ git branch
  develop
* master

ファイルの確認(マージ前)

$ cat wmeterserver.py
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
master ブランチには develop ブランチで行った修正は入っていない。

develop ブランチのマージ

$ git merge develop
Updating e661db9..a4de3c7
Fast-forward
 wmeterserver.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

ファイルの確認(マージ後)

$ cat wmeterserver.py
print 'Content-Type: text/html'
print ''
print ''
print 'Hello, world!'
print ''
master ブランチに develop ブランチで行った修正が反映された。

ブランチの削除

develop ブランチの削除

$ git branch -d develop
Deleted branch develop (was a4de3c7).

$ git branch
* master

まとめ

  • 特定のブランチの状態へ切り替えるのが簡単で感動。
  • 他のバージョン管理システムだと面倒なイメージなのだけど、Git のブランチ機能は使ってみたいと思えた。

2012年9月24日月曜日

Git 事始め

Git

Git とは?

  • プログラム等のソースコード管理を行う分散型バージョン管理システム
  • 詳しくはコチラ。→
    1. Git」(http://git-scm.com/)
    2. Git - Wikipedia」(http://ja.wikipedia.org/wiki/Git)

使用環境

マシンMacBook Air (11-inch, Mid 2011)
OSOS X 10.8.1
GitVersion 1.7.12.1
  • Git は Git 公式サイトからダウンロードしてきた Mac 用を使用。

インストール

Mac 用でダウンロードしてきた「git-1.7.12-intel-universal-snow-leopard.dmg」をマウントし、*.pkg ファイルをダブルクリックしインストール。

$ git --version
git version 1.7.12

バージョン管理事始め

はじめに

  • GAE/Python事始め」で作成した HelloWorld のコードを使用して、Git でのバージョン管理について試してみる。
  • 「分散型」だけど、ローカル環境だけで始めてみる。

リポジトリ作成から初回コミットまで

管理対象とするファイルの確認

$ cd ~/Documents/gae/wmeterserver/
$ ls
app.yaml	wmeterserver.py

リポジトリの初期化

$ git init
Initialized empty Git repository in /Users/Suna/Documents/gae/wmeterserver/.git/

管理対象に追加

$ git add app.yaml
$ git add wmeterserver.py

初回コミットを行いリポジトリに登録

$ git commit -m 'initial project version'
[master (root-commit) e1b7ee4] initial project version
 2 files changed, 11 insertions(+)
 create mode 100644 app.yaml
 create mode 100644 wmeterserver.py

ファイルを修正し、2回目のコミット

ファイルを確認

$ cat wmeterserver.py
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

ファイルを修正(text/plain から text/html に修正)

$ vi wmeterserver.py

$ cat wmeterserver.py
print 'Content-Type: text/html'
print ''
print 'Hello'
print 'Hello, world!'
print ''

2回目のコミット

$ git add wmeterserver.py
$ git commit -m 'text/plain -> text/html'
[master 81785b6] text/plain -> text/html
 1 file changed, 3 insertions(+), 1 deletion(-)

特定のコミットの状態に戻す

コミットの状況を確認

$ git log
commit 81785b695de2697decdbea13c72247f64e2c442e
Author: Suna 
Date:   Mon Sep 24 01:57:43 2012 +0900

    text/plain -> text/html

commit e1b7ee41582919571f39a47cd356d8045fc167d7
Author: Suna 
Date:   Sun Sep 23 23:58:03 2012 +0900

    initial project version

特定のコミットの状態に戻す

$ git checkout e1b7ee41582919571f39a47cd356d8045fc167d7 wmeterserver.py

$ cat wmeterserver.py
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

まとめ

  • とりあえず、修正、コミット、戻しの最低限の操作について。これくらいだと Git ならではの面白さみたいなものは感じない。やはり「分散型」ならでは、のところを触ってみないとかな。

2012年9月17日月曜日

GAE/Python 事始め

GAE/Python

GAE/Python とは?

  • 「Google App Engine」。Google が提供する PaaS (Platform as a Service)。
  • とりあえず無料 (500 MB のストレージと、1か月に約 500 万ページ ビューを超えるくらいになると課金が必要)。
  • 開発言語として、Python / Java / Go が使用可能。
  • 詳しくはコチラ。→ 「Google App Engine — Google Developers

開発環境

マシンMacBook Air (11-inch, Mid 2011)
OSOS X 10.8.1
SDKLinux/Other Platforms 1.7.1 - 2012-08-21
  • SDK は「Downloads - Google App Engine — Google Developers」からダウンロード。
  • Mac 用には GUI 付きのツールが提供されているのだけど、コマンドラインで作業するため、Mac 用ではなく Linux/Other Platforms 用を使う。

SDK インストール

ダウンロードした zip を解凍し、ディレクトリをそのまま /usr/local/ 下に移動。シェルでパスを追加。

$ cd ~/Downloads/
$ unzip google_appengine_1.7.1.zip
$ sudo mv google_appengine /usr/local/
$ vi ~/.bash_profile

$ cat ~/.bash_profile
PATH=$PATH:"/usr/local/google_appengine"

$ source ~/.bash_profile

「Hello World!」

言語としては Python を選択。普段が Perl 屋なので、同じような LL 言語でサクサクと実装していきたいため。Go 言語も見てみたが、面倒臭そうなので止めた。ただ、処理速度的なメリットはありそうなので、必要な状況になれば Go 言語も試してみたい。

Hello World アプリ用ディレクトリの作成

ディレクトリを作成し、移動。以降の作業はこのディレクトリで行う。

$ cd ~/Documents/
$ mkdir -p Documents/gae/wmeterserver
$ cd Documents/gae/wmeterserver

アプリの設定ファイルの作成 (app.yaml)

「application」(アプリケーション名設定) と、「handlers」(リクエストと処理スクリプトの対応設定)のみ注意。その他は固定値。

  • app.yaml
application: wmeterserver
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: wmeterserver.py

ソースコードの作成 (wmeterserver.py)

  • wmeterserver.py
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

開発用サーバの起動

引数に指定しているのは、アプリケーションのディレクトリ。現在地点なので「.」を指定。

$ dev_appserver.py .

動作確認

適当なブラウザから http://localhost:8080 にアクセス。「Hello World!」が表示。

まとめ

  • エントリの内容的には特になし(ただの「Hello World」だし)。
  • Blogger のテンプレート、スタイルを調整していたため、公開まで結構時間がかかった。→ やはり CSS は苦手・嫌い。