Theo dõi phiên bản với Subversion (SVN) cho người mới bắt đầu

Mục lục:

Theo dõi phiên bản với Subversion (SVN) cho người mới bắt đầu
Theo dõi phiên bản với Subversion (SVN) cho người mới bắt đầu

Video: Theo dõi phiên bản với Subversion (SVN) cho người mới bắt đầu

Video: Theo dõi phiên bản với Subversion (SVN) cho người mới bắt đầu
Video: [Lập Trình C] Bài 30: GCC - YouTube 2024, Tháng tư
Anonim
Bạn đã bao giờ muốn làm việc trên một dự án với khả năng theo dõi các thay đổi của bạn cũng như hoàn nguyên chúng? How-To Geek giải thích cách sử dụng hệ thống theo dõi phiên bản phổ biến, Subversion (a.k.a SVN).
Bạn đã bao giờ muốn làm việc trên một dự án với khả năng theo dõi các thay đổi của bạn cũng như hoàn nguyên chúng? How-To Geek giải thích cách sử dụng hệ thống theo dõi phiên bản phổ biến, Subversion (a.k.a SVN).

Hình ảnh rõ ràng mơ hồ

Prelog

Hướng dẫn này nhằm mục đích cung cấp cho bạn khả năng sử dụng máy khách lật đổ nói chung, và nếu bạn có một, trên bộ định tuyến DD-WRT * của bạn. Hướng dẫn này không phải là hướng dẫn dứt khoát cho Subversion và rất nhiều thông tin có thể được tìm thấy trên Sách đỏ Subversion. Hướng dẫn này chỉ nhằm cung cấp cho bạn câu trả lời viết tắt cho các câu hỏi cơ bản nhất.

Tổng quan

Có thể có nhiều lý do tại sao bạn muốn có thể “kiểm tra” mã mới nhất cho dự án phần mềm sử dụng hệ thống phiên bản. Làm như vậy cho phép bạn hưởng lợi từ những thay đổi chưa được phát hành mới nhất, giúp kiểm tra và thậm chí phát triển. Trong hướng dẫn này, chúng tôi sẽ đi qua một số thuật ngữ SVN cơ bản, cho thấy cách cài đặt SVN client trên Linux, Windows và nếu bạn có một bộ định tuyến DD-WRT được kích hoạt OPKG của bạn. Chúng tôi cũng đã bao gồm ví dụ về dự án bạn có thể kiểm tra và sử dụng cho bộ định tuyến đã nói.

Subversion là gì?

Subversion là do không có nghĩa là hệ thống kiểm soát phiên bản duy nhất tồn tại và các lựa chọn thay thế bao gồm Git (được tạo ra bởi Linus Torvalds người sáng lập hạt nhân Linux), Mercurial và PerForce để đặt tên một vài. Nói như vậy, nó là một trong những cái miễn phí, nó đã trưởng thành và được sử dụng rộng rãi trên toàn thế giới.

Trong "Sách đỏ" của Subversion:

Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”

Lưu ý: Cuốn sách này bộ sưu tập kiến thức cuối cùng về sự lật đổ và bạn nên tham khảo nó về tất cả các chủ đề liên quan đến Subversion.

Phiên bản là gì?

Versioning là một quá trình mà trạng thái của một dự án tại một thời điểm được lưu. Loại thủ tục này thường được sử dụng để quản lý phát triển phần mềm, do đó công việc có thể tiếp tục cải thiện dự án hoặc thêm các tính năng, trong khi có thể theo dõi những gì đã thay đổi từ điểm "lưu" tổng thể cuối cùng. Để xây dựng, loại thủ tục này có thể hữu ích cho một người nhưng thậm chí còn nhiều hơn thế cho một nhóm người, tất cả đều làm việc trên cùng một dự án. Điều này là do, thông thường, khi làm việc trong một dự án với tư cách là một nhóm, có sự phân bố trách nhiệm và những người khác nhau thay đổi các khía cạnh khác nhau của dự án. Nếu không có cơ chế phiên bản, sẽ rất khó để giữ cho mọi người đồng bộ với những thay đổi mới nhất từ những người khác.

