タグ: linux

  • git を使う

    Vine Linux 4.2 に git のパッケージがあったので、使ってみました。

    下記の手順の中で、別の場所に新しいディレクトリをまったく作らないで作業ができている、というところが、CVS や Subversion と異なる点(手軽さという意味で大きなメリット)だと思います。

    インストール(Ubuntu でも同様)

    $ ssh yellow
    $ sudo apt-get update
    $ sudo apt-get install git-core
    
    • Vine 3.x には git-core パッケージはないみたいです

    個人のデフォルトを設定する

    git config --global user.email "nishimoto@m.ieice.org"
    git config --global user.name "Takuya Nishimoto"
    
    • ~/.gitconfig に書き込まれるようです

    既存のディレクトリをバージョン管理下におく。ここでは職場で使っている bibdb という自前ツールの例。

    $ cd /export/htdocs/html/bibdb/
    $ git init
    
    • カレントディレクトリに .git ディレクトリが作成され、これがレポジトリになる

    管理したいファイルを追加する

    $ git add *.php *.txt
    $ git add cgi-bin/update_publication.cgi
    $ git add *.jpg *.gif .htaccess
    

    追跡されているファイルとされていないファイルを確認する

    $ git status
    

    commit する

    $ git commit -m "first commit"
    
    • これにより、追跡されているファイルが .git 内に保存され、比較・復元が可能になる

    編集してみる

    $ emacs -nw 00readme.txt
    

    差分を確認

    $ git diff
    diff --git a/00readme.txt b/00readme.txt
    index ff26fee..c15f626 100644
    --- a/00readme.txt
    +++ b/00readme.txt
    @@ -4,3 +4,7 @@
    TODO:
    <A5><A2><A5><C3><A5><D7><A5><ED><A1><BC><A5><C9><A4><B5><A4><EC><A4><BF>pdf<A4><F2>chmod 644<A4><B9><A4>
    +
    +2009-03-06 by nishimoto
    +
    + $ git init
    
    • TODO: 文字化けの解決
      • 環境変数 GIT_PAGER を使うのかな?

    差分を commit する

    $ git commit --all -m "readme updated"
    [master]: created b5f0737: "readme updated"
    1 files changed, 4 insertions(+), 0 deletions(-)
    

    履歴を確認する

    $ git log
    commit b5f073788c35befd95f5a907777c221f17e63d1e
    Author: Takuya Nishimoto <nishimoto@m.ieice.org>
    Date:   Fri Mar 6 17:01:05 2009 +0900
    readme updated
    commit 42dff939ec85d2faa212ba42ff617f5fdac215e6
    Author: Takuya Nishimoto <nishimoto@m.ieice.org>
    Date:   Fri Mar 6 16:42:51 2009 +0900
    first commit
    

    ブランチを確認する

    $ git branch
    * master
    

    ブランチを作る

    $ git branch experiment
    $ git branch
    experiment
    * master
    

    別のブランチで作業してみる

    $ git checkout experiment
    Switched to branch "experiment"
    
    $ emacs -nw 00readme.txt
    $ git diff
    diff --git a/00readme.txt b/00readme.txt
    index c15f626..be17e40 100644
    --- a/00readme.txt
    +++ b/00readme.txt
    @@ -8,3 +8,8 @@ TODO:
    2009-03-06 by nishimoto
    $ git init
    +
    +2009-03-06 by nishimoto
    +
    + git branch : experiment
    +
    

    experiment ブランチに commit する

    $ git commit --all -m "00readme modified"
    [experiment]: created 609c427: "00readme modified"
    1 files changed, 5 insertions(+), 0 deletions(-)
    

    master ブランチに戻す

    $ git checkout master
    Switched to branch "master"
    $ cat 00readme.txt
    [yellow]
    /home/httpd/html/bibdb/
    TODO:
    アップロードされたpdfをchmod 644する
    2009-03-06 by nishimoto
    $ git init
    

    experiment の更新を master にマージする

    $ git merge experiment
    Updating b5f0737..609c427
    Fast forward
    00readme.txt |    5 +++++
    1 files changed, 5 insertions(+), 0 deletions(-)
    

    マージできたことを確認する

    $ git branch
    experiment
    * master
    $ cat 00readme.txt
    
    [yellow]
    /home/httpd/html/bibdb/
    TODO:
    アップロードされたpdfをchmod 644する
    2009-03-06 by nishimoto
    $ git init
    2009-03-06 by nishimoto
    git branch : experiment
    

    リンク

    更新記録

    • 2009-03-10 : 事前に git config で user.name などを指定するようにしました。
  • Ubuntu Linux 8.10 + freeglut3 + FreeType2

    GLUT で日本語を表示するのは面倒だと思っていましたが、意外に簡単でした。
    とはいえ、例によって単純なコピーペーストでは成功しなかったので、メモしておきます。

    // main.cpp
    // encoding : UTF-8
    //
    // sudo apt-get install libftgl-dev freeglut3-dev
    // g++ -g -I/usr/include/freetype2 -lglut -lftgl main.cpp
    //
    #include <GL/glut.h>
    #include <FTGL/ftgl.h>
    #define FONT "/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf"
    FTFont *font;
    void display(void)
    {
    glClearColor(0.0, 0.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glClearColor(1.0, 1.0, 1.0, 1.0);
    FTPoint point(-1, 0, 0);
    font->Render("日本", -1, point);
    glFlush();
    }
    int main(int argc, char *argv[])
    {
    font = new FTGLPolygonFont(FONT);
    if (font->Error()) exit(1);
    font->FaceSize(0);
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutCreateWindow(argv[0]);
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
    }
  • Ubuntu Linux 8.10 + Lenovo ThinkPad X300

    トラックポイントを青ボタンと同時に押したときにスクロールする設定。

    $ sudo gedit /etc/X11/xorg.conf
    Section "ServerFlags"
    Option "AutoAddDevices" "false"
    EndSection
    Section "InputDevice"
    Identifier	"Configured Mouse"
    Driver		"mouse"
    Option		"CorePointer"
    Option    	"Emulate3Buttons"     	"false"
    Option          "EmulateWheel" 		"true"
    Option          "EmulateWheelTimeOut" 	"200"
    Option          "EmulateWheelButton" 	"2"
    Option          "XAxisMapping"        	"6 7"
    Option          "YAxisMapping"        	"4 5"
    Option          "ZAxisMapping"        	"4 5"
    EndSection
    

    参考リンク: