xcode の git ステータスが表示されなくなった際の対処方法

xcode4 で開発を行っている際に git を利用しているとプロジェクト ナビゲータのファイル横に改変ステータスが表示されます。
例えば、追加されたファイルには”A”、編集されたファイルには”M”などのマークです。

これらのマークがある時期から表示されなくなったので何とか表示したいと考えていたのですが、対処方法を調べる時間がなく、そのままの状態で開発を行っていました。
ですが、改版中のファイルが分かるとあとでコードの見直しなどする際にメリットがあるので、少し調べてみました。

私の環境でそのような現象が起きていたのは、作業開始時に開発に関するファイルをコピーしてから作業を開始している為のようです。その際、git の管理ができなくなっており、新規に作成したファイルなどの改変ステータスが表示できなくなっているようです。

というわけで、コマンドラインから新規作成ファイルをプロジェクトにインポートすることで git の管理下に置くことで、プロジェクト ナビゲータの改変ステータスが表示されるようになるか確認したところ、正常に改変ステータスを表示できるようになりました。
その際のコマンドは以下の通り。

git に新しいプロジェクト ソースをインポートする方法を参考に対処することにした。

$ cd (プロジェクトのトップディレクトリ)
$ git init
$ git add .
$ git commit -m "コミット コメント"

参考になるURL
チュートリアル:新規リポジトリのインポート

Git ユーザマニュアル:新規リポジトリの作成

「WEB+DB PRESS vol.50 はじめてのGit」にも git 記事があるようです。

iCloud のカレンダーと iCal 同期した場合、日付がずれる

os x のバージョンアップがされて mac から iCloud が利用できるようになったので早速試してみました。
筆者のスケジュール管理は以下のものを利用しています。

mac : iCal
iPhone 3GS : さいすけ

mac と iPhone は、Google カレンダーを介して同期させていました。
これを iCloud を経由するように変更してみました。
すると、iCal で登録したスケジュールは iCloud のカレンダーでも参照できますが、日付がずれるという現象に見舞われました。

原因は、iCloud のタイムゾーン設定を行っていなかったのが問題でした。
というわけで、iCloud のヘルプを参照して設定するとスケジュールの日付がずれることなく同期することができるようになりました。

iCal の環境設定も [一般]-[デフォルトカレンダー]に iCloud を指定しておきます。

– iCloud の参照したヘルプ
icloud.comで言語またはタイムゾーンを変更する

vim ショートカット

キー 説明
ggVG 全行選択
:%s/\t/,/g 一括置換 (タグをカンマに全部置換する)
J 行の連結 (行末の改行削除)
control + o 戻る
control + i 進む
cw 単語を削除して、入力する
:! cmd シェルから cmd を実行
control + g 編集中ファイル名が表示される
:noh ハイライトを消す
行頭に一括して文字を挿入する
control + v
shift + i
Esc キーを押下する
挿入したい行を複数行選択する
挿入したい文字を入力する
Esc キーを押下すると文字が挿入される

iPhone からサーバへhttp通信でファイルアップロードする方法

サーバ側 PHPプログラム
※ 本PHPプログラムは、ファイル名: file_upload.php とする。
※ 本PHPプログラムのディレクトリ配下に”files”ディレクトリを作成しておく。
アップロードされるファイルは、filesディレクトリ配下に作成される。

1
2
3
4
5
6
7
8
9
10
11
12
<?php                                                                                                                         
$target_path = "files/";
 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; 
} 
else{ 
    echo "There was an error uploading the file, please try again!"; 
}
?>

クライアント側プログラム
※ ASIHTTPRequest (http://allseeing-i.com/ASIHTTPRequest/)からライブラリ取得する。
iOS用サンプル プログラムの以下の箇所を変更し動作させる。
※ pathForResource メソッドでパスが取得できない場合、プロジェクトの登録情報が不正な場合がある。
問題のリソースファイルを再度、プロジェクトに登録し直せば解決する場合が多い。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@implementation UploadViewController
 
- (IBAction)performLargeUpload:(id)sender
{
    // 以下、ファイルアップロード検証用コード    
    [request cancel];
 
    // 上記のphpプログラムURL
    NSURL *url = [NSURL URLWithString:@"http://xxxxxx/file_upload.php"]; 
    [self setRequest:[ASIFormDataRequest requestWithURL:url]];
 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
    [request setShouldContinueWhenAppEntersBackground:YES];
#endif
 
    NSBundle *bundle = [NSBundle mainBundle];
    // アップロードテストするファイル
    NSString *pathUploadFile = [bundle pathForResource:@"info" ofType:@"png"];
    NSLog(@"%@", pathUploadFile);
    [request setFile:pathUploadFile forKey:@"uploadedfile"];
 
    [request setUploadProgressDelegate:progressIndicator];
    [request setDelegate:self];
    [request setDidFinishSelector:@selector(uploadFinished:)];
    [request setDidFailSelector:@selector(uploadFailed:)];
 
    [request startAsynchronous];
 
    [resultView setText:@"Uploading data..."];
 
// ↑ファイル アップロード検証用コード

ロリポップのgitリポジトリへxcode4プロジェクト関連のファイルをpushする

gitを初めて利用する場合、知っておいた方がよい事柄を以下に記す。
・分散リポジトリ
ローカルのリポジトリとサーバのリポジトリで更新処理が行える
ローカルでの変更点をコミットするには、commit を使用する
サーバのリポジトリと連携を行う際は、push / pull を使用する
サーバのリポジトリをローカルに複製するには、clone を使用する

分散リポジトリを理解する上で参考になる構成図
コマンド詳細

1. xcode4プロジェクトを作成する
プロジェクト新規作成時には、
Source Control: Create local git repository for this project
をチェックする

開発関連のファイルを git で管理していない場合,以下の手順で git 管理しておく.
$ cd (プロジェクトのトップディレクトリ)
$ git init
$ git add .
$ git commit -m "コミット コメント"

2. サーバにgitリポジトリを作成する
“git”ディレクトリを作成し、git ディレクトリで以下のコマンドを実行する。
git init –bare –shared

3. サーバへpushする
開発ディレクトリで,

git push ssh://(ユーザ名)@ssh030.lolipop.jp:2222/home/users/1/(ユーザ名)/git master

※ パスは,適宜指定する.

4. サーバからcloneする
いったん,開発ディレクトリをリネームなどでバックアップした後,

git clone ssh://(ユーザ名)@ssh030.lolipop.jp:2222/home/users/1/(ユーザ名)/git

5. その他
サーバ リポジトリの変更点をローカル リポジトリに取り込む
$ git pull

・push 失敗する場合は、コミットしているか確認すること
$ git commit
もしくは、
$ git commit -m “(コメント)”

.vimrcでutf-8を利用する

.vimrc に以下の設定を記述する

1
2
3
4
5
6
syntax on
set nobackup
set termencoding=euc-jp
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,utf-8,ucs2le,ucs-2

ついでにカーソル行に下線、行番号も表示するようにする

7
8
set cursorline
set number