{"serverDuration": 17, "requestCorrelationId": "f12953c41087422ba55291f4cd3ff3b9"}
{"serverDuration": 17, "requestCorrelationId": "f12953c41087422ba55291f4cd3ff3b9"}
git 1.7.5がリリースされました。変更点はいろいろありますが、なかでも今回initとcloneに追加された--separate-git-dirオプションに注目してみます。 git init --separate-git-dir=/path/to/repo git initすると普通はカレントディレクトリの下に.gitディレクトリが作られ、そこにリポジトリ情報が格納されます。ワークスペースとリポジトリが単一ディレクトリ下にあるわけですが、以下のような処理をしてリポジトリを破壊してしまった人も居ることでしょう。 $ find -print0 | xargs -0 sed -i 's/foo/bar/g' .. .git/objects/以下が壊滅 この事故はfind -print0ではなくgit ls-files -zを使うことで回避できますが、find以外にも色々と起こりえますし、そも
Redmine, git, Jenkins などプロジェクト管理ツールの状態を横断的かつリアルタイムに表示するWebアプリ『Dashbozu』を作りました。 これを使えば、一つの画面でプロジェクトの”今”の状態を把握できます。 WebSocketを用いているので、ただ開いているだけで、次々と情報を得ることができます。 iPadで開きっぱなしにして、机の上に置いておくような使い方を想定しています。 なぜこれを作ったか 一般的なソフトウェア開発現場では Redmineでチケットを作成する gitでコミットを繰り返し、中央レポジトリにpushする JenkinsによるCIが実行される 結果を確認し、Redmineのチケットを閉じる という流れで作業が進んでいきます。 これらの作業の中で、開発者は「適切な」タイミングでチェックとフィードバックをすることを求められます。 例えば、チェックのタイミング
_ git-credential-gnomekeyring gitをhttpで使う時に気になるのがパスワードの管理で、以前はcurlの設定ファイルである.netrcに生パスワードを書くか、環境変数GIT_ASKPASSでコマンドを指定して何とかするしかなかった。 git 1.7.9でcredential helperという仕組みが導入されていて、比較的簡単にパスワード管理方法を拡張できるようなので、Gnome Keyringに保存するcredential helperを書いてみた。 git-credential-gnomekeyring すでに誰かが書いてそうな気もするけど、まあいいや。 追記: やっぱりあったorz git-credential-keyring しかし、keyringという名前は一般的すぎる気が。 さらに追記: ↑のは古いAPIのようで、↓のforkだとgit 1.7.9
「Git」使ってますか? 近年、分散バージョン管理システム「Git」が急速にシェアを伸ばしています。筆者は、チケットシステムやバージョン管理の勉強会などを開催したりしていますが、Gitユーザーがかなり増えてきていると感じます。 しかしながら、そのような勉強会でアンケートを取ってみると、実案件では半分以上の人がSubversionを利用しており、Gitの導入はまだまだ進んでいません。移行コストが掛かったり、プロジェクトマネージャ層への知名度がまだまだ低いというのもありますが、理由の1つとして、ユーザー管理が煩雑であったり、アクセス制御に関する情報が不足しているということもあると思います。 そういうわけで本稿では、Gitリポジトリのユーザー管理やアクセス制御を簡単に行う「Gitolite」を紹介します。 なお、本稿ではGitの利用方法については紹介しませんので、Git自身の使い方については改め
2009/12/14 gitを知らないデザイナとgitで共同作業するには? デザイナとgitで共同作業するまでの過程をログに残しておきます。 第一段階 会社で使っているフレームワークの Vの部分(いわゆるテンプレートまわりとか)はデザイナもさわるので、 .gitignore で無視することにして、 フレームワークのMVCのVの部分を除いてプログラマしかさわらない部分だけの リポジトリを作ってgitでバージョン管理することにした。 第二段階 ところが、Vの部分はデザイナしか関わらないわけではありません。 当然のごとく、プログラマ側から 「できればVの部分もgitでバージョン管理したい」 との要望がでてきました。 第三段階 そこで、デザイナに「バージョン管理は何を使っていますか?」 と聞いてみたところ「Mac の Time Capsule です。」 と言われ若干放心状態に…。 確かにバージョン
以前gitで一度行った変更をなかったことにする方法4つを紹介しましたが、 日常的に git を使用していると他にも様々な 「なかったことにしたい」「元に戻したい」 という状況に遭遇します。 そのひとつひとつについて対処方法を紹介していきます。 目次 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。問題2: トピックブランチをマージしたけど実はまだ不完全だった。マージをやり直したい。問題3: リリース後に発覚したバグ。原因は30日前に自分が行ったコミットだった。なかったことにしたい。問題4: 新しいコミットしようとして間違えてgit commit –amendで書き換えてしまった。元に戻したい。問題5: 色々作業していたら作業ディレクトリの内容が混沌としてきた。一度綺麗な状態にしたい。問題6: 作業ディレクトリにゴミファイルが溜まってきた。一度綺麗
私の所属している会社では、2年程前にバージョン管理システムをSubversionからGitに移行し、現在まで開発フローを試行錯誤してきました。ようやく形になってきたということで、守秘義務に接触しない程度に紹介&考察していきたいと思います。 形になってきたとはいえ、まだまだ試行錯誤中ですので色々なツッコミは大歓迎です。 現在の開発フローの俯瞰図# 現在の開発フローを俯瞰してみると大体下記図のような感じになっています。途中で図を書くのが面倒になった都合上、Jenkinsさんが1人しか居ませんが、実際はmasterブランチの他にreleaseブランチも監視してもらっています。 以降この図を元に話を進めていきたと思います。 Gitoriousを利用して自由に開発# GitoriousというGitHubに似たサービスがあります。このGitoriousはオープンソースとしても公開されていますので社内に
リモートサーバにある Git リポジトリから HTTP (WebDAV) 経由で pull したり clone を作ったりする場合の注意点について,おぼえがき. 注意: Git は最近使い始めたばかりなので,正確でないかもしれません. 一般的な前準備(参考程度に) リモートサーバ(apache2/Debian を仮定)で WebDAV を有効にして,リポジトリのパスを /git にエイリアスし /git の認証設定を行う設定ファイルを Alias /git /home/akihiko/git <Location /git> Options Indexes # DAV on AuthType Basic AuthName "Git repository" AuthUserFile 適当な .htpasswd ファイルのパス Require valid-user </Location>こんな感
Git のコマンド体系は全く歴史に学ばず後世に禍根を残す酷いデザインだが、どういうわけか内部構造は大変素晴らしい。特にファイル構造を一旦キーバリュー式データストアに保存するというのは是非参考にしたいアイデアなので調べてみました。 Git 内部データストアの基本機能は、ファイル名を使わず中身だけを保存する事です。ファイル名が無くて後からどうやって保存した中身を取り出すかというと、保存時に SHA-1 という文字列が発行されるのでそれを鍵に取り出します。それでは試しにやってみます。まず準備として新しい Git レポジトリを作ります。 $ mkdir test $ cd test $ git init Initialized empty Git repository in /Users/takashi/tmp/test/.git/ blob 次に、適当な文字列を保存します。 $ echo '適当
id:bleis-tiftによるgitのフックスクリプト集がマジ便利。 gitとredmineを使ってる人はぜひ使うべき 機能 チケット番号付加 id/12というブランチで作業してるときは、コミットメッセージの末尾にrefs 12を自動でつけてくれます Redmineのチケットごとにブランチを切るようにすると、マジ便利 masterブランチへのコミット拒否 masterブランチへのコミットを拒否する 必ずトピックブランチを切るようになる pushされたときにチケットIDのないコミットの拒否 チケットIDのないコミットのpushを拒否します ダウンロード・インストール方法 https://github.com/bleis-tift/Git-Hooks に書いてある通りにすれば簡単にインストールできます
git-svn のちょっとイイ話 Git-SVN を使ってる人が周りになんとなく増えてきたので。 SVN クライアントとして Git を使える利点は、ネットワークどうこうというよりは、 Git の便利機能が使えまくることなんじゃないかと思います。 Git が SVN よりも圧倒的に優れている点としては、ブランチのマージが楽という点が挙げられると思いますが、 Git-SVN を使うことで、 SVN ユーザーもこの Git の優れたマージ機能の恩恵を被れます。 SVN は CVS よりブランチ作りやすくなってるけど、マージが困難なので結局ロクにブランチ切らない、みたいなことも多いと思うのですが、 Git-SVN があればガンガンブランチ切ってはマージしまくって、というふうに作業出来ると思います、よかったですね。 んで、 Git-SVN を使っていると、今自分が作業しているのがどこにコ
svn の repository を git の repository に変換するには、git-svn を使用します。 git-svn は、svn の repository を git コマンドで直接さわれる様にしてくれます。 Ubuntu の場合、git と git-svn のインストールは以下のコマンドで % sudo aptitude install git-core git-svn 以下、変換前の svn repository を svn-repo、変換後の git repository を git-repo と表記します。 流れとしては、以下の感じ 1. svn-repo のログのユーザー名を、git 形式に変換するための authors.txt を作成 2. ローカルにカラの git-repo を作成 3. svn-repo を git svn clone コマンドで取
バージョン管理システムと言うとSubversionやCVSが有名だが、近年急速にユーザーを増やしているバージョン管理システムに「Git」 がある。GitはLinuxカーネルの開発リーダーとして知られるLinus Torvalds氏が中心となって、Linuxカーネルの開発に使用する目的で開発した分散型バージョン管理システムである。2005年に開発が開始されて以来さまざまなプロジェクトでの採用が進み、現在ではPerl 5やRuby on Rails、Android、Wine、X.orgなど、有名な大規模プロジェクトで採用されるに至っている。 本記事では、このGitを使用するのに必要な「分散型バージョン管理システム」の基本的な考え方を紹介するとともに、Gitの導入方法や基本的なGitの使い方について解説する。 分散バージョン管理システムとは? GitはLinuxカーネル開発で用いられることを前提
http://gist.github.com/ 最近 github にまた新しいサービス、gistが誕生しました。これはよくあるソースコードを web にペーストして参照できるサービスの git 版、と云ったところです。 gist の良いところは、まず git を知らなくても使えるところが上げられます。普通のペーストサービスと同じで、ソースコードを適当にはっつければOKで簡単です。編集ももちろん web 上からでき、インターフェイスから編集を行うと、git の履歴としてサーバサイドに保存されます。また、匿名による作成・編集も可能です。(匿名による編集は cookie が切れるまでっぽいですが) そして、git と同じく、github にログインしてれば、gist で誰かが貼り付けたソースコードを fork でき、自分の権限の元編集操作が可能になります。ので、誰かが貼り付けたコードを for
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く