2012年8月16日木曜日

Git環境構築メモ(EGit)

前回に引き続き、Gitを使えるようになるまでの構築メモです。

今回はEclipseのGitプラグインであるEGitの設定です。EGitはおなじみPleiadesのEclipseなら最初から入っています。全部Eclipseだけで設定できるので、Windows、Mac、Linuxは問わないです(きっと)

では、その手順を。

1. (Windowsのみ)環境変数HOME設定
これを設定しないと、EGit関係の画面を表示したときに「設定されていません」ダイアログが出て煩わしいので設定する。環境変数の設定の仕方はここでは割愛。設定する値はとりあえず、C:\Users\ユーザ名 でいいかと

2. SSH設定
Eclipseで公開鍵、秘密鍵を生成し、公開鍵をホスティングサービス(assembla)に登録します。
 1. 「ウィンドウ」→「設定」→「一般」→「ネットワーク接続」→「SSH2」とクリックしていく。
 2. 「鍵管理」タブをクリックし、「RSA鍵の生成」ボタンをクリックして鍵生成を行う。
 3. ダイアログの真ん中に表示された公開鍵をコピーした後、ブラウザでホスティングサービス(assembla)にアクセスする。右上の自分の名前のところにマウスポインタを合わせると「Edit Profile」が表れるのでそれをクリック。左側のメニューの「Manage SSH Keys」をクリック。コピーした公開鍵をテキストボックスに貼り付けて、「Add Key」を押して登録する。
 4. Eclipseに戻り、先ほどのダイアログの下に「秘密鍵の保管」ボタンがあるのでそれを押して保管する。保管場所はお隣の「一般」タブの「SSH2 ホーム」である。
 5. (不要?)Eclipseを再起動する。

これでOKなはずです。後はリモートリポジトリからプルするか、新規にプロジェクト作ってコミットすればいいかと。

最初は認証エラーが出たのですが、キーを再作成&再登録したらできたっていう・・・原因よく分からずです。

Git環境構築メモ(assembla, msysgit, TortoiseGit)

今流行り?のGitを使えるようにするまでのメモを残します。

1. ホスティングサービス登録
1人&マシン1台でGitやるなら不要ですが、複数台のマシンを使用する予定なので、リモートリポジトリをサービスしているGitホスティングサービスを利用することに。人気はGitHubらしいですが、個人的に使用するのに公開リポジトリを作るのは抵抗があったので、assemblaを利用することに。アカウント作って、プロジェクト名(リポジトリ名)を入力すればOK

2. msysgitインストール
msysgitはWindows環境で動くGitソフトウェアです。コマンドラインベースの「Git Bash」とGUIベースの「Git GUI」の2つが入っています。GUIベースとしてはよりメジャーでリッチな?TorotoiseGitをこの後入れますが、その場合もmsysgitをインストールする必要があります。msysgit公式サイトに行き、インストーラをダウンロードしてインストールすればOKです。

3. msysgit動作確認
試しにローカルリポジトリにファイルをコミットするまでやってみます。手順は以下の通り
 1. 適当にフォルダを作る
 2. Git Bash(msysgit)をダブルクリックし、コマンドプロンプトを出す
 3. 1.で作ったフォルダに移動
 4. git init
 5. 適当にファイルを作る(touch test.txt 等)
 6. git add test.txt
 7. git commit -m"first commit"
エラー無くできれば問題無いかと。

4. TortoiseGitインストール
TortoiseGitはWindows環境で動くGUIベースのGitクライアントです。TortoiseGit公式サイトに行き、インストーラをダウンロードしてインストールすればOKです。完了後、日本語化パッチを同じサイトからダウンロードしましょう。左側のメニューにある「Downloads」の「Show all」をクリックし、表示されたインストーラの中から「TortoiseGit-LanguagePack-*.*.*.*-**bit-ja.msi」となっているものをダウンロードします。***はバージョンとかビット数です。

5. TortoiseGit動作確認
試しにローカルリポジトリにファイルをコミットするまでやってみます。手順は以下の通り
 1. 適当にフォルダを作る。
 2. 作ったフォルダを右クリックし、「Git ここにリポジトリを作成」をクリックする。
 3. チェックボックスにチェックを入れずにOKをクリックする。
 4. 作ったフォルダの中に行き、適当にファイルを作る。
 5. 作ったファイルを右クリックし、「TortoiseGit」→「追加」をクリックする。
 6. 作ったファイルを右クリックし、「Git コミット」をクリックする。
エラー無くできれば問題無いかと。

6. SSH設定
assemblaを利用する場合、SSHの設定をする必要があります。大きな流れは、
 1. Puttygenで鍵を作る。
 2. 公開鍵をassemblaに登録する。
 3. git initしたフォルダに対して右クリックしてTortoiseGitの設定画面を出し、秘密鍵を設定する
です。詳細はこのサイトが分かりやすいです。

7. SSH設定後の動作確認
assemblaにpushしてみます。Git Bash(msysgit)なら以下の通りにコマンドを打ちます。***はホスティングサービス登録時に入力したプロジェクト名です。
 1. cd [git initしたフォルダ]
 2. git remote add origin git@git.assembla.com:***.git
 3. git push origin master
この時点でassemblaのマイページに行くと、push
TortoiseGitの場合は右クリック→TortoiseGit→プッシュでいいかと思いますが、この時点でTortoiseGitでpushすると「no fast forward」と出てpushに失敗します。push前にpullしないとダメかな。

参考
msysGitでWindowsからGitを使う
実用レベルに達したWindows向けGitクライアント「TortoiseGit」でGitを始めよう

2012年8月2日木曜日

JavaScriptである値がパターンにマッチしたらtrueを返す処理

単純に、RegExpオブジェクトのtest()を使えばよい。
var value = "abcdef";
var result = (/abc/).test(value); // true
以下でもOK。こっちはStringオブジェクトのmatch()を使っている。
var value = "abcdef";
var result = !!value.match(/abc/); // true
match()はマッチした結果を配列で返し、全くマッチしない場合はnullを返す。なので、単にマッチしたかどうかの結果だけを知りたい場合は、!演算子を2回使えばよい。

  • value.match(/abc/) → abc
  • !value.match(/abc/) → !abc → false
  • !!value.match(/abc/) → !!abc → !false → true

上記の!abcがfalseになるのは、abcが型変換でブーリアン型(true)になるからである。
型変換でfalseになる値は以下の通りで、それ以外はtrueである。

  • 数値0
  • 数値NaN
  • null値
  • undefined値
  • 空文字

JavaScriptのとあるソースを呼んでて、!!value.match(/abc/)なるものがあって、何やってるのかよく分からなかったからメモを残しました。単純にRegExpのtest()を使うのとどっちがいいですかね?