iakioの日記 RSSフィード

2008-09-20

remote addしてmerge

| 18:21 | remote addしてmerge - iakioの日記 を含むブックマーク はてなブックマーク - remote addしてmerge - iakioの日記

http://git.postgresql.org/ を見てみたら、実はcteに関しては git://git.postgresql.org/git/~davidfetter/cte/.git/

というリポジトリが用意されてました。

なので、これをcloneしつつ、本体の方をgit-remote addする方向で。

git-rebaseあたりも調べておく必要がある気がしてきました。

% git-clone git://git.postgresql.org/git/~davidfetter/cte/.git/ 
#### 小一時間

% cd cte
% git-log
commit c02e8785f76bbad7136e41b0e8f0e9d97cbf616a
Author: David Fetter <davidfetter@qonos.postgresql.org>
Date:   Wed Sep 17 23:58:34 2008 +0000

    Ishii-san's latest patch

commit a278fc38a438a5c7536388a795d45ee6899741ab
...

#### remote追加
% git-remote add PostgreSQL git://git.postgresql.org/git/postgresql.git
% git-remote
PostgreSQL
origin
% git-fetch PostgreSQL
#### これは30秒くらいでおわります
remote: Counting objects: 7687, done.
...
 * [new branch]      master     -> PostgreSQL/master

#### 本体との比較
% git-diff PostgreSQL/master..HEAD

diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index 7003092..40e0460 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -6664,9 +6664,6 @@
        A list of the frequencies of the most common values or elements,
        i.e., number of occurrences of each divided by total number of rows.
        (NULL when <structfield>most_common_vals</structfield> is.)
-       For some datatypes such as <type>tsvector</>, it can also store some
-       additional information, making it longer than the
-       <structfield>most_common_vals</> array.
       </entry>
      </row>
...
#### 本体の方が大分進んでしまっている

#### ピリオド三つだと違う結果になる
% git-diff PostgreSQL/master...HEAD
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index e463d15..add0ccd 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -20,6 +20,7 @@ PostgreSQL documentation

  <refsynopsisdiv>
 <synopsis>
+[WITH [RECURSIVE] <replaceable class="parameter">with_query</replaceable> [, ...] ]
 SELECT [ ALL | DISTINCT [ ON ( <replaceable class="parameter">expression</replaceable> [, ...] ) ] ]


#### 本体の進んだ分を取り込む
% git-merge PostgreSQL/master
Merge made by recursive.
 doc/src/sgml/catalogs.sgml          |    3 +
 doc/src/sgml/libpq.sgml             |   80 +++++++--
 src/backend/storage/file/fd.c       |   19 ++-
 src/backend/tsearch/Makefile        |    2 +-
 src/backend/tsearch/ts_selfuncs.c   |  363 +++++++++++++++++++++++++++++++++++
 src/backend/tsearch/ts_typanalyze.c |   82 +++++++--
 src/include/catalog/catversion.h    |    2 +-
 src/include/catalog/pg_operator.h   |    8 +-
 src/include/catalog/pg_proc.h       |    6 +-
 src/include/catalog/pg_statistic.h  |    8 +-
 src/include/commands/trigger.h      |    2 +-
 src/include/tsearch/ts_type.h       |    3 +
 src/interfaces/ecpg/nls.mk          |   11 +
 src/interfaces/libpq/exports.txt    |    1 +
 src/interfaces/libpq/fe-exec.c      |   51 +++--
 src/interfaces/libpq/libpq-events.c |   33 ++++
 src/interfaces/libpq/libpq-events.h |   13 +-
 src/interfaces/libpq/libpq-int.h    |    1 +
 18 files changed, 623 insertions(+), 65 deletions(-)
 create mode 100644 src/backend/tsearch/ts_selfuncs.c

#### git-mergeすると自動的にcommitされるみたいです。
#### --no-commitというオプションもある様子。
% git-log
commit 44fa46c1c171091e9b22309305a43cc6859a9c5a
Merge: c02e878... 4d42c9b...
Author: my name <iakio@xxxxxxxxxxx>
Date:   Sat Sep 20 18:03:05 2008 +0900

    Merge commit 'PostgreSQL/master'

commit 4d42c9bafdf2dbd45f4f3f458746479120dd1311
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date:   Fri Sep 19 20:06:13 2008 +0000

    Add a PQfireResultCreateEvents function to allow applications to mimic the
    sequence of operations that libpq goes through while creating a PGresult.
    Also, remove ill-considered "const" decoration on parameters passed to
    event procedures.

AymanAyman2012/12/26 11:26I'm gareutfl you made the post. It's cleared the air for me.

