タグ

Programmingとgitに関するgigi-netのブックマーク (14)

  • コードの半減期とテセウスの船 | POSTD

    プロジェクトが発展する際は、単純に新しいコードが古いコードの上に追加されているのでしょうか。もしくは、時間をかけて徐々に古いコードが新しいコードに置き換えられているのでしょうか。これを解明するために、手ごわい GitPython プロジェクトの助けを借りて、Gitプロジェクトを分析する 簡単なプログラム を構築してみました。履歴を年ごとに振り返り、 git blame を実行してみようと思ったのです(この処理を多少でも速くすることは簡単ではないと分かりました。しかし、ファイルのキャッシングを便宜的に含ませることや、変更された点を履歴から見つけること、 git diff を使って変更したファイルを無効にすることなどの詳細を、いつかお伝えします)。 頭がさえている時に、 テセウスの船 をダサくもじって、 “テセウスのGit” と名付けました。私は父親になって、ひどいダジャレを作れるようになった

    コードの半減期とテセウスの船 | POSTD
  • とうとう Git 2.0 が現実のものに。便利な機能満載 | Atlassian Japan 公式ブログ | アトラシアン株式会社

    長い間待たれてきた git のメジャーバージョンアップがリリースされました。Changelog に目を通し、素晴らしい機能を見つけられることに興奮しています。過去の git リリースの情報をおさらいしたい場合は、バージョンアップのたびにその情報を特集してきた私の過去記事をご覧ください: 1.8.2、1.8.3、1.8.4、1.8.5、1.9。 このブログ記事では、今回のバージョンアップの一部しか取り扱うことしかできません。変更とバグ修正の完全リストをご希望の場合は、Changelog の完全版をご覧ください。 デフォルト設定一部変更: ユーザビリティの改善と混乱を解消 まず最初に、互換性に影響する変更を見ていきましょう。複数の変更がありますが、これらのアップデートは、初心者にとどまらず多くの人々を悩ませてきた誤解を解決するもので歓迎できると思います。これらの変更は、.gitconfig を

    とうとう Git 2.0 が現実のものに。便利な機能満載 | Atlassian Japan 公式ブログ | アトラシアン株式会社
    gigi-net
    gigi-net 2014/06/10
    細かいところが便利になってる
  • レビューフレンドリーな開発のしかた - tomykaira makes love with codes

    2013-09-02 レビューフレンドリーな開発のしかた git dev 最近は多くのチームでレビューの習慣が定着してきました。おもにレビュアーとしての仕事を依頼されることもあります。 コミット・ブランチの作りかた一つでこのレビューのしやすさが格段に違ってきます。 自分が普段の開発でこころがけていることをまとめてみます。 前提 レビュイーとレビュアーの間に上下関係があるわけではないですが、レビュイーは多少手数が増えても、レビュアーのことを最大限配慮すべきです。 なぜなら、レビュイーはその機能の開発に集中して取り組んでいますが、レビュアーはすこし見るだけです。 なにかするとしたら、レビュイーがやったほうが時間も手間も少なくなります。 レビュアーはレビュイーよりも、変更について詳しくありません。 レビュイーは開発にいろんな部分を見てまわり、他のモジュールとの関連性や実装のこまかな意図を把握して

    gigi-net
    gigi-net 2013/12/17
    参考になる
  • 卜部昌平のあまりreblogしないtumblr

    前回の続き。 前回の時点では「git blameが密になっているところはきっと活発に編集されていたに違いない」という仮説があったわけですが、これは当のところは、よくわからない。なぜかというと、blameというのは地層のように降り積もったコミットの表面に露頭してるところしか見せてくれないわけです。当に活発に更新されていたかを知るには、ようするに地質平面図じゃなくて地質断面図が必要なわけ。分かりますよね。 で、それはどうやって作ればいいかというと、gitには便利なgit log -pという、こういうとき便利だけど普段は使い道のなさそーなコマンドがあって、これは生のdiffをすべてだらだらと表示してくれるわけですよ。で、diffからblameを再構成するにはdiffの+行をひたすら集めてくればいいわけだけど、その時-行も一緒に覚えておいて、あるコミットでどのコミットが上書きされたかを覚えてお

    卜部昌平のあまりreblogしないtumblr
  • コミットメッセージの書き方 - 2012-02-21 - ククログ

    はじめに 「分かりやすいコードを書く」、「コードと一緒にテストも書く」等はソフトウェア開発において大切なことです。しかしそれと同じくらい大切なことして「分かりやすいコミットメッセージを書く」があります。これはあまり着目されていなく、見過ごされていることです。 今回は、コミットメッセージの分かりやすさの大切さ、そして、分かりやすくするための書き方を説明します。 コミットメッセージとその大切さ バージョン管理システムとコミット 現在、ほとんど全てのソフトウェア開発ではSubversionやGitなどのバージョン管理システムを使っています。バージョン管理システムを使うことによるメリットというのは、ソフトウェアの変更が記録されていくことにあります。 具体的なメリットは3つあります。 ソフトウェアの調査がしやすくなることです。現時点でのコードと、そして変更の履歴とを組み合わせることで、それらから非常

    コミットメッセージの書き方 - 2012-02-21 - ククログ
  • A successful Git branching model を補助する git-flow を使ってみた - Twisted Mind

    git-flow という git の運用を補助するプラグインを使ってみたので、その過程をメモしてみました。 そもそも git を採用理由なども書いていきたいと思います。 git を採用した理由 まず何よりも git を採用した理由ですが、日語のがたくさんある。Subversion のように気軽にブランチを切ったりマージが出来ない方法では「開発スピードにバージョン管理がついてこれない」という結論に至りました。 そこで svn から git へ以降の準備を進めています なぜ hg や bzr ではないのか git-svn を前々から使っていて rebase のありがたみや branch を気軽にきる運用になれていたからというのもありますが、なにより身近に詳しい人が多いというのが一番です。 Tower や GitX という素敵な GUI があるのも魅力の一つですね。 A successful

    A successful Git branching model を補助する git-flow を使ってみた - Twisted Mind
  • アパッチは有害と考える - karasuyamatenguの日記

    Apache Software Foundationの存在意義に疑問のなげかけるポスト http://www.mikealrogers.com/posts/apache-considered-harmful.html 追加: 挑発的なタイトルが世間を騒がせてしまった。次の点を理解して以下読んで欲しい。 ここでのApacheはウェブサーバではなくApache Software Foundationのこと これは俺の意見じゃない 俺はASFは有害だとは思っていない。元ブログ著者Mikealさんのタイトルを訳してみただけ 「有害」っていうのはちょっと強い言葉だと思う。MikealさんはGitをめぐるASF対CouchDB騒動において中立者の立場ではなく、そういうしがらみから強い言葉が出てきたのではないかと思う つまりSVN対Git派の政治的争いという部分はある 「GitHub革命」がASFのホス

    アパッチは有害と考える - karasuyamatenguの日記
  • GitHubを自前で持てるRails製オープンソースソフトウェア「GitLab」:phpspot開発日誌

    GitLab GitHubを自前で持てるRails製オープンソースソフトウェア「GitLabGitHubみたいなものを自分のサーバに設置できます。ネットワークで外部に流したくない場合に使えそうですね。 コメント機能、チケット機能やシンプルなチャット機能もついているようです リポジトリブラウザ。クリックでアニメーションしながら切り替わる部分もそっくり コードは当然ハイライトされます OSSとはいえここまで作りこまれていれば結構使えそうです。 今後のさらなる発展に期待 関連エントリ GitHubにあるような、あの押しやすそうなボタンを作成するサンプル&チュートリアル

  • Xcode meets Git 第1回: Xcode で Git を使う下準備 | st.Prestage

    << Xcode4: 隠し機能?自分のいる場所をハイライトさせる | Xcode meets Git 第1回: Xcode で Git を使う下準備 Tweet 2011年3月11日 Category: Xcode meets Git Tag: Git, Xcode4 これから数回にわけて 「バージョン管理ってほとんどつかったことがないんだよね~。」という方を対象に「Xcode meets Git」と題して、Xcode4 であたらしく追加された機能の 「Git を使うバージョン管理」の解説をしていきたいと思います。Git に関してはまだまだ自分も不勉強なので、間違いなどありましたら Twitter などで教えていただけるとうれしいです。 ということで実際に作業をしながら進めていきましょう。 新規プロジェクトを作成したときに保存場所を選択するダイアログで「Create local gi

  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • まだ使っていない人にこれだけは伝えたいgitの便利機能 - (゚∀゚)o彡 sasata299's blog

    2010年12月26日11:03 Git まだ使っていない人にこれだけは伝えたいgitの便利機能 ということで、今更ですけど git は便利ですね〜。もう subversion には戻れません。気が向いたので、個人的に気に入っていることをちょっと書いてみます。 1) 直前のコミットに対して、コミットし忘れたものを追加できる よくありがちなパターンですね。一通りコミットしたあとに「あっ!○○をコミットし忘れた!」とか、「××を一カ所修正し忘れていた」みたいなことってあると思います。subversion だとそういうのでコミットが増えて履歴が汚くなってしまうものですが、git だと簡単に直前のコミットに忘れてたものを追加して隠蔽(笑)することが可能です。 例えば hoge というファイルをコミットし忘れた場合を考えてみます。 $ touch hoge fuga foo $ git add fu

  • 【コラム】イマドキのIDE事情 (52) EclipseでGitを使おう! EGitを試してみる | エンタープライズ | マイコミジャーナル

    Gitとは? 最近、分散バージョン管理システムが注目を集めている。分散バージョン管理システムでは、CVSやSubversionなどこれまでのバージョン管理システムと違い、単一のリポジトリで集中的に管理するのではなく、複数のリポジトリを利用することができ、必要に応じてリポジトリ間の同期を取ることになる。 開発者は自分専用のローカルリポジトリを持ち、普段はローカルリポジトリに対してコミットを行い、必要になった時点で中央リポジトリに同期するといった使い方が可能だ。また、リポジトリをローカルに持つことによって、オフライン時でもコミットができ、オンラインになったタイミングでリモートリポジトリと同期を取るといった運用も可能になる。 図1 分散バージョン管理システム 主な分散バージョン管理システムとしてはGit、Mercurial、Bazaarなどがある。とりわけGitLinuxカーネルの開発にも使用

  • Gitを使いこなすための20のコマンド | OSDN Magazine

    LinuxカーネルやRuby on RailsPerlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。記事では、Gitを使いこなすために覚えるべき20個のGitコマンドを紹介する。 LinuxカーネルやRuby on RailsPerlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。記事では、Gitを使いこなすために覚えるべき20個のGitコマンドを紹介する。 なお、Gitの基的な考え方や使い方については分散バージョン管理システムGit入門でも紹介しているので、そちらも参照してほしい。

    Gitを使いこなすための20のコマンド | OSDN Magazine
  • 1