Mục lục
Chương này là một phiên bản sửa đổi của cùng một chương trong cuốn sách Subversion. Một phiên bản trực tuyến của cuốn sách Subversion có sẵn ở đây: http://svnbook.red-bean.com/.
Chương này là một giới thiệu ngắn, bình thường tới Subversion. Nếu bạn là người mới đến với kiểm soát phiên bản, chương này chắc chắn là dành cho bạn. Chúng ta bắt đầu với một cuộc thảo luận về khái niệm chung về kiểm soát phiên bản, làm việc theo cách của chúng tôi vào những ý tưởng cụ thể sau Subversion, và hiển thị một số ví dụ đơn giản về Subversion đang được sử dụng.
Mặc dù các ví dụ trong chương này cho thấy mọi người chia sẻ bộ sưu tập của mã nguồn chương trình, hãy nhớ rằng Subversion có thể quản lý bất kỳ loại sưu tập tập tin nào - nó không bị giới hạn trong việc giúp các lập trình viên máy tính.
Subversion là một hệ thống tập trung chia sẻ thông tin. Tại cốt lõi của nó là một kho , đó là một cửa hàng trung tâm dữ liệu. Kho lưu trữ thông tin trong các hình thức của một cây hệ thống tập tin - Một hệ thống cấp bậc của các tập tin và thư mục. Số lượng bất kỳ các chương trình khách kết nối với kho lưu trữ, và sau đó đọc hoặc viết vào những tập tin này. Bằng cách ghi dữ liệu, chương trình khách hàng làm cho thông tin có sẵn cho những người khác; bằng cách đọc dữ liệu, chương trình khách hàng nhận được thông tin từ những người khác.
Vì vậy, tại sao điều này thú vị? Cho đến nay, điều này nghe giống như định nghĩa của một máy chủ tập tin thông thường. Và quả thực, các kho lưu trữ là một loại máy chủ tập tin, nhưng nó không giống loại bình thường của bạn. Những gì làm cho kho lưu trữ Subversion đặc biệt là nó nhớ mọi sự thay đổi từng được viết vào nó: mỗi lần thay đổi cho mỗi tập tin, và thậm chí thay đổi cây thư mục, chẳng hạn như việc bổ sung, xóa, và sắp xếp lại các tập tin và thư mục.
When a client reads data from the repository, it normally sees only the latest version of the filesystem tree. But the client also has the ability to view previous states of the filesystem. For example, a client can ask historical questions like, “ what did this directory contain last Wednesday? ”, or “ who was the last person to change this file, and what changes did they make? ” These are the sorts of questions that are at the heart of any version control system: systems that are designed to record and track changes to data over time.