Git 2.37 đã được phát hành và đây là những tin tức của nó

Sự ra mắt của phiên bản mới của Git 2.37, đó là một trong những hệ thống kiểm soát phiên bản phổ biến nhất, phần mềm đáng tin cậy và hiệu suất 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 các 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 các thay đổi, hàm băm ngầm "ngược" của tất cả lịch sử trước đó được sử dụng trên mỗi cam kết, cũng có thể xác minh chữ ký số của các nhà phát triển thẻ và cam kết riêng lẻ.

Git 2.37 Các tính năng mới chính

So với phiên bản trước, 395 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 75 nhà phát triển, trong đó 20 nhà phát triển lần đầu tiên tham gia phát triển.

Trong phiên bản mới này, nó được nhấn mạnh rằng cơ chế chỉ số từng phần (chỉ mục thưa thớt), chỉ bao gồm một phần của kho lưu trữ, se đã được chuẩn bị để sử dụng rộng rãi. Chỉ mục một phần có thể cải thiện hiệu suất và tiết kiệm dung lượng trong các kho thực hiện các hoạt động sao chép một phần (kiểm tra thưa thớt) hoặc hoạt động trên một bản sao chưa hoàn chỉnh của kho lưu trữ.

Phiên bản mới hoàn thành công việc của tích hợp các chỉ mục từng phần trong các lệnh "git show", "git precision-checkout" và "git stash". Hiệu suất đáng chú ý nhất khi sử dụng các chỉ mục một phần là trong lệnh "git stash", nhanh hơn tới 80% trong một số tình huống.

Một thay đổi khác nổi bật là một cơ chế "gói cruft" mới đã được triển khai để đóng gói các đối tượng không thể truy cập không được tham chiếu trong kho lưu trữ (không được tham chiếu bởi các nhánh hoặc thẻ). Bộ thu gom rác xóa các đối tượng không thể truy cập, nhưng chúng vẫn ở trong kho lưu trữ trong một thời gian nhất định trước khi xóa chúng để tránh các điều kiện chủng tộc. Để theo dõi khoảng thời gian của các đối tượng không thể truy cập, cần có ràng buộc, chúng được gắn thẻ với thời gian thay đổi của các đối tượng tương tự, điều này không cho phép chúng được lưu trữ trong một tệp gói, trong đó tất cả các đối tượng đều có một thời gian sửa đổi chung.

Lưu từng đối tượng đã sử dụng trước đó vào một tệp riêng biệt, tệp đã gây ra sự cố khi có một số lượng lớn các đối tượng mới không thể truy cập được. Cơ chế "gói cruft" được đề xuất cho phép lưu trữ tất cả các đối tượng không thể truy cập trong một tệp gói và dữ liệu về thời gian sửa đổi của mỗi đối tượng được phản ánh trong một bảng riêng biệt được lưu trữ trong tệp có phần mở rộng ".mtimes".

Đối với Windows và macOS, có một cơ chế tích hợp để theo dõi các thay đổi đối với hệ thống tệp, loại bỏ sự cần thiết phải liệt kê toàn bộ thư mục làm việc khi thực hiện các thao tác như "git status". Trước đây, để theo dõi các thay đổi thông qua hook, bạn có thể kết nối các tiện ích theo dõi thay đổi của hệ thống tệp bên ngoài, chẳng hạn như Watchman, nhưng điều này yêu cầu cài đặt các chương trình và cấu hình bổ sung. Chức năng này hiện đã được tích hợp sẵn và có thể được bật bằng "git config core.fsmonitor true".

Lệnh "git precision-checkout" đã ngừng hỗ trợ cho một chế độ thay thế cho chế độ "--cone" định nghĩa mẫu để sao chép một phần, cho phép, khi xác định phần của kho lưu trữ đối tượng của hoạt động sao chép, liệt kê các tệp riêng lẻ bằng cách sử dụng cú pháp ".gitignore", cú pháp này không cho phép sử dụng để tối ưu hóa chỉ mục từng phần.

Những thay đổi khác nổi bật:

  • Cải thiện tính linh hoạt trong việc định cấu hình lệnh gọi fsync () để chuyển các thay đổi vào đĩa.
  • Đã thêm hỗ trợ cho chiến lược đồng bộ hóa "hàng loạt" vào tham số "core.fsyncMethod", giúp tăng tốc công việc khi ghi một số lượng lớn các tệp riêng biệt bằng cách tích lũy các thay đổi trong bộ nhớ cache ghi lại do một lệnh gọi fsync () duy nhất.
  • Các lệnh duyệt như “git log” và “git rev-list” hiện có tùy chọn “–since-as-filter = X” để lọc thông tin về các cam kết cũ hơn “X”.
  • Trong lệnh "git remote", việc chỉ định cờ "-v" cung cấp thông tin về các bản sao một phần của kho lưu trữ.
  • Đã thêm cài đặt "transfer.credentialsInUrl", có thể nhận các giá trị "warning", "die" và "allow". Nếu tham số “điều khiển từ xa. .url "chỉ định thông tin đăng nhập ở dạng văn bản thuần túy, nỗ lực thực hiện các thao tác" lấy "hoặc" đẩy "sẽ không thành công nếu cài đặt" transfer.credentialsInUrl "được đặt thành" chết "hoặc một cảnh báo nếu được đặt thành" cảnh báo ".
  • Theo mặc định, việc triển khai chế độ tương tác mới của lệnh "git add -i", được viết lại từ Perl sang C, được sử dụng.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.