Thuật ngữ

Kho lưu trữ Kho lưu trữ là vị trí nơi tất cả dữ liệu từ tất cả các địa điểm khác nhau được lưu. Trong thế giới lật đổ, từ quan điểm của khách hàng, đó là máy chủ chứa cơ sở dữ liệu của dự án. Cơ sở dữ liệu này chứa tất cả các tệp là một phần của dự án với tất cả các phiên bản trước đây của chúng.

Bản sửa đổi

Khi một kho lưu trữ được tạo ra, nó được cấp số sửa đổi bằng không (0). Con số này được tăng lên một (1) mỗi lần thực hiện một cam kết. Số sửa đổi là toàn cầu cho kho lưu trữ. Tức là, không có số phiên bản cá nhân cho các tệp riêng lẻ trong kho lưu trữ, ngay cả khi không có gì thay đổi trong tệp đó cho cam kết cụ thể đó.

Bản sao làm việc

Bản sao làm việc là bản sao cục bộ (hoặc "thanh toán") của một phiên bản cụ thể. Thông thường phiên bản này khi trả phòng là "mới nhất" (còn được gọi là "đầu"), nhưng phiên bản trước có thể được yêu cầu. Người dùng có thể làm với bản sao cục bộ bất cứ điều gì mà anh ta / cô ấy mong muốn, với kiến thức rằng, tồi tệ nhất, họ chỉ có thể kiểm tra mã một lần nữa. Hơn nữa, bản sao này là "riêng tư". Điều này là bởi vì cho đến khi bạn cập nhật hoặc cam kết bản sao của mình, bạn sẽ không thấy những thay đổi của người khác, cũng như họ sẽ không nhìn thấy bản sao của bạn.

Cập nhật & giải quyết xung đột

Bản sao làm việc cục bộ có thể được cập nhật. Tức là, Nếu bạn "kiểm xuất" một phiên bản nào đó, và trong khi bạn đang làm việc, phiên bản trên kho lưu trữ đã được cập nhật, bạn có thể cập nhật bản sao làm việc của mình lên phiên bản mới nhất. Thực tế, máy chủ sẽ ngăn bạn thực hiện các thay đổi trước khi cập nhật lên phiên bản mới nhất để phù hợp với kho lưu trữ. Điều này được thực hiện để buộc bạn phải giải quyết xung đột cục bộ, trước khi bạn thậm chí nghĩ đến việc cam kết thay đổi đối với kho lưu trữ.

Hợp nhất

Hợp nhất đề cập đến quá trình mà theo đó, mã được thay đổi được trộn vào một phiên bản. Nó cũng có thể đòi hỏi phải giải quyết xung đột.

Cam kết

Cam kết là quá trình mà các thay đổi bạn đã thực hiện cho bản sao cục bộ của mình sẽ được hợp nhất trở lại vào kho lưu trữ. Đây là phần nguy hiểm nhất của quá trình, vì nó ở đây là những thay đổi bạn đã thực hiện, có thể ảnh hưởng đến những người khác sử dụng cùng một kho lưu trữ. Đó là lý do tại sao điều này thường được thực hiện sau khi cân nhắc, với sự đồng thuận của nhóm và sau khi bạn giải quyết bất kỳ xung đột hợp nhất nào.

Quy trình làm việc

Luồng công việc cơ bản nhất từ quan điểm của người dùng khi sử dụng lật đổ là:

1. Kiểm tra mã hiện có (thường là “đầu”). 2. Thực hiện thay đổi, thêm tệp và thường phát triển mã. 3. Cập nhật lên phiên bản mới nhất, để đảm bảo bản sao cục bộ của bạn được đồng bộ với các bản cập nhật trên kho lưu trữ. 4. Địa phương hợp nhất và giải quyết xung đột nếu cần. 5. Cam kết các thay đổi đã hợp nhất vào kho lưu trữ. 6. GoTo bước 2.

Chúng ta hãy nứt

Cài đặt ứng dụng khách

Để có thể sử dụng subversion, bạn cần phải cài đặt máy khách trên máy của bạn.

Trên Linux

