etckeeperのメタデータエンジンを/ etc以外のファイルシステムのgitコントロールに再利用/拡張する方法、または上記の機能を使用してgitをネイティブに拡張する方法


16

概要+質問

etckeeperのような、/ etc以外のgit制御ディレクトリのファイルシステムメタデータ制御が必要です。とりわけ、ホームおよびweb-appディレクトリは、メタデータ(ファイルの所有権、ACL、アクセス権)に古典的に敏感です。これは、特にFabricのようなツールとともに、自動サーバー展開に gitを使用するのに非常に有用/重要です。etcdirでetckeeperのような機能を、etckeeper自体または他の何かで再利用したいと思います。

誰でも次のいずれかまたは両方を提供するためのヒント/トリック/作業ソリューションを提案できますか?

  1. etckeeperエンジンを(etckeeperのgit固有の機能のみに注意して)/ etc以外のgitが制御するディレクトリに適用します。(少なくともDebian / Ubuntu Linuxを想定できます。可能であればMacOSX / homebrewのサポートを希望します。)
  2. メタデータのサポートでgitを拡張し(git-cache-metaのような単純化しすぎたものを超えて)、etckeeperのような機能をサポートしますか?

詳細、背景

filesystem-metadata-control機能を使用してgitを拡張することに関心が高まっていますetckeeperのメタデータ「エンジン」は、私の経験では非常に強力で信頼性があり、etckeeperは他の人にも人気があるようです。 少なくとも一部は、メタストアの非テキストベース/マージ非友好的な課題のためにメタストアは少なくなっています。さらに、etckeeperはメタストアベースのコアで開始したように見えますが、その後独自の(投機的?)に切り替えました。

明らかに、これにはOS /ファイルシステム固有の依存関係があります。(たとえば、Windowsで自動デプロイを試行しない。)オプションを提案するgitの拡張(「ネイティブ拡張」の場合)、クロスプラットフォームの破損の結果を理解してユーザーがオンデマンドで有効にし、ネイティブの動作がgitの「デフォルト」のクロスプラットフォームの使いやすさを壊さないようにします。さらに、贅沢なunix / darwin / etcメタデータ(ACLなど)を保存する必要はありません。基本的なユーザー/グループ/その他のパーマとユーザー/グループの所有権は問題ありません。(これらは私の「セキュリティ/脆弱性制御/ポリシー」で現在物事を壊している唯一のものです。)私が前もってターゲットにしている特定のOS:Debian、Ubuntu、MacOS 10.6+。後で:Redhat(CentOS、Fedora、RHEL)、SUSE、その他のLinux、および* BSD(FreeBSD、NetBSD、OpenBSD)。Windows / VMS(VMSはposixに対応している可能性はありますが)やその他の非UNIX系OSの予見可能な時点でのニーズ/アプリケーションを見ないでください。

参照:既存のgitの背景、私が投稿したこのstackoverflowの質問でのファイルメタデータ/ファイルタイプの追跡機能。

新しいプロジェクトの要件を作成しますか?

さらに、誰かがそのような機能の要件を作成することに関心がある場合、特に上記の新しい/未完了のプロジェクトに役立つことを確信できます。


ご参考までに。ServerFaultでこのQ&Aを見つけました:etckeeperを使用して/ etc以外の設定ファイルを追跡できますか?
ジョニーユタ

おそらく(おそらく洗練された)gitフックを使用してこれを達成できます。
ジャスティンᚅᚔᚈᚄᚒᚔ11年

カスタムフック:右、前述のgit-cache-metaのように。便利ですが、単純化されたソリューションです。悲しいかな、この機能は、ユーザーのカスタムフックを超えて、機能/信頼性/機能/コードレビュー/その他を改善するために「コミュニティ所有」のものに「プッシュ」しようとしています。さらに、少なくとも自分でではなく、一から書きたくない。
ジョニーユタ


ここにアップデートはありますか?
クレゴックス

回答:


4

このserverfaultの回答によれば、あなたはこれを行うだけです:

それは右そこにあるのmanページ

  • ディレクトリを作成する /foo
  • etckeeperで初期化する: etckeeper -d /foo init
  • コミットコミットをディレクトリに適用します。 etckeeper -d /foo commit 'message'

とても興味深い。Mac OS Xで実行されているetckeeperポート/テストを見つけることができません。homebrewやその他の重要なものはありません。誰でも知っていますか?
ジョニーウタ14年

ここでMac OS Xの移植に関するetckeeperの提案を求めています:joeyh.name/code/etckeeper/discussion
ジョニーユタ14

@JohnnyUtahh:Joeyや他の人からの返事はなかったようです... OS Xの移植について何か進展はありましたか?
iconoclast

@JohnnyUtahh:ところで、私はこれを見つけました:github.com/myint/etckeeper
iconoclast

@iconoclast OS Xへの移植作業や、このプロジェクトに関する作業は一切行っていません。github.com/myint/etckeeperは便利そう-ありがとう!
ジョニーユタ

4

この問題を掘り下げて、プロジェクトgit-store-metaを作成することにしました。

git-store-metaは、git-cache-meta、metastore、setgitperms、mtimestoreの優れた機能を統合するperlスクリプトです。柔軟性、機能性、パフォーマンス、クロスプラットフォームの移植性と一貫性の適切な妥協点となるはずです。


私はまだgit-store-metaをテストしてレビューする時間を見つけていませんが、一見すると徹底的で非常に有望です。とても感謝しています。これをテストすることをとても楽しみにしています。@Danny Lin、ありがとうございます。
ジョニーユタ

@ 'Danny Lin'、関連するstackoverflowの質問git-store-metaを参照しました。
ジョニーユタ

私の視点:このソリューション(git-store-meta)は、etckeeperを誤用するよりも優れています。
ゲットリ

アップデート:私はちょうどでREADME.mdを見渡したのgit-ストアメタ、およびそれが見える素晴らしいです。私またはチームの1人に次のチャンスを試してもらいたいと思います。
ジョニーユタ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.