Làm cách nào để sử dụng lại / mở rộng công cụ siêu dữ liệu của người quản lý để kiểm soát git của các hệ thống tệp không / etc hoặc mở rộng git tự nhiên với khả năng đã nói?


16

Tổng quan + câu hỏi

Tôi muốn etckeeper -like hệ thống tập tin siêu dữ liệu điều khiển cho vv, thư mục không / git kiểm soát. Các thư mục nhà và ứng dụng web, trong số các thư mục khác, rất nhạy cảm với siêu dữ liệu (quyền sở hữu tệp, ACL, quyền). Điều này có thể cực kỳ hữu ích / quan trọng để sử dụng git để triển khai máy chủ tự động (cùng với các công cụ như Fabric ), trong số những thứ khác. Tôi muốn sử dụng lại khả năng giống như của người quản lý trên các thư mục đã nói, với chính bản thân người quản lý hoặc một cái gì đó khác.

Bất cứ ai cũng có thể đề xuất bất kỳ mẹo / thủ thuật / giải pháp làm việc nào để cung cấp một hoặc cả hai điều sau đây:

  1. áp dụng công cụ etckeeper (chỉ quan tâm đến khả năng cụ thể của git của etckeeper) cho các thư mục không được kiểm soát bởi git. (Có thể giả sử ít nhất Debian / Ubuntu Linux; muốn hỗ trợ MacOSX / homebrew nếu có thể.)
  2. mở rộng git với hỗ trợ siêu dữ liệu (ngoài những thứ đơn giản hóa quá mức như git-cache-meta ) để hỗ trợ khả năng giống như người quản lý hay tốt hơn?

Thêm chi tiết, nền

Có một mối quan tâm ngày càng tăng trong việc mở rộng git với các khả năng kiểm soát siêu dữ liệu hệ thống tập tin . "Công cụ" siêu dữ liệu của người dùng có vẻ khá mạnh mẽ và đáng tin cậy theo kinh nghiệm của tôi, và người quản lý cũng có vẻ phổ biến với những người khác . metastore ít hơn một phần do các thách thức không thân thiện với văn bản / hợp nhất của metastore . Hơn nữa, vân vân dường như đã bắt đầu với lõi dựa trên di căn, nhưng sau đó chuyển sang lõi riêng (đầu cơ?).

Rõ ràng, điều này có phụ thuộc hệ điều hành / hệ thống tập tin. (ví dụ: không cố gắng tự động triển khai trên Windows.) Đề xuất một tùy chọntiện ích mở rộng (nếu là "tiện ích mở rộng gốc") của git, được người dùng kích hoạt theo yêu cầu với các hậu quả đã hiểu về sự phá vỡ đa nền tảng, sao cho hành vi tự nhiên không phá vỡ tính thân thiện đa nền tảng "mặc định" của git. Hơn nữa, không cần phải lưu siêu dữ liệu unix / darwin / etc (như ACL); người dùng cơ bản / nhóm / perm khác và quyền sở hữu người dùng / nhóm sẽ ổn. (Đây là những điều duy nhất hiện đang phá vỡ mọi thứ trong "chính sách / kiểm soát lỗ hổng bảo mật / bảo mật của tôi.") Các hệ điều hành cụ thể mà tôi đang nhắm mục tiêu: Debian, Ubuntu, MacOS 10.6+. Sau đó: Redhat's (CentOS, Fedora, RHEL), SUSE, có thể các Linux khác và * BSD (FreeBSD, NetBSD, OpenBSD). Không thấy nhu cầu / ứng dụng cho Windows / VMS (mặc dù VMS có thể thân thiện với posix) hoặc các HĐH không giống như khác ở bất kỳ điểm nào có thể thấy trước.

Xem thêm: nền tảng về các khả năng theo dõi git, siêu dữ liệu / loại tệp hiện có tại câu hỏi stackoverflow này mà tôi đã đăng .

Phát triển yêu cầu cho một dự án mới?

Ngoài ra: nếu bất cứ ai quan tâm phát triển các yêu cầu cho khả năng đó, tôi chắc chắn rằng điều đó có thể chứng minh hữu ích, đặc biệt đối với một dự án mới / chưa hoàn thành để giải quyết ở trên.



Bạn có thể có thể thực hiện điều này bằng cách sử dụng một số móc git (có khả năng tinh vi) .
Justin

Móc tùy chỉnh: đúng, như với git-cache-meta như đã đề cập ở trên; hữu ích, nhưng một giải pháp đơn giản hóa. Than ôi, đang tìm cách "đẩy" chức năng này vượt ra ngoài các móc tùy chỉnh của người dùng vào một cái gì đó "thuộc sở hữu cộng đồng" để có chức năng / độ tin cậy / tính năng / codereview / vv tốt hơn. Hơn nữa, đừng muốn viết nó từ đầu, ít nhất là không phải một mình tôi.
Johnny Utahh


Có bản cập nhật nào ở đây không?
cregox

Câu trả lời:


4

Theo câu trả lời của serverfault này , bạn chỉ cần làm điều này:

Nó ở ngay trong trang người đàn ông .

  • Tạo một thư mục /foo
  • Khởi tạo với etckeeper: etckeeper -d /foo init
  • Cam kết áp dụng cam kết vào thư mục: etckeeper -d /foo commit 'message'

Khá thú vị. Tôi không thể tìm thấy bất kỳ cổng / kiểm tra v.v nào chạy trên Mac OS X. Không có gì trong homebrew hay bất cứ nơi nào đáng kể. Có ai biết gì không?
Johnny Utahh

Tôi đang hỏi đề xuất của người quản lý cho Mac OS X porting tại đây: joeyh.name/code/etckeeper/discussion
Johnny Utahh

@JohnnyUtahh: dường như không có bất kỳ phản hồi nào từ Joey hoặc bất cứ ai khác ... bạn đã có tiến triển gì trên cổng OS X chưa?
iconoclast

@JohnnyUtahh: nhân tiện, tôi đã tìm thấy cái này: github.com/myint/etckeeper
iconoclast

@iconoclast Tôi đã không làm việc với cổng OS X, hoặc bất kỳ công việc nào trong dự án này, cho vấn đề đó. github.com/myint/etckeeper có vẻ hữu ích - cảm ơn!
Johnny Utahh

4

Tôi đã đào sâu vấn đề này và tôi quyết định tạo một dự án git-store-meta cho nó.

git-store-meta là một tập lệnh perl tích hợp các tính năng hay của git-cache-meta, metastore, setgitperms và mtimestore. Nó sẽ phục vụ một sự thỏa hiệp tốt về tính linh hoạt, chức năng, hiệu suất và tính di động và tính nhất quán đa nền tảng.


Tôi chưa tìm thấy thời gian để kiểm tra và đánh giá git-store-meta, nhưng thoạt nhìn có vẻ kỹ lưỡng và khá hứa hẹn. Khá đánh giá cao. Tôi rất mong muốn được thử nghiệm điều này. Cảm ơn một lần nữa, @Danny Lin.
Johnny Utahh

@ 'Danny Lin', tôi đã tham khảo git-store-meta tại câu hỏi stackoverflow liên quan của tôi .
Johnny Utahh

Quan điểm của tôi: Giải pháp này (git-store-meta) tốt hơn so với việc lạm dụng etckeeper.
guettli

Cập nhật: Tôi vừa xem qua README.md tại git-store-meta , và nó trông rất tuyệt . Tôi trông có vẻ muốn tôi hoặc một người trong nhóm của tôi thử cơ hội tiếp theo mà chúng tôi có được.
Johnny Utahh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.