Bạn chỉ cần cài đặt gói. Trên Ubuntu / Mint, điều này sẽ được thực hiện với:

sudo aptitude install subversion

Trên DD-WRT

Nếu bạn đã làm theo “Cách cài đặt phần mềm bổ sung trên bộ định tuyến trang chủ của bạn (DD-WRT)“, bạn có thể cài đặt ứng dụng khách svn bằng cách đơn giản phát hành:

opkg update; opkg install subversion-client

Trên Windows

Trong khi chúng ta người dùng geek sâu sắc có thể bắt đầu quên rằng GUI thậm chí tồn tại ở lần, không phải ai cũng có. Nếu bạn muốn sử dụng một máy khách Windows để kết nối với một kho lưu trữ SVN, đến nay một kho lưu trữ phổ biến nhất là "Rùa". Để sử dụng nó, chỉ cần tải xuống chương trình và cài đặt theo kiểu "tiếp theo, tiếp theo, kết thúc" thông thường.

Tạo "kho lưu trữ"

Mặc dù chúng tôi sẽ không đi sâu vào nhiều chi tiết về cách thiết lập máy chủ lật đổ trong hướng dẫn này, thay thế của Google không phải là một khởi đầu tồi cho người dùng mới làm quen. Để tạo kho lưu trữ của Google:

  • Truy cập trang web lưu trữ Google Code và “tạo” một dự án mới.

    Image
    Image
  • Trong trang tiếp theo, điền vào các trường bắt buộc và chọn loại "hệ thống kiểm soát phiên bản" để lật đổ.

    Image
    Image

    Lưu ý: Bạn có thể muốn xem qua sự khác nhau giữa giấy phép Google cung cấp là gì, trước khi bạn chọn một gói cho dự án.

  • Nhấp vào “Tạo dự án”.

“Thanh toán” bản sao làm việc của bạn

Khi dự án của bạn đã được tạo, bạn sẽ có thể tìm thấy hướng dẫn về cách truy cập dự án trong tab "Nguồn".

Điều thú vị về mã Google, là nó sẽ cho phép một phiên bản chỉ đọc ẩn danh cho dự án của bạn. Nếu bạn không muốn đối phó với những rắc rối trong việc tạo dự án của riêng mình, bạn có thể ẩn danh kiểm tra kho lưu trữ của nhà văn này.
Điều thú vị về mã Google, là nó sẽ cho phép một phiên bản chỉ đọc ẩn danh cho dự án của bạn. Nếu bạn không muốn đối phó với những rắc rối trong việc tạo dự án của riêng mình, bạn có thể ẩn danh kiểm tra kho lưu trữ của nhà văn này.

Một lưu ý về dự án hotfortech: Dự án này có nghĩa là một trình bao bọc cho các tính năng đã được thêm vào DD-WRT trên How-To Geek (cá nhân tôi sử dụng) cộng với một số chỉnh sửa cá nhân. Trong khi dự án này được thiết kế để làm việc cùng với các bài báo được xuất bản ở đây trên howtogeek, nó vẫn là dự án riêng của tôi. Đó là, nó rất phù hợp với bộ định tuyến Buffalo của tôi (kiến trúc AR71xx), sở thích cá nhân của tôi và dễ bị borkage thường xuyên.

Trên Linux / DD-WRT

Tạo thư mục để làm việc, ví dụ trên DD-WRT, có thể là:

mkdir -p /jffs/svn; cd /jffs/svn

Lệnh đầy đủ trên Linux bao gồm lệnh SVN, chỉ thị “checkout”, địa chỉ của kho lưu trữ và thư mục để thanh toán. Tạo một thư mục trống và thực hiện lệnh dưới đây:

svn checkout https://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

Lưu ý rằng trong ví dụ trên, phiên bản chỉ đọc đang được kiểm tra. Nếu bạn đã chọn tạo kho lưu trữ của riêng mình, bạn sẽ cần phải sử dụng liên kết httpS.

Trên Windows

Vì rùa là một phần mở rộng của trình bao, bạn sẽ cần sử dụng trình đơn ngữ cảnh của trình thám hiểm tệp Windows (nhấn chuột phải) để sử dụng nó. Trong thực tế, nếu bạn cố gắng gọi nó từ trình đơn bắt đầu, bạn sẽ nhận được:

