2010-05-12 39 views
13

Tôi đã gặp phải điều này trong nhiều dự án. Khi cơ sở mã phát triển, một số thư viện, ứng dụng và thành phần bị bỏ rơi và/hoặc không được chấp nhận.Mã cũ/cũ/không sử dụng có nên bị xóa khỏi kho kiểm soát nguồn không?

  1. Hầu hết mọi người thích giữ chúng. Lý do thông thường là mã không thực sự chiếm bất kỳ không gian nào, có thể để lại một mình cho đến khi cần.
    Vì vậy, một kho lưu trữ từ từ biến thành một cesspool của mã di sản, nơi thật khó để tìm thấy bất cứ điều gì.
    Một lập luận khác để giữ mã cũ xung quanh là những người mới sẽ không bị cám dỗ để cố gắng thực hiện một cái gì đó đã được thực hiện trong quá khứ, nhưng không hoàn toàn làm việc ra ngoài.

  2. Một số người xóa mã cũ, vì nó tạo ra lộn xộn, tăng thêm câu hỏi cho người mới và bạn có thể khôi phục mọi ảnh chụp cũ của cơ sở mã.
    Tuy nhiên bạn không thể luôn tìm mã cũ nếu bạn không biết phải tìm ở đâu, vì không có VCS phổ biến nào mà tôi biết cung cấp tìm kiếm trên toàn bộ kho lưu trữ bao gồm tất cả các phiên bản lịch sử và cách duy nhất để tìm kiếm các tệp cũ là để kiểm tra bản sửa đổi nơi tệp đã xóa tồn tại.

Cách tiếp cận tốt để quản lý kho lưu trữ là gì?

+1

Điều này không nên được thực hiện trên [Lập trình viên] (http://programmers.stackexchange.com/)? – Cacovsky

+2

@Cacovsky nó đã không tồn tại trở lại sau đó. –

Trả lời

15
  1. Xóa bỏ. Đó là lộn xộn - nếu nó không phục vụ một điểm hoặc là khó hiểu, nó tốt hơn đi.
  2. git grep hoặc tương tự.
2

Chúng tôi có một chi nhánh để chúng tôi sao chép các thư viện và dự án cũ trước khi xóa chúng khỏi thân cây.

repo 
    +- trunk 
    +- tags 
    | +- old-code 
    |  +- project1 
    |  +- project2 
    |   ... 
    +- branches 

Mặc dù, phải trung thực, tôi thực sự không thể nghĩ đến một thời điểm mà chúng tôi đã thực sự đi trở lại một dự án cũ và hồi sinh nó ...

1

Chi nhánh mã gốc. Dọn dẹp bản gốc/thân cây và các bản phát hành trong tương lai.

Mã cũ nằm ở đó cho bất kỳ ai có thể hoặc không cần đến.

Theo như tìm kiếm tệp, tôi biết git có thể thực hiện việc này. Nhưng nói chung bạn chỉ cần tìm kiếm các cam kết bản ghi của bất kỳ kho

git log --all -- legacyfile 

Sau đó tìm tập tin trong ngành:

git branch --contains $filehash 

chỉnh sửa Chỉ muốn thêm rằng nhiều lần tôi đã có một cần phải quay lại và tìm các tệp trong các dự án khác đã cũ, 5 hoặc 10 năm hoặc lâu hơn. Tôi rất biết ơn vì nó vẫn còn đó.

8

Mã không sử dụng chiếm không gian trong tâm trí của mọi người. Mã không được sử dụng và không cần thiết mã hóa các mô hình tinh thần của mọi người và làm cho khó hiểu hơn về mọi thứ trong kho lưu trữ ("oh, đừng lo lắng về điều đó, chúng tôi không sử dụng nó nữa").Nó là tốt để xóa mã từ kho lưu trữ trong những trường hợp này, nhưng nó có thể hữu ích để tài liệu (trên một wiki hoặc tương tự) những gì cũ ứng dụng/thành phần/etc đã bị xóa, tại sao họ đã bị xóa, và nơi họ có thể được tìm thấy.

2

Trong kho lưu trữ Subversion cá nhân của tôi, có đầy đủ các dự án bị bỏ rơi, tôi di chuyển những thứ tôi không muốn thấy nữa trong thư mục/attic. Tôi cũng có thể xóa chúng nhưng, với chi phí của một thư mục phụ ở gốc đa dự án, tôi không phải tìm kiếm xung quanh lịch sử khi tôi muốn tìm một thứ gì đó mà tôi nghĩ mình không cần nữa.

+0

Tôi cũng làm như vậy. Tôi gọi nó là '_archive'. Bây giờ, sau đó tôi đào qua nó để lấy ra những thứ cũ tôi đã thử mà không bay, nhưng có một số giá trị nghiên cứu. –

1

Xóa nó. Nếu nó không có kiểm tra, bạn thậm chí không biết nếu nó vẫn hoạt động. Nếu có bất kỳ phần nào hữu ích, hãy kéo chúng ra. Mã cũ luôn giữ bạn quay lại. Nếu bạn không thể dễ dàng xây dựng lại chức năng bạn đã có trong mã cũ, hoặc bạn không nên thay thế nó, hoặc mã mới của bạn là không tốt.

Đối với các dự án mang lại thành viên mới: Bạn càng có nhiều mã thì càng mất nhiều thời gian để tìm hiểu các dây và càng khó thực hiện thay đổi. Cruft chỉ gây ra sự nhầm lẫn. Mã cũ chỉ có ý nghĩa với những người xung quanh khi nó hoạt động.

Đối với các dự án cá nhân của tôi, tôi có thói quen di chuyển các ý tưởng không thành công vào thư mục _archive. Thư mục đó chỉ được sử dụng để tham khảo và các lần thử sau này. Đã được các dự án tiêu thụ hàng loạt họ sẽ được loại bỏ ngay lập tức để giảm thiểu kích thước cơ sở mã.

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