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

Sau ba tháng phát triển, hệ thống kiểm soát nguồn phân tán Git 2.36 đã được phát hành. 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 suất cao nhất, 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. Để đảm bảo tính toàn vẹn của lịch sử và khả năng chống lại các thay đổi hồi tố, hàm băm ngầm của toàn bộ lịch sử trước đó được sử dụng trong mỗi lần xác nhận; cũng có thể chứng nhận các thẻ riêng lẻ và các lần xác nhận bằng chữ ký điện tử của nhà phát triển.

So với bản phát hành trước, 717 thay đổi đã được chấp nhận trong phiên bản mới, được chuẩn bị với sự tham gia của 96 nhà phát triển, trong đó 26 người lần đầu tiên tham gia phát triển. Những đổi mới chính:

  • Các lệnh “git log” và “git show” hiện có tùy chọn “—remerge-diff” cho phép bạn hiển thị sự khác biệt giữa kết quả tổng thể của quá trình hợp nhất và dữ liệu thực tế được phản ánh trong cam kết sau khi xử lý lệnh “hợp nhất” , điều này cho phép bạn đánh giá rõ ràng những thay đổi được thực hiện do việc giải quyết xung đột sáp nhập. Lệnh "git show" thông thường thụt lề các giải pháp xung đột khác nhau, khiến cho các thay đổi trở nên khó hiểu. Ví dụ: trong ảnh chụp màn hình bên dưới dòng “+/-” không thụt lề hiển thị giải pháp cuối cùng cho xung đột liên quan đến việc đổi tên sha1 thành oid trong nhận xét ở nhánh đầu tiên và “+/-” với thụt lề hiển thị ban đầu giải quyết xung đột gây ra bởi sự xuất hiện của một đối số bổ sung trong nhánh thứ hai trong hàm dwim_ref().
    Bản phát hành kiểm soát nguồn Git 2.36

    Khi sử dụng tùy chọn "--remerge-diff", sự khác biệt giữa các giải pháp giải quyết xung đột không được phân tách cho từng nhánh chính, nhưng sự khác biệt tổng thể giữa tệp có xung đột hợp nhất và tệp đã giải quyết xung đột sẽ được hiển thị.

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

  • Tăng tính linh hoạt trong việc định cấu hình hành vi xóa bộ đệm đĩa thông qua lệnh gọi hàm fsync(). Tham số core.fsyncObjectFiles có sẵn trước đó đã được chia thành hai biến cấu hình core.fsync và core.fsyncMethod, cung cấp khả năng áp dụng fsync không chỉ cho các tệp đối tượng (.git/objects), mà còn cho các cấu trúc git khác như liên kết ( .git /refs), tập tin reflog và pack.

    Bằng cách sử dụng biến core.fsync, bạn có thể chỉ định danh sách các cấu trúc Git nội bộ mà fsync sẽ được gọi bổ sung sau thao tác ghi. Biến core.fsyncMethod cho phép bạn chọn một phương thức xóa bộ đệm, ví dụ: bạn có thể chọn fsync để sử dụng lệnh gọi hệ thống có cùng tên hoặc chỉ định chỉ ghi để sử dụng ghi lại bộ đệm trang.

  • Để bảo vệ khỏi các lỗ hổng thao túng việc thay thế thư mục .git của người dùng khác vào các phần được chia sẻ, xác minh chủ sở hữu kho lưu trữ đã được tăng cường. Việc thực thi bất kỳ lệnh git nào hiện chỉ được phép trong thư mục ".git" của riêng chúng. Nếu thư mục chứa kho lưu trữ thuộc về người dùng khác thì mặc định sẽ hiển thị lỗi. Hành vi này có thể bị vô hiệu hóa bằng cách sử dụng cài đặt safe.directory.
  • Lệnh “git cat-file”, dùng để xuất nội dung nguồn của các đối tượng Git, đã được bổ sung tùy chọn “--batch-command”, bổ sung cho các tùy chọn “--batch” và “--batch-check có sẵn trước đó Các lệnh ” có khả năng chọn loại đầu ra một cách thích ứng bằng cách sử dụng “ nội dung <object>" để hiển thị nội dung hoặc "thông tin <object>" để hiển thị thông tin về đối tượng. Ngoài ra, lệnh "xóa" được hỗ trợ để xóa bộ đệm đầu ra.
  • Đối với lệnh “git ls-tree”, nhằm tạo danh sách nội dung của cây đối tượng, tùy chọn “—oid-only” (“—chỉ đối tượng”) đã được thêm vào, tương tự như “—chỉ tên ”, chỉ hiển thị số nhận dạng đối tượng để đơn giản hóa cuộc gọi từ tập lệnh. Tùy chọn “--format” cũng được triển khai, cho phép bạn xác định định dạng đầu ra của riêng mình bằng cách kết hợp thông tin về chế độ, loại, tên và kích thước.
  • Lệnh “git bisect run” thực hiện phát hiện không đặt cờ tệp thực thi cho tập lệnh và trong trường hợp này hiển thị lỗi với mã 126 hoặc 127 (trước đây, nếu tập lệnh không thể chạy được, tất cả các phiên bản đều được đánh dấu là có vấn đề) .
  • Đã thêm tùy chọn --refetch vào lệnh "gitfetch" để tìm nạp tất cả các đối tượng mà không thông báo cho bên kia về nội dung đã có trên hệ thống cục bộ. Hành vi này có thể hữu ích cho việc khôi phục sau lỗi khi tính toàn vẹn của dữ liệu cục bộ không chắc chắn.
  • Các lệnh "git update-index", "gitcheck-index", "git read-tree" và "git clean" hiện hỗ trợ các chỉ mục một phần (chỉ mục thưa thớt) để cải thiện hiệu suất và tiết kiệm dung lượng trong kho nơi thực hiện các thao tác một phần. (kiểm tra thưa thớt).
  • Hành vi của lệnh “git clone —filter=… —recurse-submodules” đã được thay đổi, điều này hiện dẫn đến việc sao chép một phần các mô-đun con (trước đây, khi thực hiện các lệnh như vậy, bộ lọc chỉ được áp dụng cho nội dung chính và các mô-đun con được được nhân bản hoàn toàn mà không tính đến bộ lọc).
  • Lệnh "git Bundle" đã bổ sung hỗ trợ cho việc chỉ định các bộ lọc để đặt nội dung có chọn lọc, tương tự như các hoạt động nhân bản một phần.
  • Đã thêm tùy chọn "--recurse-submodules" vào lệnh "git Branch" để duyệt qua các mô-đun con theo cách đệ quy.
  • Userdiff cung cấp trình xử lý mới cho ngôn ngữ Kotlin.

Nguồn: opennet.ru

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