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

Sau hai tháng phát triển, hệ thống kiểm soát nguồn phân tán Git 2.35 đã đượ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ố, việc băm ngầm 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 phiên bản trước, phiên bản mới bao gồm 494 thay đổi, được chuẩn bị với sự tham gia của 93 nhà phát triển, trong đó 35 nhà phát triển lần đầu tiên tham gia phát triển. Những đổi mới chính:

  • Khả năng sử dụng khóa SSH để ký điện tử các đối tượng Git đã được mở rộng. Để giới hạn thời hạn hiệu lực của một số khóa, hỗ trợ cho các lệnh OpenSSH “hợp lệ trước” và “hợp lệ sau” đã được thêm vào, nhờ đó bạn có thể đảm bảo hoạt động chính xác với chữ ký sau khi khóa được một trong các nhà phát triển xoay vòng. Trước đó, đã xảy ra vấn đề với việc tách chữ ký bằng khóa cũ và khóa mới - nếu bạn xóa khóa cũ thì sẽ không thể xác minh chữ ký được tạo bằng khóa đó và nếu bạn để lại thì vẫn có thể thực hiện được. tạo chữ ký mới bằng khóa cũ đã được thay thế bằng khóa khác. Sử dụng hợp lệ-trước và hợp lệ-sau bạn có thể tách phạm vi của các khóa dựa trên thời gian chữ ký được tạo.
  • Trong cài đặt merge.conflictStyle, cho phép bạn chọn chế độ hiển thị thông tin về xung đột trong quá trình hợp nhất, đã xuất hiện hỗ trợ cho chế độ “zdiff3”, di chuyển tất cả các dòng tiêu chuẩn được chỉ định ở đầu hoặc cuối xung đột ra ngoài xung đột khu vực, cho phép trình bày thông tin nhỏ gọn hơn.
  • Chế độ “--staged” đã được thêm vào lệnh “git stash”, cho phép bạn chỉ ẩn những thay đổi được thêm vào chỉ mục, chẳng hạn như trong trường hợp bạn cần tạm thời hoãn lại một số thay đổi phức tạp để thực hiện thêm những gì đã sẵn sàng và giải quyết phần còn lại sau một thời gian. Chế độ này tương tự như lệnh “git commit”, chỉ ghi những thay đổi được đặt trong chỉ mục, nhưng thay vì tạo một cam kết mới trong “git stash —staged”, kết quả được lưu trữ trong vùng tạm thời. Khi cần thay đổi, chúng có thể được hoàn nguyên bằng lệnh “git stash pop”.
  • Một công cụ xác định định dạng mới đã được thêm vào lệnh "git log", "--format=%(describe)", cho phép bạn kết hợp đầu ra của "git log" với đầu ra của lệnh "git mô tả". Các tham số cho "git mô tả" được chỉ định trực tiếp bên trong công cụ xác định ("-format=%(describe:match= ,loại trừ= )"), trong đó bạn cũng có thể bao gồm các thẻ rút gọn ("—format=%(describe:tags= )") và định cấu hình số lượng ký tự thập lục phân để xác định đối tượng (“—format=%(describe:abbrev= )"). Ví dụ: để liệt kê 8 lần xác nhận cuối cùng có thẻ không có thẻ ứng cử viên phát hành và chỉ định mã định danh 8 ký tự, bạn có thể sử dụng lệnh: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642-gb 56bd95 bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640- gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • Cài đặt user.signingKey hiện hỗ trợ các loại khóa mới không giới hạn ở loại “ssh-” và chỉ định đường dẫn tệp đầy đủ tới khóa. Các loại thay thế được chỉ định bằng tiền tố "key::", ví dụ: "key::ecdsa-sha2-nistp256" cho khóa ECDSA.
  • Tốc độ tạo danh sách các thay đổi trong chế độ “—histogram”, cũng như khi sử dụng tùy chọn “—color-moved-ws”, điều khiển việc làm nổi bật các khoảng trắng trong chênh lệch màu, đã tăng lên đáng kể.
  • Lệnh "git jump", được sử dụng để cung cấp cho Vim thông tin về bước nhảy chính xác đến vị trí mong muốn trong tệp khi phân tích xung đột hợp nhất, xem khác biệt hoặc thực hiện thao tác tìm kiếm, cung cấp khả năng thu hẹp các xung đột hợp nhất được đề cập. Ví dụ: để giới hạn các thao tác chỉ trong thư mục "foo", bạn có thể chỉ định "git jump merge - foo" và loại trừ thư mục "Documentation" khỏi quá trình xử lý - "git jump merge - ':^Documentation'"
  • Công việc đã được thực hiện để tiêu chuẩn hóa việc sử dụng loại "size_t" thay vì "unsigned long" cho các giá trị biểu thị kích thước của các đối tượng, giúp có thể sử dụng các bộ lọc "sạch" và "nhòe" với các tệp lớn hơn 4 GB trên tất cả các nền tảng, bao gồm cả các nền tảng có mô hình dữ liệu LLP64, loại “dài không dấu” được giới hạn ở 4 byte.
  • Tùy chọn “-empty=(stop|drop|keep)” đã được thêm vào lệnh “git am”, cho phép bạn chọn hành vi cho các thư trống không chứa các bản vá khi phân tích các bản vá từ hộp thư. Giá trị “stop” sẽ chấm dứt toàn bộ hoạt động vá lỗi, “drop” sẽ bỏ qua một bản vá trống và “keep” sẽ tạo ra một cam kết trống.
  • Đã thêm hỗ trợ cho các chỉ mục một phần (chỉ mục thưa thớt) vào các lệnh "git reset", "git diff", "git đổ lỗi", "git tìm nạp", "git pull" và "git ls-files" để cải thiện hiệu suất và tiết kiệm dung lượng trong kho lưu trữ, trong đó các hoạt động nhân bản một phần (kiểm tra thưa thớt) được thực hiện.
  • Lệnh "git thưa-checkout init" không còn được dùng nữa và nên được thay thế bằng "git thưa-checkout set".
  • Đã thêm triển khai ban đầu của phần phụ trợ "có thể hoàn lại" mới để lưu trữ các tham chiếu như các nhánh và thẻ trong kho lưu trữ. Phần phụ trợ mới sử dụng bộ lưu trữ khối được dự án JGit sử dụng và được tối ưu hóa để lưu trữ số lượng tài liệu tham khảo rất lớn. Phần phụ trợ chưa được tích hợp với hệ thống ref và chưa sẵn sàng để sử dụng thực tế.
  • Bảng màu của lệnh "git grep" đã được điều chỉnh để phù hợp với tiện ích GNU grep.

Nguồn: opennet.ru

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