You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
diff3は、3つのファイルを行単位で比較し、相違点を表示するコマンドラインツールソフトウェアである。また、その結果を用いて1つのファイルに統合することができる。主にUnix系のオペレーティングシステム (OS) が備えているが、各自でインストールすることによって、Windowsで使用することも可能。 例えば、2人が同一のファイルを同時に編集していた場合、確認なしに単純に保存すると、先に保存した編集が失われることになる。このような編集の競合に対処するには、保存時に、ファイル内容が編集を開始した時のものと同一であるか確認する必要がある。 もし違っていたら、編集中に他人にファイルを変更されてしまったといえる。このときdiff3を用いれば、両者の編集を共に最新ファイルへと反映させることが出来るのである。 なお、通常diff3は処理のためにdiffコマンドを実行するが、環境設定によってこれを別のプ
元ネタはずいぶんと昔の記事なのだけど。 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー ■ 編集距離 (Levenshtein Distance) 昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベン... http://d.hatena.ne.jp/naoya/20090329/1238307757 思い付きはまったく関係ない所から。 mp3 が数千ファイル入ってるフォルダで何かの手違いで同じ曲が入ってしまう事が結構あって重複取り去る作業してた。ID3が違ってるとMD5も違うのでレーベンシュタインの文字列距離を使ってファイル名が似てるの調べたら422ファイル消せる事が分かった。 — Vim芸人 (@mattn_jp) February 25, 2017 これを
Git はコードのマージを非常に得意としています。マージとはローカルで高速、そして柔軟に行えるものです。当然のことですが、異なるブランチから誰かがコンテンツをマージするたびにコンフリクトが発生します。コンフリクトを解決するには、主な変更点を把握して見抜かなければなりません。コンフリクトの解決は、時には多くの作業が必要になります。 開発者にはそれぞれ好みのコンフリクト解決方法があります。そのため同僚ライターのダン・スティーブンが以前、Questions for Confluence を使用して社内の人に質問していました。 返ってきた回答と洞察はアトラシアン社員だけではなく、もっと多くの人に役立つものでした。そこで私たちが Git コンフリクトを解決するさまざまな方法を以下に詳しく注釈付きで紹介します。皆さまの毎日のコーディング作業に役立つアイデアや方法がここで得られることを願います。 セット
こんにちは。望月です。 今日は皆さん大好きdiffコマンドについて、便利な技を初めて知ったので残しておきます。 ファイル全体を表示する diffは2つのテキストファイルの差分を表示してくれる大変便利なコマンドです。普通にdiffを利用すると差分のある行のみ、unified diff(-uオプション)を利用すると差分のあった行から前後3行が表示されます。 $ cat a.txt 1 2 3 4 5 6 7 8 9 10 $ cat b.txt 1 2 3 4 4 6 7 8 9 10 $ diff a.txt b.txt 5c5 < 5 --- > 4 $ diff -u a.txt b.txt --- a.txt 2014-08-30 17:53:31.000000000 +0900 +++ b.txt 2014-08-30 17:53:44.000000000 +0900 @@ -2,7
複数の my.cnf を比較して差異を知りたいが、通常のファイル同士の比較(diff) ではわかりにくいしそもそも知りたい情報を得るのはつらい。 ということがあり作成していた書き捨てのスクリプトがあったのだが、整理してテストまで書いて rubygems に放流した。 mycnf | RubyGems.org | your community gem host studio3104/mycnf · GitHub mycnf.gem 機能概要 parse my.cnf のファイルパスを食わせると parse して hash を返す generate 上記の parse のフォーマットの hash を食わせると my.cnf を文字列で返す compare 上記の parse のフォーマットの hash を複数食わせると、比較しやすいフォーマットで hash を返す (ファイルパスを複数食わせて
Git の diff を美しく表示するために必要なたった 1 つの設定 #git にインスパイアされて作り始めた diff-highlight にあれこれ手を入れ、1.0.0 として正式リリースしました。 diff-highlight と git-contrib/diff-highlight の違い 差分の中で +/- の行数が一致していないときのハイライトの扱い git-contrib/diff-highlight での表示 +/- の行が一致していないとハイライトされません。 diff-highlight では、マッチする行を認識してハイライトします。 +/- の行数が一致しても、文字単位でのハイライトをしてくれないケースがある git-contrib/diff-highlight での表示 差分の 1行目同士を比較しているため、pager の行がハイライトされていません。 diff-
Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ
UNIXの基本的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 本稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。本稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要
いままでなんとなく使ってきたけど、ようやく使い方が分かったような気がするのでメモ。 前提知識 インデックスとワーキングツリーが理解できていること HEAD が何か分かっていること git diff ワーキングツリーとインデックスの差分を表示。 git add した後にさらに修正したけど、そういえばどの時点で git add したのかなー、というときに使う? git add したらすぐにコミットする自分には関係なさそう。 git diff --cached HEAD とインデックスの差分を表示。 git add して、コミットする前に差分を確認したい時に使うんだと思う。 自分は git diff よりもこっちの方をよく使う。 git diff HEAD HEAD とワーキングツリーの差分を表示。 前にコミットした時からどれくらい編集したか確認したい時に使う。 HEAD の部分はコミット(HE
Githubで画像の差分を見られるモードが話題を呼びましたが、このように2枚の画像の差分を調べたいときって時々ありますよね。 そんなときImageMagickのコマンドラインツールを使えば、たった1行で実現できます。 $ composite -compose difference A.jpg B.jpg diff.jpg とすれば、A.jpg と B.jpg の差分画像 diff.jpg が作られます。この差分画像は以下のようになります。 さらにこの差分画像(diff.jpg)が「真っ黒な画像」かどうかも、コマンドラインで調べることができます。 # 差分がなかった場合(=diff.jpgは黒一色の画像) $ identify -format "%[mean]" diff.jpg 0 # 差分があった場合 $ identify -format "%[mean]" diff.jpg 960.8
ぱっと見、簡単そうに見えてその実、意外と大変なのが差分を表示する処理だ。マシンパワーも意外と使うので、油断ならない。だが、Web上で共有したりコラボレートしたりするアプリケーションが増えている現在にあっては、重要な機能になっている。 手軽に実装する方法は、既存のライブラリを使うことだ。それも、サーバサイドでなくクライアントサイドで。 今回紹介するオープンソース・ソフトウェアはJSBlend、JavaScriptで実装されたDiffソフトウェアだ。 JavaScriptでDiffを実装すると言うのは以前紹介したgoogle-diff-match-patchや、「Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)」等で試みられている。JSBlendが凄いのは、ただDiffだけでなく、マージにも対応している点だ。比較は文字単位で行われ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く