Image
Image
  • Tạo một thư mục trống.
  • Nhấp chuột phải vào nó để hiển thị menu ngữ cảnh.
  • Chọn “Thanh toán SVN”:

    Image
    Image
  • Sao chép và dán liên kết cho dự án (nếu bạn có) vào hộp văn bản “URL”:

    Image
    Image
  • Tùy thuộc vào quy mô dự án của bạn, có thể mất một lúc, nhưng khi “Thanh toán” đã hoàn tất, bạn sẽ thấy một cái gì đó như:

    Image
    Image
  • Bạn có thể bắt đầu phát triển.

“Cập nhật” & “Hợp nhất” bản sao làm việc của bạn Nếu bạn làm việc trên mã với đồng nghiệp, hoặc bản thân bạn đang cập nhật mã từ một số vị trí (ví dụ: máy tính xách tay, máy tính để bàn hoặc thậm chí bộ định tuyến), bạn sẽ phải cập nhật bản sao làm việc của mình trước khi bạn thực hiện các thay đổi mới nhất.

Trên Linux / DD-WRT

Lệnh để thực hiện điều này trên các hệ thống POSIX này đơn giản là:

svn up

Trên Windows

  • Nhấp chuột phải vào thư mục làm việc và chọn "SVN Update":

    Image
    Image
  • Nếu bạn gặp phải xung đột, hãy thử làm theo hướng dẫn trên màn hình và sử dụng phán quyết của bạn về việc phải làm gì với chúng.

"Cam kết" thay đổi của bạn Đó là nó, bạn nên xung đột miễn phí và sẵn sàng cập nhật kho lưu trữ với những thay đổi của bạn. Một điểm cần lưu ý ở đây là thực hành phổ biến là thêm thông báo “đăng nhập” vào cam kết, để có thể dễ dàng nhớ lại lý do tại sao các thay đổi được thực hiện. Trên thực tế, kho lưu trữ của Google thực hiện điều này là yêu cầu bắt buộc trước để cam kết.

Trên Linux / DD-WRT

Đây là một ví dụ về cam kết mà tôi đã thực hiện đối với dự án hotfortech đã nâng cấp lên phiên bản 19:

svn commit -m “updated to reflect new ant-ads pack link”

Trên Windows

  • Nhấp chuột phải vào thư mục làm việc và chọn “SVN Commit”:

    Image
    Image
  • Bạn sẽ được chào đón bởi một cửa sổ cho phép bạn lưu ý một thông điệp tường trình:

    Image
    Image
  • Nhấn OK và khi được nhắc nhập mật khẩu, hãy cung cấp mật khẩu do Google tạo.
  • Nếu cam kết thành công, bạn sẽ thấy một cái gì đó như:

    Image
    Image
  • Đó là nó, bạn sẽ có thể cam kết như một BOSS.

Chú thích cuối Điều này là đủ để bạn bắt đầu. Bạn nên đọc sách tham khảo của SVN để nắm bắt sâu hơn và tốt hơn về tất cả các tập quán, lựa chọn và thông báo của SVN. Ngoài ra, chúng tôi nhắc bạn (một lần nữa) rằng lật đổ không phải là hệ thống kiểm soát phiên bản duy nhất và GIT (được tạo ra bởi Linus Torvalds người sáng lập hạt nhân Linux) dường như đang trở nên phổ biến trong những năm gần đây.

Nếu bạn chọn chạy “running-config.sh” từ dự án hotfortech trên router của mình, bạn sẽ thấy rằng nó sẽ cài đặt cho bạn: Anti-ads-pack, script geek-init Opkg, cũng như những thứ như GNU đầy đủ "ls", "ít", "BASH" và hơn thế nữa.

/jffs/svn/hotfortech-dd-wrt/running-conf.sh

Nhiều tính năng khác đang chờ xử lý và sẽ được thêm vào trong tương lai.

Các quản trị viên hệ thống sẽ viết mã theo cách của họ.

Đề xuất: