Điều gì xảy ra nếu kho lưu trữ phụ thuộc bị xóa trên GitHub?


9
  • Tôi sở hữu một kho lưu trữ GitHub, A.
  • Kho lưu trữ B là một dự án nguồn mở khác, thuộc sở hữu của người khác.
  • Kho lưu trữ A phụ thuộc vào kho B (kho B là mô hình con của A).

Nếu chủ sở hữu kho lưu trữ B quyết định xóa kho lưu trữ đó, người dùng sẽ không thể sao chép / kiểm tra / xây dựng kho lưu trữ của tôi thành công nữa.

Tôi có nên chọn ngã ba B để sử dụng làm bản sao lưu trong trường hợp chủ sở hữu quyết định xóa nó không? Đây có được coi là một tình huống nguy hiểm hay không, hay nó thường được xử lý như thế nào đối với các dự án nguồn mở?


3
Sửa lỗi cho tôi nếu tôi thiếu thứ gì đó, nhưng nếu A phụ thuộc vào B, thì bất cứ khi nào ai đó muốn xây dựng A, họ phải sao chép cả A và B, vì vậy ngay cả khi B bị xóa, mọi người sử dụng A có thể có một bản sao của B (bao gồm cả lịch sử) nằm xung quanh hệ thống của họ, bởi vì git là một DVCS, vì vậy tỷ lệ cược là bạn có thể tạo một ngã ba hồi tố. Đúng? Hay đây là một số loại "phụ thuộc" khác?

Đó là một sự phụ thuộc subrepo bình thường. Nhưng về cơ bản, tôi là người duy trì A. Nó ổn định và không có sự phát triển tích cực nào xảy ra (chỉ sửa lỗi thường xuyên), vì vậy để giữ cho ổ SSD nhỏ của tôi sạch sẽ, tôi chỉ giữ mã trên GitHub. Vì vậy, tôi cảm thấy như đây là một tình huống nguy hiểm, vì A sẽ gặp rắc rối nếu chủ sở hữu của B quyết định xóa B và tôi không có ngã ba phủ đầu.

3
Dĩa là miễn phí. Nếu nó giúp bạn ngủ vào ban đêm, hãy làm điều đó.

Câu trả lời:


3

Nếu chủ sở hữu kho lưu trữ B quyết định xóa kho lưu trữ đó, người dùng sẽ không thể sao chép / kiểm tra / xây dựng kho lưu trữ của tôi thành công nữa.

Nếu mã phụ thuộc "repo B" biến mất:

  • Tất cả người dùng sẽ có thể sao chép thành công repo của bạn.
  • Người dùng hiện tại có thể sẽ có một bản sao của repo B tại địa phương và tiếp tục xây dựng tốt. Các bản sao được nhân bản thường không bị xóa nếu nguồn bị xóa trừ khi người dùng không sử dụng để thiết lập cụ thể cho kịch bản đó. Vì Git là một DVCS, nó được thiết kế để bảo vệ chống lại loại điều này.
  • Người dùng mới sẽ không thể xây dựng repo của bạn cho đến khi họ có thể nhận được một bản sao của repo B từ một nơi nào đó. Bạn sẽ ở trong chiếc thuyền này vì bạn không lưu trữ một bản sao lưu.

Tôi có nên chọn ngã ba B để sử dụng làm bản sao lưu trong trường hợp chủ sở hữu quyết định xóa nó không?

Đúng.

Đây có được coi là một tình huống nguy hiểm hay thường được xử lý cho các dự án nguồn mở?

Vâng, đây là một tình huống nguy hiểm tùy thuộc vào mức độ phổ biến / phân phối / gương của repo phụ thuộc và tầm quan trọng của repo đối với bạn. Nếu nó quan trọng với người khác, họ (hy vọng) đã có bản sao lưu của cả repo của bạn và dep repo.

Lưu ý rằng bạn có thể chia nó trên GitHub vào tài khoản của mình và không sao chép nó vào ổ SSD của bạn để không chiếm dung lượng. Ngoài ra, hãy nhớ rằng tùy chọn sao lưu phụ thuộc vào không có gì xảy ra với máy chủ của GitHub hoặc tài khoản của bạn không bị xâm phạm; chỉ có bạn mới có thể xác định mức độ dư thừa là đủ.

Xem xét số lượng mã bạn đang dựa vào, mức độ phổ biến của nó, khó khăn để tái tạo nó và chi phí để lưu trữ nó một cách đáng tin cậy. Sau khi xem xét đánh giá rủi ro đó, sao lưu nó cho phù hợp.


Vì chi phí dường như là một yếu tố trong tình huống của bạn do bạn không muốn chi nhiều hơn cho ổ SSD lớn hơn, nên đây là danh sách các tùy chọn sao lưu giá rẻ:

  1. Rõ ràng, fork nó trên GitHub vì nó hoàn toàn miễn phí. GitHub sẽ sử dụng sự trùng lặp để chi phí cực kỳ nhỏ đối với họ.
  2. Tại địa phương (miễn phí), ổ cứng quay cũ hoặc ổ đĩa flash USB. Ngoài ra, bạn có thể đã trả tiền để sao lưu đám mây miễn phí thông qua ISP hoặc nhà cung cấp di động.
  3. Từ xa (miễn phí), nhiều tùy chọn sao lưu đám mây miễn phí hoặc hỏi bạn bè.
  4. Từ xa ($), mua gói Usenet trên mỗi GB và tải nó lên Usenet (~ 25 GB với giá $ 10 USD)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.