Bản phát hành kiểm soát nguồn Git 2.38

Bản phát hành Git 2.38 của hệ thống kiểm soát nguồn phân tán được giới thiệu. Git là một trong những hệ thống kiểm soát phiên bản phổ biến, đáng tin cậy và hiệu năng cao cung cấp các công cụ phát triển phi tuyến tính linh hoạt dựa trên việc phân nhánh và hợp nhất các nhánh. Để đảm bảo tính toàn vẹn của lịch sử và khả năng chống lại những thay đổi "lỗi thời", hàm băm ngầm định của toàn bộ lịch sử trước đó trong mỗi lần xác nhận được sử dụng, cũng có thể xác minh các thẻ và cam kết riêng lẻ bằng chữ ký điện tử của nhà phát triển.

So với phiên bản trước, phiên bản mới bao gồm 699 thay đổi, được chuẩn bị với sự tham gia của 92 nhà phát triển, trong đó 24 nhà phát triển lần đầu tiên tham gia phát triển. Những đổi mới chính:

  • Cấu trúc chính bao gồm tiện ích “vô hướng”, được phát triển bởi Microsoft để quản lý các kho lưu trữ lớn. Tiện ích này ban đầu được viết bằng C#, nhưng git bao gồm một phiên bản sửa đổi trong C. Tiện ích mới khác với lệnh git ở chỗ bật theo mặc định các tính năng và cài đặt bổ sung ảnh hưởng đến hiệu suất khi làm việc với các kho lưu trữ rất lớn. Ví dụ: khi sử dụng vô hướng, nó được áp dụng:
    • Nhân bản một phần để hoạt động với bản sao kho lưu trữ chưa hoàn chỉnh.
    • Cơ chế tích hợp để theo dõi các thay đổi trong hệ thống tệp (FSMonitor), cho phép bạn thực hiện mà không cần tìm kiếm trong toàn bộ thư mục làm việc.
    • Chỉ mục bao gồm các đối tượng trong các tệp gói khác nhau (nhiều gói).
    • các tệp biểu đồ cam kết có chỉ mục biểu đồ cam kết được sử dụng để tối ưu hóa quyền truy cập vào thông tin cam kết.
    • Công việc định kỳ nền tảng để duy trì cấu trúc tối ưu của kho lưu trữ ở chế độ nền mà không chặn phiên tương tác (công việc được thực hiện mỗi giờ một lần để chủ động tải xuống các đối tượng mới từ kho lưu trữ từ xa và cập nhật tệp bằng biểu đồ cam kết cũng như quá trình đóng gói kho lưu trữ được bắt đầu mỗi đêm).
    • Chế độ "sparseCheckoutCone", giới hạn các mẫu được phép trong quá trình nhân bản một phần.
  • Đã thêm tùy chọn --update-refs vào lệnh "git rebase" để cập nhật các nhánh phụ thuộc chồng lên các nhánh đang được di chuyển, thay vì phải kiểm tra thủ công từng nhánh phụ thuộc để chuyển sang cam kết được yêu cầu.
  • Làm cho lệnh "git rm" tương thích với các chỉ mục một phần.
  • Cải thiện hoạt động của lệnh "git mv AB" khi di chuyển tệp từ không gian làm việc có chỉ mục một phần ở chế độ "hình nón" sang phạm vi bên ngoài không có chế độ này.
  • Định dạng tệp bitmap đã được tối ưu hóa để làm việc với các kho lưu trữ lớn - một bảng chỉ mục tùy chọn đã được thêm vào cùng với danh sách các cam kết đã chọn và độ lệch của chúng.
  • Lệnh “git merge-tree” thực hiện một chế độ mới, trong đó, dựa trên hai cam kết được chỉ định, một cây có kết quả hợp nhất sẽ được tính toán, như thể lịch sử của các cam kết này đã được hợp nhất.
  • Đã thêm cài đặt "safe.barerepository" để kiểm soát khả năng lưu trữ các kho lưu trữ trống (kho không chứa cây đang hoạt động) bên trong các kho lưu trữ git khác. Khi được đặt thành “rõ ràng”, bạn sẽ có thể làm việc với các kho lưu trữ trống chỉ nằm trong thư mục trên cùng. Để có thể đặt các kho trống trong các thư mục con, hãy sử dụng giá trị “tất cả”.
  • Lệnh “git grep” đã thêm tùy chọn “-m” (“—max-count”), tương tự như tùy chọn cùng tên trong GNU grep và cho phép bạn giới hạn số lượng kết quả khớp được hiển thị.
  • Lệnh “ls-files” thực hiện tùy chọn “--format” để định cấu hình các trường đầu ra (ví dụ: bạn có thể bật đầu ra của tên đối tượng, chế độ, v.v.).
  • Trong “git cat-file”, khi hiển thị nội dung của các đối tượng, có thể tính đến các ràng buộc tác giả-email được chỉ định trong tệp bản đồ thư.

Nguồn: opennet.ru

Thêm một lời nhận xét