LoginSignup
5
5

More than 5 years have passed since last update.

gitでディレクトリツリーの比較・一貫性チェック

Posted at

自分のはてなダイアリーから転載

gitでディレクトリツリー同士の一貫性チェックをしてみます。
2つのディレクトリツリーが同じものかどうかを調べます。
よく使われるのは、diffとか、findとmd5を使ったりするやり方だと思います。
が、今回使ってみたのはgit。

やってみたことは、

git init
git add .
git write-tree

これだけ。

これで、そのディレクトリツリーを表すハッシュ値が手に入る。
あとは、これを比較するだけ。
比較とか一貫性チェックって言ってるけど、単純に違うか同じかを確認するだけです。
あと、.gitがあるところではやらないほうがいいと思います。
全ファイルをステージングすることになるので、あとから面倒かと。
比較した後は、

rm -rf .git

とかで、gitのディレクトリを消しといたほうがいいと思います。
見慣れないgit write-treeコマンドについては、
Git - Gitオブジェクト
あたりを参考にしました。
メリットは、速い、確実、簡単、というところでしょうか。
もともと、異なるサーバーのディレクトリツリーを比較したいという用途だったので、
ハッシュ値の比較だけでできるのは便利です。

gitのバージョン管理じゃない使い方でした。

PS:なんか間違ってる気もするので、もうちょっと検証してみます。

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5