リポジトリの作成 その2 [Git]
前回の続きですが、チュートリアルの続きに従い、さっそく対象のファイルをインポートしたいと思います。
インポートしたいファイルは下記の9つのファイルです。悩んでいたMakefileなどはアップするのをやめておきます。
複数のファイルがありますが、一気に指定してみます。と思いましたが、自分で作成した部品のファイルの指定を忘れていて、下記の5つをまず実行しました。
ここはなんの応答もなく完了。索引と言う一時エリアに格納されるらしいです。そして、先程、忘れていた分をさらに追加。
で、コミットです。
ここで、コミットメッセージの入力を促される状態になりました。何これ? これは、vi?
入力の仕方が一見しただけでは分からない
コミットメッセージを入力する様に促されています。コメントを入れない場合は、コミットは中断されるとのこと。また、「#」で始まる行は無視されるとか・・。と言うことは、複数行の入力ができるんですね。
一行入力して「Enter」を入れると普通に改行されました。バックスペースは効きません・・。どうやって、コミットを完了させればよいのでしょうか・・・???
*
調べていると、エディタを起動させたくない場合は「-m」を指定すればいいらしいです。「git commit -m "message"」の様ですね。でも、既にエディタが立ち上がってしまってます。このエディタが何かまず知りたいんですが・・・。
公式ページにも記載は無さげなんですが、どうやら、gvimと言うエディタだそうです。たぶん、vi系ですね・・・。と思ったら、Ubuntuの設定で何か標準エディタが決まってるでしょうか? 環境変数の「EDITOR」に設定されている様子。と思って、環境変数を見てみましたが、「EDITOR」と言うのは設定されて無さげです。デフォルトを変えたい時に設定するのか・・。う〜ん、情報が見つけられませんね。ちなみにたぶん、公式ページに記載が無いのは、環境に依存するからですかね・・。
*
よくわからないので、vi系のエディタであろうと言う前提で調べてみたところ、コミットが完了した様です。見たページを失念してしまいましたが、確か、「ctrl+[」でコマンドモードに遷移して、「:wq」で終了と言う感じだったと思います。
完了した様子
つづく。
【参考】
・Gitを使いこなすための20のコマンド - p.3 - SOURCEFORGE.JP Magazine
・git/コミットログを修正する方法 - TOBY SOFT wiki
・コミットログ編集に使うエディタを指定する - できろぐ(仮)
・lessとかgit commitとかするときに使うエディタを変更する - ser1zw::diary
・Leafpad テキストエディタ 軽くて快適、文字コード変換もできる - ubuntuApps
・バージョン管理をsubversionからgitに移行してみた - kaeruspoon
インポートしたいファイルは下記の9つのファイルです。悩んでいたMakefileなどはアップするのをやめておきます。
SDTool.pro, main.cpp, mainwindow.cpp, mainwindow.h, mainwindow.ui, sdtoolview.cpp, sdtoolview.h, sdtoolmain.cpp, sdtoolmain.h |
複数のファイルがありますが、一気に指定してみます。と思いましたが、自分で作成した部品のファイルの指定を忘れていて、下記の5つをまず実行しました。
git add SDTool.pro main.cpp mainwindow.cpp mainwindow.h mainwindow.ui |
ここはなんの応答もなく完了。索引と言う一時エリアに格納されるらしいです。そして、先程、忘れていた分をさらに追加。
git add sdtoolview.cpp sdtoolview.h sdtoolmain.cpp sdtoolmain.h |
で、コミットです。
git commit |
ここで、コミットメッセージの入力を促される状態になりました。何これ? これは、vi?
入力の仕方が一見しただけでは分からない
コミットメッセージを入力する様に促されています。コメントを入れない場合は、コミットは中断されるとのこと。また、「#」で始まる行は無視されるとか・・。と言うことは、複数行の入力ができるんですね。
一行入力して「Enter」を入れると普通に改行されました。バックスペースは効きません・・。どうやって、コミットを完了させればよいのでしょうか・・・???
*
調べていると、エディタを起動させたくない場合は「-m」を指定すればいいらしいです。「git commit -m "message"」の様ですね。でも、既にエディタが立ち上がってしまってます。このエディタが何かまず知りたいんですが・・・。
公式ページにも記載は無さげなんですが、どうやら、gvimと言うエディタだそうです。たぶん、vi系ですね・・・。と思ったら、Ubuntuの設定で何か標準エディタが決まってるでしょうか? 環境変数の「EDITOR」に設定されている様子。と思って、環境変数を見てみましたが、「EDITOR」と言うのは設定されて無さげです。デフォルトを変えたい時に設定するのか・・。う〜ん、情報が見つけられませんね。ちなみにたぶん、公式ページに記載が無いのは、環境に依存するからですかね・・。
*
よくわからないので、vi系のエディタであろうと言う前提で調べてみたところ、コミットが完了した様です。見たページを失念してしまいましたが、確か、「ctrl+[」でコマンドモードに遷移して、「:wq」で終了と言う感じだったと思います。
完了した様子
つづく。
【参考】
・Gitを使いこなすための20のコマンド - p.3 - SOURCEFORGE.JP Magazine
・git/コミットログを修正する方法 - TOBY SOFT wiki
・コミットログ編集に使うエディタを指定する - できろぐ(仮)
・lessとかgit commitとかするときに使うエディタを変更する - ser1zw::diary
・Leafpad テキストエディタ 軽くて快適、文字コード変換もできる - ubuntuApps
・バージョン管理をsubversionからgitに移行してみた - kaeruspoon
リポジトリの作成 その1 [Git]
さて、さっそくリポジトリを作成したいと思います。チュートリアルの日本語訳が公開されていたので、それに従っていきます。
とりあえずSD Toolで試したいのですが、新規にプロジェクトをインポートする場合、現在ソースが入っているディレクトリでそのまま作業を開始する様なので、そうする事にしますが、念のためQtのプロジェクトのディレクトリをバックアップとして丸々コピーしておきました。
さて、まずは、端末で、SD Toolのディレクトリに移動して、「git init」を実行します。
あっさり、作業ディレクトリの初期化までは完了しました。
次にチュートリアルでは、「git add .」を実行するように促されていますが、これは、カレントディレクトリ内のすべてのファイルを追加することが前提になっている様です。が、現在のディレクトリには既にビルドした実行ファイルなんかも含まれています。特に「.pro.user」ファイルは環境毎に異なるものなので、排除する必要があります。
インポートするファイルを決める必要がありますが、Qt Creatorが勝手に作ったファイルも割とある様なので、どれを入れるのが妥当かを調べる必要がありますね・・。考えてもわからないので、Qt Creatorで別のプロジェクトを新規作成して、どういうファイルが必要そうなのかを調べることにします。
*
「Qt4 Gui Application」のプロジェクトを作成した時点で出来上がったのは下記のファイルです。
QWidgetを貼って、レイアウトをつけてみましたが、追加は特になし。コンパイルして、実行して、「Build」→「Clean All」をしてみたら、下記が追加された様です。
「.pro.user」は上記のとおりなので不要。また、「project」は実行ファイルなので、不要だと思います。「Clean All」する前の状態を確認すると、「ui_mainwindow.h」など気になるファイルもいくつかあったんですが、ビルドする際に自動で出来上がるもんなんですかねぇ・・。Makefileなどもアップする必要があるのかどうかちょっと気になります。
わからない点もありますが、とりあえず、プロジェクト作成時点で出来上がったものと自分で書いたもののみをリポジトリに入れていくことにします。
つづく。
【参考】
・gittutorial(7) Manual Page
・git(1) Manual Page
とりあえずSD Toolで試したいのですが、新規にプロジェクトをインポートする場合、現在ソースが入っているディレクトリでそのまま作業を開始する様なので、そうする事にしますが、念のためQtのプロジェクトのディレクトリをバックアップとして丸々コピーしておきました。
さて、まずは、端末で、SD Toolのディレクトリに移動して、「git init」を実行します。
$ cd SDTool $ git init Initialized empty Git repository in /home/xxxxxxxx/src.sdtool/SDTool/.git/ |
あっさり、作業ディレクトリの初期化までは完了しました。
次にチュートリアルでは、「git add .」を実行するように促されていますが、これは、カレントディレクトリ内のすべてのファイルを追加することが前提になっている様です。が、現在のディレクトリには既にビルドした実行ファイルなんかも含まれています。特に「.pro.user」ファイルは環境毎に異なるものなので、排除する必要があります。
インポートするファイルを決める必要がありますが、Qt Creatorが勝手に作ったファイルも割とある様なので、どれを入れるのが妥当かを調べる必要がありますね・・。考えてもわからないので、Qt Creatorで別のプロジェクトを新規作成して、どういうファイルが必要そうなのかを調べることにします。
*
「Qt4 Gui Application」のプロジェクトを作成した時点で出来上がったのは下記のファイルです。
project.pro, project.pro.user, main.cpp, mainwindow.cpp, mainwindow.h, mainwindow.ui |
QWidgetを貼って、レイアウトをつけてみましたが、追加は特になし。コンパイルして、実行して、「Build」→「Clean All」をしてみたら、下記が追加された様です。
Makefile, Makefile.Debug, Makefile.Release, project debug/ release/ |
「.pro.user」は上記のとおりなので不要。また、「project」は実行ファイルなので、不要だと思います。「Clean All」する前の状態を確認すると、「ui_mainwindow.h」など気になるファイルもいくつかあったんですが、ビルドする際に自動で出来上がるもんなんですかねぇ・・。Makefileなどもアップする必要があるのかどうかちょっと気になります。
わからない点もありますが、とりあえず、プロジェクト作成時点で出来上がったものと自分で書いたもののみをリポジトリに入れていくことにします。
つづく。
【参考】
・gittutorial(7) Manual Page
・git(1) Manual Page
Git導入 - NetWalker編 [Git]
さて、前回の続きですが、NetWalkerにGitを入れようとSynapticでgitを検索してみたところ、ひっかかりませんね・・・。困りました。ところで、関係ありませんが、やっぱり、gitもサーバが必要な様です。と言うか、git:と言うプロトコルでアクセスしたい場合のみ、サーバを立てると言う事でしょうか・・?まあ、それは追々見ていきましょう。
って、なんか前回見たブログを再確認してみたら、ubuntuでは普通にビルドしてますね・・。このまま試しても、NetWalkerでは通らない様な予感・・・。どうしようかな・・。
そもそも、正式にはどうインストールせよとなってるんかな?とGitのページを探してみましたが、インスール方法については、記載が無さげです・・。そんなもん、Gitを使おうと言う様な人間なら、書かんでも分かるやろと言う立場でしょうか・・? 仕方がないので、Ubuntu 9.04にインストールしたと言うページを参考にさせていただきます。
*
まずはダウンロードですが、こちらはシェルではなく、Firefoxでgitのダウンロードページにアクセスしてダウンロードしました。ファイルは「git-1.7.5.1.tar.gz」。ダウンロード先はSDカード上に作成したext2領域です。
ここから先程のページを参考にして行きます。端末上でダウンロードしたファイルのディレクトリに移動し、下記を実行します。
とここで、何やら作業が始まった様です。makefileなどが作られてるんですかね・・。
次にmakeを行います。前回見たページも同時に参考にさせていただいているのですが、makeのする際のオプションに相違がある様です。Ubuntu 9.04に入れたと言うページでは「make all doc」、前回見たページでは「make」のみ。おそらく、前者の方はドキュメントも入れてくれるのであろうと予想して、前者の方で実行する事にします。
ビルドが始まりました。エラーが出なかったらいいですねぇ・・。
*
と祈ってたのに・・。エラーが出てしまいました。最後の部分は下記の通りです。
「/bin/sh: asciidoc: not found」について、「/home/xxxxxx/src/git/git-1.7.5.1/Documentation」の中を調べてみたところ、「asciidoc.conf」はあるものの「asciidoc」は確かに無いです。なんでですかね〜・・・。
doc側の生成に失敗している様なので、「make」のみに逃げてしまいます。再度、このまま実行してみます。するとこんな感じ。
・・・成功しているのかどうかがよくわかりません・・。途中のエラーメッセージともつぶやきとも分からない一行が気になってしまいます・・。失敗??
なんか、ダメな気もしますが、取りあえずインストールを強行してみます。
・・・う〜ん、エラーは出ませんでしたが、成功したとも出ないまま、何となくインストールが完了した様です。コマンドが入っているのかどうか確かめてみたところ一応、入ってはいる様です。
後で何か不具合が出そうな気もしないでもないですが、取りあえずは導入成功と言う事で・・。
【参考】
・Installing git on Ubuntu 9.04 (Jaunty) - zobie's blog
・せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで - 僕は発展途上技術者
以下、いろいろ検索してた時に見つけたサイトのメモです。本記事には特に関係ありません・・。
・Netwalker/PC-Z1/kernel/2.6.31
・darion76 / linux-sharp-netwalker-2.6.31 - github
・NetWalker - 備忘録
・rep/gitの使い方 - Android Zaurusの日記
・git/gitで日本語を扱う方法 - TOBY SOFT wiki
って、なんか前回見たブログを再確認してみたら、ubuntuでは普通にビルドしてますね・・。このまま試しても、NetWalkerでは通らない様な予感・・・。どうしようかな・・。
そもそも、正式にはどうインストールせよとなってるんかな?とGitのページを探してみましたが、インスール方法については、記載が無さげです・・。そんなもん、Gitを使おうと言う様な人間なら、書かんでも分かるやろと言う立場でしょうか・・? 仕方がないので、Ubuntu 9.04にインストールしたと言うページを参考にさせていただきます。
*
まずはダウンロードですが、こちらはシェルではなく、Firefoxでgitのダウンロードページにアクセスしてダウンロードしました。ファイルは「git-1.7.5.1.tar.gz」。ダウンロード先はSDカード上に作成したext2領域です。
ここから先程のページを参考にして行きます。端末上でダウンロードしたファイルのディレクトリに移動し、下記を実行します。
tar -xzf git-1.7.5.1.tar.gz cd git-1.7.5.1/ ./configure |
とここで、何やら作業が始まった様です。makefileなどが作られてるんですかね・・。
次にmakeを行います。前回見たページも同時に参考にさせていただいているのですが、makeのする際のオプションに相違がある様です。Ubuntu 9.04に入れたと言うページでは「make all doc」、前回見たページでは「make」のみ。おそらく、前者の方はドキュメントも入れてくれるのであろうと予想して、前者の方で実行する事にします。
make all doc |
ビルドが始まりました。エラーが出なかったらいいですねぇ・・。
*
と祈ってたのに・・。エラーが出てしまいました。最後の部分は下記の通りです。
GEN bin-wrappers/test-mktemp make -C Documentation all make[1]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1/Documentation' に入ります GEN doc.dep make[2]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1' に入ります make[2]: `GIT-VERSION-FILE' は更新済みです make[2]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1' から出ます make[1]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1/Documentation' から出ます make[1]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1/Documentation' に入ります make[2]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1' に入ります make[2]: `GIT-VERSION-FILE' は更新済みです make[2]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1' から出ます ASCIIDOC git-add.html /bin/sh: asciidoc: not found make[1]: *** [git-add.html] エラー 127 make[1]: ディレクトリ `/home/xxxxxx/src/git/git-1.7.5.1/Documentation' から出ます make: *** [doc] エラー 2 |
「/bin/sh: asciidoc: not found」について、「/home/xxxxxx/src/git/git-1.7.5.1/Documentation」の中を調べてみたところ、「asciidoc.conf」はあるものの「asciidoc」は確かに無いです。なんでですかね〜・・・。
doc側の生成に失敗している様なので、「make」のみに逃げてしまいます。再度、このまま実行してみます。するとこんな感じ。
xxxxxx@xxxxxx:~/src/git/git-1.7.5.1$ make SUBDIR git-gui SUBDIR gitk-git make[1]: `all' に対して行うべき事はありません. SUBDIR perl SUBDIR git_remote_helpers SUBDIR templates |
・・・成功しているのかどうかがよくわかりません・・。途中のエラーメッセージともつぶやきとも分からない一行が気になってしまいます・・。失敗??
なんか、ダメな気もしますが、取りあえずインストールを強行してみます。
sudo make install |
・・・う〜ん、エラーは出ませんでしたが、成功したとも出ないまま、何となくインストールが完了した様です。コマンドが入っているのかどうか確かめてみたところ一応、入ってはいる様です。
$ git --version git version 1.7.5.1 |
後で何か不具合が出そうな気もしないでもないですが、取りあえずは導入成功と言う事で・・。
【参考】
・Installing git on Ubuntu 9.04 (Jaunty) - zobie's blog
・せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで - 僕は発展途上技術者
以下、いろいろ検索してた時に見つけたサイトのメモです。本記事には特に関係ありません・・。
・Netwalker/PC-Z1/kernel/2.6.31
・darion76 / linux-sharp-netwalker-2.6.31 - github
・NetWalker - 備忘録
・rep/gitの使い方 - Android Zaurusの日記
・git/gitで日本語を扱う方法 - TOBY SOFT wiki
Git導入 [Git]
SDツールの作成を中断する際、ソースの受け渡し方法を変えたいとか書いていましたが、MacとNetWalkerの間でソースのコピーで受け渡しするのは煩雑なので、何かバージョン管理ツールを導入したいと思っていました。実は、無料のソースコードサーバとしてSourceForge.jpを利用させていただこうかと考えていたのですが、領域だけ浪費してだらだらやってたら、さすがに怒られるかも知れないので、利用させていただくのはちゃんとものができてからにしようと思いとどまりました。と言う事で、自前のMac miniにGitのサーバを導入する事にしました。ころころ内容を入れ替えてなんなんですが、今回はその内容でもお届け致します。
さて、まずは、gitのサイトから、最新バージョンを落とす事にします。Mac用のダウンロードページに行ってみるとたくさんのバージョンが・・・。最新は1.7.5の様ですが、「i386」の方を落とせばいいのか、「x86_64」の方を落とせばいいのかがよくわかりません。
たぶん「x86_64」
私のMac miniはCore2Duoを搭載していて、SnowLeopardのアプリも64bitのものが動いているみたいなので、たぶん「git-1.7.5-x86_64-leopard.dmg」の方でよかろうと、そちらを落としました。
落としたディスクイメージを開くと、インストーラとドキュメントが含まれていました。インストーラを実行すると「/usr/local/git」にインストールされるとのことです。また、シェルスクリプトもついてるのですが、こちらは何かGUIアプリでgitを利用する際に実行すればいいとの事。当面ターミナルから操作する予定ですので、将来的にいるかもしれませんが、困った時に実行する事にしましょう。また、アップグレードする際は、最新のものをダウンロードして普通にインストールすればいいとの事。上書きでうまく行く様です。アンインストールは、同梱の「uninstall.sh」でOKとの事。
では、インストールしましょう。
特にトラブル無し
いきなりですが、特にトラブルに見舞われる事も無く、インストールは成功した様です。gitって、使い方を全く知らないんですが、何をどうすればいいのやら・・。取りあえず、ターミナルで「git」と打ってみましたところ・・・。
入っている様子
ちゃんと入っているみたいです。し、動いてるみたいですね。って、クライアントはこれでいいんでしょうが、サーバ側がちゃんと動いているのかどうかがよくわかりません。
*
こちらを読んでみたところ、何となく、サーバっていないんですかね・・? 今、考えているのは、Mac miniにメインのリポジトリを作成し、それをNetWalkerとMac miniで共有すると言う風にしたいと思っているので、よく理解できていませんが、とりあえず管理したい元ソースがNetWalker上にあるので、NetWalkerにもgitを入れて、実際に作業してみる事にします。
と言う事で、つづく。
【参考】
・git
・Git SCM Wiki
・Git User's Manual
・Git入門
・せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで - 僕は発展途上技術者
さて、まずは、gitのサイトから、最新バージョンを落とす事にします。Mac用のダウンロードページに行ってみるとたくさんのバージョンが・・・。最新は1.7.5の様ですが、「i386」の方を落とせばいいのか、「x86_64」の方を落とせばいいのかがよくわかりません。
たぶん「x86_64」
私のMac miniはCore2Duoを搭載していて、SnowLeopardのアプリも64bitのものが動いているみたいなので、たぶん「git-1.7.5-x86_64-leopard.dmg」の方でよかろうと、そちらを落としました。
落としたディスクイメージを開くと、インストーラとドキュメントが含まれていました。インストーラを実行すると「/usr/local/git」にインストールされるとのことです。また、シェルスクリプトもついてるのですが、こちらは何かGUIアプリでgitを利用する際に実行すればいいとの事。当面ターミナルから操作する予定ですので、将来的にいるかもしれませんが、困った時に実行する事にしましょう。また、アップグレードする際は、最新のものをダウンロードして普通にインストールすればいいとの事。上書きでうまく行く様です。アンインストールは、同梱の「uninstall.sh」でOKとの事。
では、インストールしましょう。
特にトラブル無し
いきなりですが、特にトラブルに見舞われる事も無く、インストールは成功した様です。gitって、使い方を全く知らないんですが、何をどうすればいいのやら・・。取りあえず、ターミナルで「git」と打ってみましたところ・・・。
入っている様子
ちゃんと入っているみたいです。し、動いてるみたいですね。って、クライアントはこれでいいんでしょうが、サーバ側がちゃんと動いているのかどうかがよくわかりません。
*
こちらを読んでみたところ、何となく、サーバっていないんですかね・・? 今、考えているのは、Mac miniにメインのリポジトリを作成し、それをNetWalkerとMac miniで共有すると言う風にしたいと思っているので、よく理解できていませんが、とりあえず管理したい元ソースがNetWalker上にあるので、NetWalkerにもgitを入れて、実際に作業してみる事にします。
と言う事で、つづく。
【参考】
・git
・Git SCM Wiki
・Git User's Manual
・Git入門
・せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで - 僕は発展途上技術者
プロパティ値の型 [iCalendar]
前回まではプロパティパラメータについてみてきましたが、今回はRFC5545の3.3節、プロパティ値の型について見ていきます。
各プロパティ値にはそれぞれに対する値にデフォルトの型が定められていて、何も指定が無ければ、プロパティ値はそのデフォルトの型となっています。ただし、プロパティ値の型を変更したい場合は、「VALUE」パラメータで他の型を設定します(MUST)。
各型について、表にまとめていきます。
この節でも時刻に関する記述は詳細に書かれていました。が、パラメータの時と同様、時刻については後でまとめて取り上げる事にします。
「RECUR」型は、内容が多岐にわたっていて、詳しく書かれているので、次回に回そうと思います。
と言う事で、つづく。
各プロパティ値にはそれぞれに対する値にデフォルトの型が定められていて、何も指定が無ければ、プロパティ値はそのデフォルトの型となっています。ただし、プロパティ値の型を変更したい場合は、「VALUE」パラメータで他の型を設定します(MUST)。
各型について、表にまとめていきます。
BINARY | Binary | |
binary = *(4b-char) [b-end] b-end = (2b-char "==") / (3b-char "=") b-char = ALPHA / DIGIT / "+" / "/" | ||
プロパティ値にインラインでバイナリデータを記載する場合の型。バイナリデータはBASE64(RFC2045)でエンコードされなければならない(MUST)。また、BINARY型を使うプロパティは「ENCODING」パラメータを「ENCODING=BASE64」と指定しなければならない。(MUST) | ||
BOOLEAN | Boolean | |
boolean = "TRUE" / "FALSE" | ||
「TRUE」か「FALSE」を設定する型。値は大文字小文字を区別しない。 | ||
CAL-ADDRESS | Calendar User Address | |
cal-address = uri | ||
calendar user addressの識別に使用。値にはURI(RFC3986)もしくは、URI向けにIANAに登録されている形式(IANA-registered form)を使用。メールアドレスを使用する場合はmailto URI(RFC2368)を使用しなければならない(MUST)。 | ||
DATE | Date | |
date = date-value date-value = date-fullyear date-month date-mday date-fullyear= 4DIGIT date-month = 2DIGIT date-mday = 2DIGIT | ||
日付(calendar date)を表すために使用。複数の日付を指定する場合は、COMMA(0x2c)で区切る。年月日の間に区切りはない。例えば、1997年7月14日は下記の様に示す。 19970714 | ||
DATE-TIME | Date-Time | |
date-time = date "T" time | ||
正確な日時を指定するために使用。複数の日時を指定する際は、COMMA(0x2c)で区切る。日付はDATE型の値を、時刻はTIME型の値を用い、それらを大文字の「T」でつなげる。日時にUTCオフセットは使用されない(MUST NOT)。表記方法はローカル日時とUTC日時の2種類があり、ローカル日時については「TZID」パラメータを付加する場合と付加しない場合の2種類の使用法がある。以下に「DTSTART」プロパティでニューヨークでの1997年7月14日午後1時30分の表記例を示す。 | ||
ローカル時刻 | DTSTART:19970714T133000 | |
UTC時刻 | DTSTART:19970714T173000Z | |
ローカル時刻TZID付き | DTSTART;TZID=America/New_York:19970714T133000 | |
DURATION | Duration | |
dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" | ||
プロパティの期間を示すために用いる。複数の期間がある場合はCOMMA(0x2c)で区切る。フォーマットには「〜週」、「〜日」と言った表記や、正確な時間表記がある。サマータイムへの移行時、サマータイムからの復帰時などの様に期間が飛ぶ場合は正確な期間の計算の考慮には入れない(MUST NOT)。期間の計算時は大きい単位のコンポーネントから足していく(MUST)。負の期間は主にスケジュールのアラームの取りが賭して用いられる。例えば、15日5時間20秒は下記の様に表記する。 P15DT5H0M20S | ||
FLOAT | Float | |
float = (["+"] / "-") 1*DIGIT ["." 1*DIGIT] | ||
実数値の表記に使用。複数の実数値を表記する場合はCOMMA(0x2c)で区切る。 | ||
INTEGER | Integer | |
integer = (["+"] / "-") 1*DIGIT | ||
整数値の表記に使用。複数の整数値を表記する場合はCOMMA(0x2c)で区切る。整数値の範囲は-2147483648〜2147483647(32bit)。 | ||
PERIOD | Period of Time | |
period = period-explicit / period-start period-explicit = date-time "/" date-time period-start = date-time "/" dur-value | ||
正確な期間を表すのに使用。複数の期間がある場合は、COMMA(0x2c)で区切る。開始日時は終了日時よりも前の日時でなければならない(MUST)。表記の方法は2種類ある。一つ目は開始日時と終了日時を示すもの、もう一つは、開始日と正の期間(〜日とか)を示すもの。それぞれの表記例を下記に示す。 | ||
1997/1/1 18:00〜1997/1/2 7:00UTC | 19970101T180000Z/19970102T070000Z | |
1997/1/1 18:00から5時間30分 | 19970101T180000Z/PT5H30M | |
RECUR | Recurrence Rule | |
recur = recur-rule-part *( ";" recur-rule-part ) recur-rule-part = ( "FREQ" "=" freq ) / ... | ||
繰り返しのルールを示す型ですね。ルールはルール名に対して値を設定すると言う形で、それを複数組み合わせて示す様です。ルールどうしは、SEMICOLON(0x3b)で区切ります。個々のルールは一回のみ指定(MUST)。アプリケーションは任意の順でルールを受け付けなければならない(MUST)。互換性のため、「FREQ」ルールは最初に記載する事(MUST)。などなど、詳細は他にまとめます。 | ||
FREQ | SECONDLY | |
MINUTELY | ||
HOURLY | ||
DAILY | ||
WEEKLY | ||
MONTHLY | ||
YEARLY | ||
UNTIL | date / date-time | |
COUNT | 1*DIGIT | |
INTERVAL | 1*DIGIT | |
BYSECOND | ( 1*2DIGIT *("," 1*2DIGIT) ) ; 0-60 | |
BYMINUTE | ( 1*2DIGIT *("," 1*2DIGIT) ) ; 0-59 | |
BYHOUR | ( 1*2DIGIT *("," 1*2DIGIT) ) ; 0-23 | |
BYDAY |
( weekdaynum *("," weekdaynum) ) weekdaynum = [["+" / "-"] 1*2DIGIT] weekday ; 1-53 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" | |
BYMONTHDAY |
( monthdaynum *("," monthdaynum) ) monthdaynum = ["+" / "-"] 1*2DIGIT ; 1-31 | |
BYYEARDAY |
( yeardaynum *("," yeardaynum) ) yeardaynum = ["+" / "-"] 1*3DIGIT ; 1-366 | |
BYWEEKNO |
["+" / "-"] 1*2DIGIT ; 1-53 | |
BYMONTH | ( = 1*2DIGIT *("," = 1*2DIGIT) ) ; 1-12 | |
BYSETPOS | ( ["+" / "-"] 1*2DIGIT *("," ["+" / "-"] 1*2DIGIT) ) ; 1-366 | |
WKST | "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" | |
TIME | Time | |
time = time-hour time-minute time-second [time-utc] time-hour = 2DIGIT ; 00-23 time-minute = 2DIGIT ; 00-59 time-second = 2DIGIT ; 00-60 time-utc = "Z" | ||
時刻を示す型。複数の時刻を表記する場合は、COMMA(0x2c)で区切る。表記は24時間表示。秒に60が設定される場合「うるう秒」を示す(MUST)。1秒未満の値はサポートしない。 | ||
URI | URI | |
uri = <As defined in Section 3 of [RFC3986]> | ||
この型はバイナリデータへの参照目的に使用される。URIの定義はRFC3986に従う(MUST)。プロパティパラメータがこの型の場合、URIはDQUOTE(0x22)で括る(quoted-string)(MUST)。 | ||
UTC-OFFSET | UTC Offset | |
utc-offset = ("+" / "-") time-hour time-minute [time-second] | ||
UTCローカル時刻に対するオフセット値を示すために使用する。「+」はUTC時刻よりも時間が進んでいる場合、「-」はUTC時刻よりも時間が遅くなる場合を示す。「-0000」、「-000000」は許されない。time-secondは60に設定してはいけない(MUST NOT)。設定されない場合のデフォルト値は0である。 |
この節でも時刻に関する記述は詳細に書かれていました。が、パラメータの時と同様、時刻については後でまとめて取り上げる事にします。
「RECUR」型は、内容が多岐にわたっていて、詳しく書かれているので、次回に回そうと思います。
と言う事で、つづく。