Як повторно використовувати / розширити механізм метаданих etckeeper для керування git не- / etc файлових систем, або розширити своєрідне використання git?


16

Огляд + питання

Я хочу керувати метаданими файлової системи, подібними до etckeeper, для каталогів, які не керуються файлами , тощо, керованими git. Домашні каталоги та каталоги веб-додатків, серед іншого, класично чутливі до метаданих (право власності на файли, ACL, дозволи). Це може бути надзвичайно корисно / важливо використовувати git для автоматизованого розгортання сервера (поряд з такими інструментами, як Fabric ). Мені хотілося б повторно використовувати здатність, подібну до т.п.

Хто-небудь може запропонувати будь-які поради / рекомендації / робочі рішення, щоб надати одне або обидва з наступного:

  1. застосуйте механізм etckeeper (лише дбайте про особливості git, що стосується etckeeper) до каталогів, що не керуються грічкою, тощо. (Можна припустити, щонайменше, Debian / Ubuntu Linux; хотілося б, якщо це можливо, підтримка MacOSX / homebrew .)
  2. розширити git за допомогою метаданих (крім надпрощених речей, таких як git-кеш-мета ) для підтримки можливостей, подібних тощо

Детальніше, фон

Зростає інтерес до розширення git із можливостями управління файловою системою та метаданими . Метадані " etc Engine" метадані здаються досить потужними та надійними в моєму досвіді, і etckeeper здається популярним і для інших . metastore в меншій мірі, по крайней мере , частково з - за нетекстової основою / злиття недружніх проблем metastore в . Далі, тощо, схоже, розпочали з основи метасторів, але потім перейшли до своєї власної (умоглядної?).

Очевидно, що це має особливості ОС / файлової системи. (наприклад, не намагаються автоматично розгортатись у Windows.) Запропонуйте необов’язковорозширення (якщо це "нативне розширення") git, увімкнене на вимогу користувача з зрозумілими наслідками поломки між платформами, таким чином, щоб нативна поведінка не порушувала "за замовчуванням" дружелюбність крос-платформи. Крім того, не потрібно зберігати екстравагантні метадані unix / darwin / тощо (як ACL); базовий користувач / група / інші особи та власник користувача / групи буде добре. (Це єдині речі, які в даний час руйнують речі в моїй "контролі / політиці безпеки та вразливості".) Конкретні ОС, на які я націлююся вперед: Debian, Ubuntu, MacOS 10.6+. Пізніше: Redhat (CentOS, Fedora, RHEL), SUSE, можливо інші Linuxes, та * BSD (FreeBSD, NetBSD, OpenBSD). Не бачите потреби / програми для Windows / VMS (навіть незважаючи на те, що VMS може бути зручним для позицій) або інших ОС, не схожих на Unix, у будь-який передбачуваний момент.

Дивіться також: передумови щодо попередньо існуючих можливостей git, метаданих файлів / файлів для відстеження типу цього питання щодо stackoverflow, яке я опублікував .

Розвивати вимоги до нового проекту?

Додатково: якщо хтось піклується про розробку вимог до таких можливостей, я впевнений, що це може виявитися корисним, особливо для нового / незавершеного проекту, на який звертатися вище.



Ви могли б зробити це з допомогою деяких (потенційно складних) GIT гаків .
Джастін ᚅᚔᚈᚄᚒᚔ

Спеціальні гачки: правильно, як у випадку з git-cache-meta, як згадувалося вище; корисне, але спрощене рішення. На жаль, прагнучи "підштовхнути" цю функціональність за межі користувальницьких гачків до чогось "спільноти" для кращої функціональності / надійності / особливостей / перегляду коду / тощо. Далі, не хочеться писати це з нуля, принаймні, не сам.
Джонні Юта


Будь-які оновлення тут?
Крегокс

Відповіді:


4

Відповідно до цієї серверної відповіді , ви просто так:

Це прямо там, на сторінці man .

  • Створіть каталог /foo
  • Ініціалізуйте з etckeeper: etckeeper -d /foo init
  • Коміти застосовують до каталогу: etckeeper -d /foo commit 'message'

Доволі цікаво. Я не можу знайти жодних портів / тестів etckeeper, що працюють на Mac OS X. Нічого в домашній мові і ніде іншому істотно. Хтось щось знає?
Джонні Юта

Я прошу пропозицій etckeeper для перенесення Mac OS X тут: joeyh.name/code/etckeeper/discussion
Johnny Utahh

@JohnnyUtahh: не здається, жодних відповідей від Джоуї чи когось іншого ... чи досягли ви жодного прогресу в порту OS X?
іконоборство

@JohnnyUtahh: до речі, я знайшов це: github.com/myint/etckeeper
iconoclast

@iconoclast Я не робив жодної роботи щодо порту OS X або будь-якої роботи над цим проектом. github.com/myint/etckeeper виглядає корисно - дякую!
Джонні Юта

4

Я розкопався в цій проблемі і вирішив створити для неї проект git-store-meta .

git-store-meta - це сценарій perl, який об'єднує приємні риси git-cache-meta, metastore, setgitperms та mtimestore. Це повинно слугувати хорошим компромісом щодо гнучкості, функціональності, продуктивності та портативності та послідовності між платформами.


Я ще не знайшов часу для тестування та огляду git-store-meta, але на перший погляд це виглядає ретельно і досить перспективно. Досить вдячний. Я дуже сподіваюся на тестування цього. Ще раз дякую, @Danny Lin.
Джонні Юта

@ "Danny Lin", я посилався на git-store-meta на моє пов'язане питання stackoverflow .
Джонні Юта

Моя точка зору: Це рішення (git-store-meta) краще, ніж неправильне використання тощо.
гуетлі

Оновлення: Я щойно переглянув README.md на git-store-meta , і це виглядає чудово . Мені здається, що я або хтось із моєї команди переконаємось, наступний шанс, який ми отримаємо
Джонні Юта
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.