Có các định dạng thực sự là các tệp zip trong ngụy trang, ví dụ: docx hoặc odt. Nếu tôi lưu trữ chúng trực tiếp trong điều khiển phiên bản, chúng sẽ được xử lý dưới dạng tệp nhị phân. giải pháp lý tưởng của tôi sẽ làCác tệp đã nén phiên bản (docx, odt)
- có một cái móc tạo ra một thư mục
foo.docx/
cho mỗifoo.docx
file trước khi cam kết, giải nén tất cả các file vào nó - tùy chọn, có một cái móc mà reindents các file xml
- có một cái móc tạo lại
foo.docx
từ các tệp được lưu trữ sau khi cập nhật
Tôi không muốn các tệp docx tự kiểm soát phiên bản. (Tôi biết về một số related question trong đó có cách tiếp cận khác với khuyếch đại tùy chỉnh được đề xuất.)
Điều này có thể thực hiện được không? Đây có phải là doable với mercurial?
CẬP NHẬT:
Tôi biết về móc. Tôi quan tâm đến các chi tiết cụ thể. Đây là một phiên để chứng minh hành vi mong đợi.
> hg add foo.docx
> hg status
A foo.docx
> hg commit
> # Change foo.docx with external editor
> hg status
M foo.docx
> hg diff
+++ foo.docx/word/document.xml
- <w:t>An idea</w:t>
+ <w:t>A much better idea</w:t>
'git' có hành vi móc sẽ cho phép điều này, nhưng tôi không biết về hg – Daenyth
Về điểm thứ hai của bạn: Hãy lưu ý rằng các định dạng tài liệu này (đặc biệt là .xslx và ODF) không xử lý khoảng trắng như được chỉ định bởi tiêu chuẩn XML nhưng - chủ yếu cho các mục đích thực tế - bảo toàn khoảng trắng ngay cả khi điều này không được chỉ ra.Do đó, việc sắp xếp lại một tệp có thể thay đổi nội dung. –
Tại sao chính xác bạn không muốn các tập tin định dạng zip đưa vào kiểm soát sửa đổi. Vấn đề bạn muốn giải quyết là gì? – Rudi