SSブログ

リポジトリからのチェックアウト [Git]

前回でようやくリポジトリができたと思ってますが、さっそくMacにその内容をコピーしたいと思います。それを「チェックアウト」と言うのかどうか良くわかっていませんでしたが、「コピー」と言うのが近い様ですね。チュートリアルによると、「clone」と言うコマンドを利用しています。

と言う事で、さっそく実行してみます。

git clone /Volume/share/src/sdtool/SDTool SDTool


「/Volume/share/src/sdtool/SDTool」はMac側から見ているNetWalker上のリポジトリのあるディレクトリ、「SDTool」はコピー先でMac上のリポジトリとなるディレクトリです。あっさりコピーできました。と言う事で、個人で利用する範囲ではサーバの立ち上げは不要ですね。なお、コピー先のディレクトリは無ければ自動で作成するとの記載があったので、わざとディレクトリを作成せずに試してみましたが、ちゃんと自動で作成されました。

コピー先のディレクトリにはコミットされていたファイルと共に「.git」と言うファイルができています。これは、Finder上では見えないので、ターミナルで確認する必要がありました。

さて、コピーができたので、さっそくMac上でも動作を確かめます。Qt Creator上でプロジェクトを開き、ビルド&実行してみたところ、問題なくウィンドウが立ち上がりました。

11060700.png
コミットしたファイルに問題無し


なお、NetWalkerでコミットしたファイルは下記の通りです。

project.pro, main.cpp, mainwindow.cpp, mainwindow.h, mainwindow.ui
sdtoolmain.cpp, sdtoolview.cpp, sdtoolmain.h, sdtoolview.h


上段はQt Creatorが自動で作成したファイル群、下段が私が作成したファイルです。ま、これで問題が無かったと言う事で。ようやくMac上で開発する事ができますね。


つづく。





リポジトリの作成 その2 [Git]

前回の続きですが、チュートリアルの続きに従い、さっそく対象のファイルをインポートしたいと思います。

インポートしたいファイルは下記の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?

11053100.png
入力の仕方が一見しただけでは分からない


コミットメッセージを入力する様に促されています。コメントを入れない場合は、コミットは中断されるとのこと。また、「#」で始まる行は無視されるとか・・。と言うことは、複数行の入力ができるんですね。

一行入力して「Enter」を入れると普通に改行されました。バックスペースは効きません・・。どうやって、コミットを完了させればよいのでしょうか・・・???

*

調べていると、エディタを起動させたくない場合は「-m」を指定すればいいらしいです。「git commit -m "message"」の様ですね。でも、既にエディタが立ち上がってしまってます。このエディタが何かまず知りたいんですが・・・。

公式ページにも記載は無さげなんですが、どうやら、gvimと言うエディタだそうです。たぶん、vi系ですね・・・。と思ったら、Ubuntuの設定で何か標準エディタが決まってるでしょうか? 環境変数の「EDITOR」に設定されている様子。と思って、環境変数を見てみましたが、「EDITOR」と言うのは設定されて無さげです。デフォルトを変えたい時に設定するのか・・。う〜ん、情報が見つけられませんね。ちなみにたぶん、公式ページに記載が無いのは、環境に依存するからですかね・・。

*

よくわからないので、vi系のエディタであろうと言う前提で調べてみたところ、コミットが完了した様です。見たページを失念してしまいましたが、確か、「ctrl+[」でコマンドモードに遷移して、「:wq」で終了と言う感じだったと思います。

11053101.png
完了した様子



つづく。


【参考】
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」を実行します。

$ 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領域です。

ここから先程のページを参考にして行きます。端末上でダウンロードしたファイルのディレクトリに移動し、下記を実行します。

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」の方を落とせばいいのかがよくわかりません。

11050500.png
たぶん「x86_64」


私のMac miniはCore2Duoを搭載していて、SnowLeopardのアプリも64bitのものが動いているみたいなので、たぶん「git-1.7.5-x86_64-leopard.dmg」の方でよかろうと、そちらを落としました。

落としたディスクイメージを開くと、インストーラとドキュメントが含まれていました。インストーラを実行すると「/usr/local/git」にインストールされるとのことです。また、シェルスクリプトもついてるのですが、こちらは何かGUIアプリでgitを利用する際に実行すればいいとの事。当面ターミナルから操作する予定ですので、将来的にいるかもしれませんが、困った時に実行する事にしましょう。また、アップグレードする際は、最新のものをダウンロードして普通にインストールすればいいとの事。上書きでうまく行く様です。アンインストールは、同梱の「uninstall.sh」でOKとの事。

では、インストールしましょう。

11050501.png
特にトラブル無し


いきなりですが、特にトラブルに見舞われる事も無く、インストールは成功した様です。gitって、使い方を全く知らないんですが、何をどうすればいいのやら・・。取りあえず、ターミナルで「git」と打ってみましたところ・・・。

11050502.png
入っている様子


ちゃんと入っているみたいです。し、動いてるみたいですね。って、クライアントはこれでいいんでしょうが、サーバ側がちゃんと動いているのかどうかがよくわかりません。

*

こちらを読んでみたところ、何となく、サーバっていないんですかね・・? 今、考えているのは、Mac miniにメインのリポジトリを作成し、それをNetWalkerとMac miniで共有すると言う風にしたいと思っているので、よく理解できていませんが、とりあえず管理したい元ソースがNetWalker上にあるので、NetWalkerにもgitを入れて、実際に作業してみる事にします。


と言う事で、つづく。


【参考】
git
Git SCM Wiki
Git User's Manual
Git入門
せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで - 僕は発展途上技術者




   

ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。