Phát hành hệ thống kiểm soát nguồn phân tán Git 2.26

Có sẵn phát hành hệ thống kiểm soát nguồn phân tán Git 2.26.0. 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, 504 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 64 nhà phát triển, trong đó 12 người lần đầu tiên tham gia phát triển. Chính đổi mới:

  • Mặc định đã được chuyển sang phiên bản thứ hai Giao thức truyền thông Git, được sử dụng khi máy khách kết nối từ xa với máy chủ Git. Phiên bản thứ hai của giao thức đáng chú ý là cung cấp khả năng lọc các nhánh và thẻ ở phía máy chủ, trả về danh sách liên kết rút gọn cho máy khách. Trước đây, bất kỳ lệnh pull nào sẽ luôn gửi cho khách hàng danh sách đầy đủ các tài liệu tham khảo trong toàn bộ kho lưu trữ, ngay cả khi khách hàng chỉ cập nhật một nhánh hoặc kiểm tra xem bản sao kho lưu trữ của họ đã được cập nhật chưa. Một cải tiến đáng chú ý khác là khả năng bổ sung các khả năng mới cho giao thức khi chức năng mới có sẵn trong bộ công cụ. Mã máy khách vẫn tương thích với giao thức cũ và có thể tiếp tục hoạt động với cả máy chủ mới và cũ, tự động quay lại phiên bản đầu tiên nếu máy chủ không hỗ trợ máy chủ thứ hai.
  • Tùy chọn “-show-scope” đã được thêm vào lệnh “git config”, giúp xác định vị trí xác định một số cài đặt nhất định dễ dàng hơn. Git cho phép bạn xác định cài đặt ở những nơi khác nhau: trong kho lưu trữ (.git/info/config), trong thư mục người dùng (~/.gitconfig), trong tệp cấu hình toàn hệ thống (/etc/gitconfig) và thông qua lệnh tùy chọn dòng và biến môi trường. Khi thực thi “git config”, khá khó để hiểu chính xác cài đặt mong muốn được xác định ở đâu. Để giải quyết vấn đề này, tùy chọn “--show-origin” đã có sẵn nhưng nó chỉ hiển thị đường dẫn đến tệp trong đó cài đặt được xác định, điều này rất hữu ích nếu bạn định chỉnh sửa tệp nhưng không giúp ích gì nếu bạn cần thay đổi giá trị thông qua “git config” bằng các tùy chọn "--system", "--global" hoặc "-local". Tùy chọn mới "--show-scope" hiển thị bối cảnh định nghĩa biến và có thể được sử dụng cùng với -show-Origin:

    $ git --list --show-scope --show-origin
    tệp chung:/home/user/.gitconfig diff.interhunkcontext=1
    tệp chung:/home/user/.gitconfig push.default=current
    […] local file:.git/config branch.master.remote=origin
    tệp cục bộ:.git/config Branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    độ rộng toàn cầu.statgraphwidth 35
    đồng bằng diff.colormoved cục bộ

    $ git config --global --unset diff.statgraphwidth

  • Trong cài đặt ràng buộc thông tin xác thực Việc sử dụng mặt nạ trong URL được cho phép. Mọi cài đặt HTTP và thông tin xác thực trong Git đều có thể được đặt cho cả kết nối (http.extraHeader, credential.helper) và cho các kết nối dựa trên URL (credential.https://example.com.helper, credential.https: //example. com.helper). Cho đến nay, các ký tự đại diện như *.example.com chỉ được phép cho cài đặt HTTP nhưng không được hỗ trợ cho liên kết thông tin xác thực. Trong Git 2.26, những khác biệt này đã bị loại bỏ và, chẳng hạn, để liên kết tên người dùng với tất cả các tên miền phụ, giờ đây bạn có thể chỉ định:

    [thông tin xác thực "https://*.example.com"]

    tên người dùng = taylorr

  • Việc mở rộng hỗ trợ thử nghiệm cho nhân bản một phần (nhân bản một phần) vẫn tiếp tục, cho phép bạn chỉ chuyển một phần dữ liệu và làm việc với bản sao chưa hoàn chỉnh của kho lưu trữ. Bản phát hành mới bổ sung lệnh mới "gitsparse-checkout add", cho phép bạn thêm các thư mục riêng lẻ để áp dụng thao tác "kiểm tra" cho chỉ một phần của cây làm việc, thay vì liệt kê tất cả các thư mục đó cùng một lúc thông qua lệnh "git bộ kiểm tra thưa thớt" (bạn có thể thêm từng thư mục một mà không cần chỉ định lại toàn bộ danh sách mỗi lần).
    Ví dụ: để sao chép kho lưu trữ git/git mà không phạm phải các đốm màu, giới hạn việc kiểm tra chỉ ở thư mục gốc của bản sao làm việc và đánh dấu riêng việc kiểm tra cho thư mục "t" và "Tài liệu", bạn có thể chỉ định:

    $ git clone --filter=blob:none --sparse [email được bảo vệ]:git/git.git

    $ cd git
    $ git thưa-kiểm tra init --cone

    $ git thanh toán thưa thớt thêm t
    ....
    $ git kiểm tra thưa thớt thêm Tài liệu
    ....
    $ git danh sách thanh toán thưa thớt
    Tài liệu
    t

  • Hiệu suất của lệnh “git grep”, được sử dụng để tìm kiếm cả nội dung hiện tại của kho lưu trữ và các bản sửa đổi lịch sử, đã được cải thiện đáng kể. Để tăng tốc độ tìm kiếm, có thể quét nội dung của cây đang làm việc bằng nhiều luồng (“git grep –threads”), nhưng việc tìm kiếm trong các bản sửa đổi lịch sử chỉ là một luồng. Giờ đây, hạn chế này đã được loại bỏ bằng cách triển khai khả năng song song hóa các hoạt động đọc từ bộ lưu trữ đối tượng. Theo mặc định, số lượng luồng được đặt bằng số lõi CPU, trong hầu hết các trường hợp hiện nay không yêu cầu cài đặt rõ ràng tùy chọn “-threads”.
  • Đã thêm hỗ trợ cho việc tự động hoàn thành việc nhập các lệnh phụ, đường dẫn, liên kết và các đối số khác của lệnh “git Worktree”, cho phép bạn làm việc với một số bản sao đang hoạt động của kho lưu trữ.
  • Đã thêm hỗ trợ cho các màu sáng có chuỗi thoát ANSI. Ví dụ: trong cài đặt dành cho màu đánh dấu “git config –color” hoặc “git diff –color-moved”, bạn có thể chỉ định “%C(brightblue)” thông qua tùy chọn “--format” cho màu xanh sáng.
  • Đã thêm phiên bản mới của tập lệnh fsmonitor-người canh gác, cung cấp sự tích hợp với cơ chế Người canh gác Facebook để tăng tốc độ theo dõi các thay đổi của tệp và sự xuất hiện của các tệp mới. Sau khi cập nhật cần có git thay thế móc vào kho lưu trữ.
  • Đã thêm tối ưu hóa để tăng tốc độ sao chép một phần khi sử dụng ảnh bitmap
    (máy bitmap) để tránh tìm kiếm đầy đủ tất cả các đối tượng khi lọc đầu ra. Việc kiểm tra các đốm màu (—filter=blob:none và —filter=blob:limit=n) trong quá trình nhân bản một phần hiện đã được thực hiện
    nhanh hơn đáng kể. GitHub đã công bố các bản vá với những tối ưu hóa này và hỗ trợ thử nghiệm để nhân bản một phần.

  • Lệnh "git rebase" đã được chuyển sang một chương trình phụ trợ khác, sử dụng cơ chế 'hợp nhất' mặc định (trước đây được sử dụng cho "rebase -i") thay vì 'patch+apply'. Các phần phụ trợ khác nhau ở một số điểm nhỏ, chẳng hạn như sau khi tiếp tục thao tác sau khi giải quyết xung đột (git rebase --continue), phần phụ trợ mới đề nghị chỉnh sửa thông báo cam kết, trong khi phần phụ trợ cũ chỉ sử dụng thông báo cũ. Để hoàn nguyên về hành vi cũ, bạn có thể sử dụng tùy chọn "--apply" hoặc đặt biến cấu hình 'rebase.backend' thành 'apply'.
  • Ví dụ về trình xử lý các tham số xác thực được chỉ định qua .netrc đã được giảm xuống dạng phù hợp để sử dụng ngay.
  • Đã thêm cài đặt gpg.minTrustLevel để đặt mức độ tin cậy tối thiểu cho các thành phần khác nhau thực hiện xác minh chữ ký số.
  • Đã thêm tùy chọn "--pathspec-from-file" vào "git rm" và "git stash".
  • Việc cải tiến các bộ thử nghiệm tiếp tục chuẩn bị cho việc chuyển đổi sang thuật toán băm SHA-2 thay vì SHA-1.

Nguồn: opennet.ru

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