ohdcsofjdrohdcsofjdr2012/12/27 22:47xjLcqq , [url=http://ynbuaamknfpg.com/]ynbuaamknfpg[/url], [link=http://lohlfnrlajpp.com/]lohlfnrlajpp[/link], http://soaubmcthhff.com/

トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20080920

2008-09-19

branchとかmergeとか

| 00:22 | branchとかmergeとか - iakioの日記 を含むブックマーク はてなブックマーク - branchとかmergeとか - iakioの日記

というわけでgitを勉強する日記になりましたw。

cloneしてbranchを作って9/18のcteパッチを取り込んでみました。

本当はもっと色々ハマりながらやったので、実際とちょっと違うかもしれません。

そうそう、ハマりといえば、git-commit -aは変更したファイルに関してはgit-addgit-commitと同じだけど、新規追加したファイルを追加しくれるわけではないみたいなので、そういうのはgit-addしなきゃダメです。

#### 初期設定。~/.gitconfigを書き換えてるだけだと思う
% git-config --global user.name "my name"
% git-config --global user.email iakio@xxxxxxxxxxx
% cat ~/.gitconfig
[user]
        name = "my name"
        email = iakio@xxxxxxxxxxx

#### リポジトリのclone
% git clone http://git.postgresql.org/git/postgresql.git 

#### 小一時間経過
% cd postgresql

#### branch作成
% git branch my-cte-branch
% git checkout my-cte-branch
% git branch
  master
* my-cte-branch

#### patch適用
% zcat ../../cte_0918.patch.gz | patch -p1
% git status
# On branch my-cte-branch
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   doc/src/sgml/ref/select.sgml
#       modified:   src/backend/commands/explain.c
#       modified:   src/backend/executor/Makefile
...
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       doc/src/sgml/ref/select.sgml.orig
#       src/backend/commands/explain.c.orig
#       src/backend/executor/Makefile.orig
...
no changes added to commit (use "git add" and/or "git commit -a")

#### おっと、.origファイルが邪魔なので消します
% find . -name '*.orig' | xargs rm

% git status
# On branch my-cte-branch
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   doc/src/sgml/ref/select.sgml
#       modified:   src/backend/commands/explain.c
#       modified:   src/backend/executor/Makefile
...
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       src/backend/executor/nodeRecursion.c
#       src/backend/executor/nodeRecursivescan.c
#       src/backend/parser/parse_cte.c
#       src/include/executor/nodeRecursion.h
#       src/include/executor/nodeRecursivescan.h
#       src/include/parser/parse_cte.h
#       src/test/regress/expected/recursive.out
#       src/test/regress/sql/recursive.sql
no changes added to commit (use "git add" and/or "git commit -a")

#### よさそうなのでcommit
% git-add .
% git-commit

% git-status
# On branch my-cte-branch
nothing to commit (working directory clean)

#### とかやってる間に本家が更新されていたのでfetch。originに取り込まれる
% git-fetch
Getting alternates list for http://git.postgresql.org/git/postgresql.git
Getting pack list for http://git.postgresql.org/git/postgresql.git
Getting index for pack f40cd554307fb4e9747a6f12c72012f13e0e1659
Getting index for pack 2c57b19bc5ee96930b74040c45942700e345b171
Getting index for pack f8f3443cda277f3c05170eec7fc63952a3cfbe48
Getting index for pack ac5443ce09bf6bf3dd4d748ba011fb497ded6573
Getting pack ac5443ce09bf6bf3dd4d748ba011fb497ded6573
 which contains 78dc06d530a4f421b8d4a3ffc06c8e8bbeb2f2fa
walk 78dc06d530a4f421b8d4a3ffc06c8e8bbeb2f2fa
From http://git.postgresql.org/git/postgresql
   a278fc3..78dc06d  master     -> origin/master


#### 内容確認
% git-log master..origin/master
commit 78dc06d530a4f421b8d4a3ffc06c8e8bbeb2f2fa
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:   Fri Sep 19 04:57:10 2008 +0000

    Optimize CleanupTempFiles by having a boolean flag that keeps track of wheth
    there are FD_XACT_TEMPORARY files to clean up at transaction end.

    Per performance profiling results on AWeber's huge systems.

    Patch by me after an idea suggested by Simon Riggs.

#### originをmerge
% git-merge origin
 src/backend/storage/file/fd.c |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)
トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20080919

2008-09-18

こちらもgit勉強中

| 22:47 | こちらもgit勉強中 - iakioの日記 を含むブックマーク はてなブックマーク - こちらもgit勉強中 - iakioの日記

ウチでは git clone http://git.postgresql.org/git/postgresql.git に小一時間かかりましたよ--#。

ちょっといじってみた感じ。index(索引)という概念がよくわからないというか他のバージョン管理システムと違う感じがしました。

ファイルを追加した時にgit-addが必要なのはよくある話だけど、ファイルを変更した時もgit-addしてからgit-commitする(か、git-commit -a)必要がある模様。

変更直後だと、

/tmp/git-test/orig$ git-status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   test1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

となり、git-addすると、

/tmp/git-test/orig$ git-add .
/tmp/git-test/orig$ git-status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   test1.txt
#

となって、これでやっとcommitできる。

あとresetが賢そう。git-resetには--mixed(デフォルト)と--softと--hardという三種類があって、mixedは、git-addされたのを元に戻す(Changes to be committedをChanges but not updatedにする)。

softは、commitログをミスった時なんかにgit-reset --soft HEAD^とかで、直前のcommitを取り消す(けど作業ディレクトリの中身はそのまま)。

hardを使うと、commitを取り消して、更に作業ディレクトリの内容も元に戻す、ということだと思います。たぶん。commitを指定しないgit-reset --hardはちょうどcvs update -Cとかsvn revertに相当するのかな。

git-resetはローカルでごちょごちょやってる最中に使うべきもので、他の人と共有してるような公開リポジトリではgit-revertを使うらしいですがまだこっちは見てません。

umitanukiumitanuki2008/09/19 10:55自分も今回はじめて触ってますが、使うほどに良さがわかってきました。git remote add でHEADを追加すればHEADと自分のレポジトリとの協調ができるし。

トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20080918