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

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

  • Khả năng nhân bản một phần đang dần ổn định và sẵn sàng hoàn toàn, 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 kho lưu trữ chưa hoàn chỉnh. Một bản sao điển hình sẽ sao chép tất cả dữ liệu từ kho lưu trữ, bao gồm mọi phiên bản của mọi tệp trong lịch sử thay đổi. Đối với các kho lưu trữ rất lớn, việc sao chép dữ liệu sẽ dẫn đến sự gia tăng đáng kể về lưu lượng và dung lượng ổ đĩa, ngay cả khi nhà phát triển chỉ quan tâm đến một tập hợp con của các tệp. Để giúp việc chỉ truy xuất một phần của cây nguồn đang hoạt động trở nên dễ dàng hơn, bản phát hành mới giới thiệu lệnh "kiểm tra thưa thớt" thử nghiệm và tùy chọn "--sparse" mới cho lệnh "clone".

    Trước đây, quá trình nhân bản chọn lọc được thực hiện thông qua nhiệm vụ bộ lọc để lọc nội dung không cần thiết và tùy chọn “—no-checkout” để vô hiệu hóa việc điền các tệp bị thiếu. Sau đó, trước khi thực hiện thao tác thanh toán, cần phải bật cài đặt core.sparseCheckout và xác định danh sách các mẫu đường dẫn bị loại trừ trong tệp .git/info/sparse-checkout. Ví dụ: để sao chép không có đốm màu và ngăn không cho trích xuất tệp từ thư mục con có độ sâu 2 trở lên, bạn có thể chạy:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    kho lưu trữ $ cd
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git thanh toán.

    Lệnh “gitsparse-checkout” mới giúp đơn giản hóa đáng kể công việc và giảm quá trình tổ chức công việc với kho lưu trữ chưa hoàn chỉnh thành các lệnh sau:

    git clone --filter=blob:none --sparse /your/repository/here repo
    bộ kiểm tra thưa thớt git /path/to/check/out

    Lệnh kiểm tra thưa thớt cho phép bạn thiết lập danh sách các đường dẫn để kiểm tra (bộ) mà không cần định cấu hình .git/info/sparse-checkout theo cách thủ công, cũng như hiển thị danh sách các đường dẫn (danh sách) hiện tại và bật hoặc tắt kiểm tra một phần (bật /vô hiệu hóa).

    Để tối ưu hóa công việc với các kho lưu trữ và danh sách mẫu rất lớn, “cấu hình git core.sparseCheckoutCone", giới hạn các mẫu được phép (thay vì các mẫu .gitignore tùy ý, bạn có thể chỉ định xem có nên kiểm tra tất cả các đường dẫn và tất cả các tệp trong một thư mục con nhất định hay không). Ví dụ: nếu một kho lưu trữ lớn có thư mục “A/B/C” và tất cả công việc tập trung ở thư mục con “C”, thì khi bạn bật chế độ spzzyCheckoutCone, lệnh “git spur-checkout set A/B/ C” sẽ trích xuất toàn bộ nội dung của “C”, nhưng từ “A” và “B”, nó sẽ chỉ trích xuất những phần cần thiết để làm việc với “C”.

  • Từ tài liệu ("git rebase -h"), tất cả các tham chiếu đến tùy chọn "--preserve-merges" đã bị xóa, tùy chọn này không còn được dùng nữa và thay vào đó nên được sử dụng để di chuyển một tập hợp các cam kết.git rebase --rebase-merges".
  • Để cải thiện khả năng đọc của thư có bản vá được gửi đến danh sách gửi thư, tùy chọn “git format-patch —cover-from-description topic” đã được thêm vào, khi được chỉ định, đoạn đầu tiên từ văn bản mô tả nhánh sẽ được sử dụng làm chủ đề của thư xin việc cho một bộ các bản vá.
  • Đã triển khai hỗ trợ cho việc sử dụng kết hợp lệnh “git apply -3way” và cài đặt “merge.conflictStyle” (“git apply” hiện tính đến kiểu mô tả xung đột từ merge.conflictStyle khi cần giải quyết xung đột sau khi thử để áp dụng tệp vá vào kho lưu trữ).
  • Mã định nghĩa hàm được sử dụng trong các hoạt động như "git diff/grep --show-function/-function-context" đã được mở rộng để hỗ trợ xác định ranh giới hàm trong các chương trình ngôn ngữ Thuốc rượu.
  • Một tùy chọn mới đã được thêm vào "git add", "git commit", "git reset" và các lệnh khác - "-pathspec-from-file", cho phép tải danh sách các đường dẫn từ một tệp hoặc luồng đầu vào , thay vì liệt kê chúng trên dòng lệnh.
  • Sự cố phát hiện việc đổi tên ở cấp thư mục khi ghi cam kết đã được giải quyết. Định nghĩa không hoạt động nếu nội dung của thư mục con được chuyển đến thư mục gốc của kho lưu trữ.
  • Việc triển khai ban đầu lệnh “git add -i” được thiết kế lại đã được đề xuất, cho phép bạn thêm nội dung đã thay đổi một cách tương tác, được viết lại từ Perl sang C. Một công việc làm lại tương tự của lệnh “git add -p” đang được tiến hành.
  • Lệnh “git log –graph” đã được cấu trúc lại, tạo ra hình ảnh ASCII của biểu đồ với lịch sử thay đổi trong kho lưu trữ. Việc làm lại giúp cải thiện và đơn giản hóa đáng kể đầu ra mà không làm biến dạng cấu trúc của câu chuyện, chẳng hạn, điều này đã giải quyết được vấn đề hình ảnh vượt ra ngoài chiều rộng của đường đầu cuối.
  • Tùy chọn "git log --format=.." cho phép bạn thay đổi định dạng đầu ra,
    được mở rộng với sự hỗ trợ cho cờ “l/L” để chỉ hiển thị một phần địa chỉ email được chỉ định trước biểu tượng “@” (ví dụ: hữu ích khi tất cả các nhà phát triển có tất cả email trong cùng một miền).

  • Đã thêm lệnh phụ “set-url” vào lệnh “git submodule”.
  • Bộ dụng cụ thử nghiệm đã được cập nhật để 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