Giá trị của việc sử dụng kiểm soát phiên bản là gì?


19

Tôi mới sử dụng kiểm soát phiên bản (hiện đang sử dụng SVN), nhưng tôi không hiểu cách thức này giúp nhà phát triển. Kiểm soát phiên bản làm gì mà làm cho nó hữu ích trong môi trường phát triển?


4
Chỉ cần đọc -ri Điều khiển nguồn tuyệt vời của Eric Sink: -ri: ericsink.com/scm/source_control.html . Đối với phần còn lại, không có nhiều điều để trả lời ở đây hoặc thảo luận.
Deckard

4
Kiểm soát nguồn là một trong những điều dường như vô nghĩa cho đến khi bạn cần nó. Sau đó, bạn nhận ra rằng bạn không thể làm mà không có nó. Thật không may, đến lúc đó thì đã quá muộn. Loại giống như bảo hiểm lũ lụt, ngoại trừ tôi thấy kiểm soát nguồn để có xa tiện ích lớn hơn.
Rein Henrichs

2
@rahmanisback bạn muốn nó ngay sau khi bạn thực hiện File | Dự án mới ... bạn cần nó ngay khi bạn có> 1 nhà phát triển trong dự án (dòng tiêu chuẩn của tôi là> 0 nhà phát triển - và tôi tin rằng điều này đúng hơn bao giờ hết)
Murph

8
Làm việc mà không có kiểm soát phiên bản giống như loại bỏ lệnh "Hoàn tác" khỏi trình xử lý văn bản bạn sử dụng để nhập bài luận hoặc xóa tất cả các công cụ xóa và sửa lỗi khỏi bàn.
rwong

2
@rahmanisback Ngay sau khi bạn vô tình xóa một tập tin hoặc làm mất dữ liệu, cho một. @rwong tương tự đẹp.
Rein Henrichs

Câu trả lời:


21

VisualSVN và TortoiseSVN chỉ là các máy khách UI cho máy chủ SVN. Máy chủ SVN là hệ thống kiểm soát nguồn / phiên bản. Hệ thống kiểm soát phiên bản là tài sản chính cho bất kỳ sự phát triển thực tế nào vì nó lưu trữ các phiên bản mã nguồn của bạn. Khi sử dụng hệ thống kiểm soát phiên bản, bạn chỉ giữ bản sao mã nguồn cục bộ. Bản sao chính được lưu trữ trên hệ thống kiểm soát phiên bản và bạn cam kết thay đổi hệ thống.

SVN cho phép:

  • dễ dàng chia sẻ mã nguồn giữa toàn đội thông qua kho lưu trữ trung tâm
  • sao lưu mã nguồn của bạn và các tệp tài nguyên khác liên quan đến dự án
  • lưu giữ lịch sử cách mã nguồn thay đổi
  • bạn có thể trở lại bất kỳ phiên bản nào được giữ trong lịch sử
  • bạn có thể so sánh các thay đổi giữa các phiên bản
  • bạn có thể thấy ai đã thay đổi
  • bạn có thể khóa tệp để truy cập độc quyền để không ai khác có thể làm việc với tệp
  • bạn có thể xem ai đang làm việc trên bất kỳ tệp mã nguồn nào hoặc ai đã khóa tệp
  • bạn có thể hợp nhất các thay đổi trong trường hợp làm việc song song trên cùng một tệp
  • bạn có thể thấy những bình luận liên quan đến những thay đổi đã cam kết
  • với các công cụ bổ sung, bạn có thể liên kết các thay đổi đã cam kết với các tác vụ
  • bạn có thể gắn nhãn / phiên bản thẻ để dễ dàng tìm thấy ví dụ như bản phát hành sản xuất
  • bạn có thể phân nhánh mã nguồn - tạo các phiên bản song song trong đó một nhánh có thể được coi là nhánh chính và có thể được sử dụng để kiểm tra một số tính năng đặc biệt hoặc tiếp tục phát triển phiên bản sản phẩm mới trong khi sửa lỗi cho phiên bản sản xuất hiện tại được sửa trong chính chi nhánh
  • bạn có thể hợp nhất các thay đổi giữa các nhánh
  • v.v.

VisualSVN là phần mở rộng cho Visual Studio cho phép bạn sử dụng kho SVN trực tiếp từ Visual Studio UI. TortoiseSVN là phần mở rộng cho Windows Explorer cho phép bạn sử dụng kho SVN trực tiếp khi bạn duyệt các thư mục và tệp.


+1. Haaa .. sau khi sử dụng VCS trong hơn một thập kỷ, thật khó để trả lời 'tại sao'. Ý tôi là nó quá rõ ràng - nhưng thực sự rất khó để nói rõ 'tại sao' theo cách bạn đã làm! Câu trả lời chính xác.
Dipan Mehta

Tôi tin rằng AnkhSVN cũng là một công việc giết người tích hợp SVN vào Visual Studio.
Saul Delgado

6

Kiểm soát phiên bản cung cấp một số điều:

  • Lưu trữ phần mềm của bạn để bạn có thể thấy trạng thái của nó tại các thời điểm trước đó. Rất hữu ích cho việc tìm nơi một lỗi được giới thiệu.
  • Cho phép nhiều nhà phát triển trên cùng một dự án chia sẻ và điều phối công việc của họ trong khi giúp bảo vệ chống lại việc ghi đè lên nhau làm việc.
  • Hỗ trợ liên tục cá nhân và doanh nghiệp đặc biệt thông qua một máy chủ trung tâm được bảo vệ và sao lưu.

Tối thiểu cho bất kỳ công việc phát triển phần mềm nào ngoài việc mày mò xem điều gì sẽ xảy ra.

Tôi luôn cảnh báo bất cứ ai lần đầu tiên làm việc với hệ thống kiểm soát phiên bản rằng việc tránh nó chỉ gây rắc rối. Họ sẽ gặp phải một vấn đề mà khi họ nhìn lại, họ sẽ nhận ra điều đó sẽ không xảy ra nếu họ sử dụng hệ thống.


0

Các nhà phát triển năng suất cao nhất là một mình. Một nhà phát triển đơn độc không bao giờ phải lo lắng về việc phối hợp với bất kỳ ai khác. Nhưng ngay khi dự án đi số nhiều, có chi phí hoạt động. Và đối với mỗi nhà phát triển được thêm vào nhóm, chi phí trở nên tồi tệ hơn. Công việc của VCS là giúp quản lý chi phí này và giảm thiểu các hiệu ứng.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
Ngay cả một nhà phát triển đơn độc cũng cần kiểm soát phiên bản. VCS không chỉ "quản lý chi phí" như trích dẫn này.
alroc

5
Ngay cả một nhà phát triển đơn độc cũng có thể nhận ra họ đã làm điều gì đó sai một tuần trước và muốn lấy lại mã cũ. Ngay cả một nhà phát triển đơn độc cũng có thể muốn thử một bộ các nhà tái cấu trúc lớn, phức tạp mà không gặp rủi ro với cơ sở mã gốc.
Gort Robot

Tôi nghĩ rằng hầu hết các khía cạnh "sao lưu" và "khôi phục" của kiểm soát phiên bản là rõ ràng, nhưng phải đến khi bạn nhận ra cách kiểm soát phiên bản giúp giảm chi phí hợp tác mà ai đó thực sự hiểu giá trị của nó.
Jace Browning
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.