2009-08-21 39 views
16

Tôi chỉ có một câu hỏi nhanh về git - làm thế nào tương thích ngược là kho git? Ví dụ, tôi đã tạo một kho lưu trữ bằng cách sử dụng git 1.6.4 và kịch bản lệnh svn2git ruby, nhưng tôi muốn đặt nó trên một máy đang chạy Debian Lenny, có git 1.5.6.5. Tôi vẫn có thể tương tác với kho lưu trữ đúng cách?Git kho lưu trữ tương thích ngược

Trả lời

7

Tính năng lưu trữ thông tin thực sự cực kỳ lạc hậu về điều này, đó là tất cả những gì bạn lo lắng trong trường hợp này. Tôi không phải là một chuyên gia toàn diện, nhưng tôi nghi ngờ điều đó đã thay đổi kể từ lần phát hành ổn định đầu tiên.

Vấn đề tương thích duy nhất tôi có thể nghĩ đến là nếu hai phiên bản git đang làm việc trên cùng một repo (không phải bản sao) và có các tùy chọn/bí danh được đặt trong .git/config hoạt động trong phiên bản mới hơn phiên bản nhưng không hoàn toàn được triển khai trong phiên bản cũ ... nhưng ngay cả khi đó bạn cũng phải thử khá nhiều với phiên bản này. Và một lần nữa, điều này không liên quan gì đến thông tin thực tế trong repo, chỉ là các lệnh bạn sử dụng để quản lý nó. Đó là nơi mà sự phát triển của git đang diễn ra.

+0

Vâng, tôi biết rằng trong bản phát hành đầu 1.5, định dạng kho lưu trữ đã được thay đổi, nhưng tôi đoán vậy thôi. Cảm ơn, tôi có thể tiến hành công việc của mình. Tôi tự hỏi, liệu gitosis có vấn đề với các phiên bản cũ hơn không? Tôi muốn thiết lập gitosis trên máy chủ Lenny mới này. Tôi đoán nó sẽ có thể nhận được đẩy và các công cụ tốt. – Ibrahim

+0

Một số thay đổi với 1,5, nhưng hãy xem tại đây mức độ thận trọng của chúng: http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.0.txt Những thứ đã thay đổi mặc định thiết lập, làm việc từ phiên bản 1.4.3 (ít nhất). – u0b34a0f6ae

+0

Ha! Phá hủy danh tiếng hoàn toàn độc ác của bạn với 666 với +1! – Bombe

7

Có rất ít thay đổi không tương thích trong bố cục kho git; không tương thích theo nghĩa là phiên bản cũ hơn không thể xử lý kho lưu trữ được tạo bằng phiên bản mới hơn hoặc thực hiện trao đổi (tìm nạp hoặc đẩy) với máy chủ mới hơn.

Bạn nên kiểm tra RelNotes (ví dụ: here) để tìm xem có sự thay đổi không tương thích nào giữa các phiên bản bạn sử dụng hay không.

Một số (có thể là tất cả) những thay đổi incompatibile là:

  • submodules hỗ trợ: phiên bản git trước hỗ trợ submodule đã được giới thiệu trong lõi git sẽ không thể để xử lý các kho lưu trữ trong đó sử dụng các môđun con (nó không hiểu các mục nhập subtree/gitlink)
  • refs được đóng gói: phiên bản git cũ sẽ không thể tìm nạp qua HTTP từ kho lưu trữ mới hơn sử dụng refs được đóng gói (.git/packed-refs). Tương tự với git cũ bằng cách sử dụng cùng một kho lưu trữ như git mới đã được đóng gói refs
  • bù đắp đồng bằng packfiles: cũ git không hiểu phiên bản mới hơn (nhỏ gọn hơn) của git packfile (ofs-delta). Đây không phải là vấn đề khi tìm nạp và đẩy, vì có sự khám phá các tính năng mà máy khách hỗ trợ bởi máy chủ.

Không ai trong số đó nằm trong khoảng từ 1.6.4 đến 1.5.6, tôi nghĩ vậy.

Các vấn đề liên quan