140 likes | 257 Views
TortoiseSVN Braching & Tagging. Nguyễn Văn Khiết. Nội dung. Branching và Tagging Merging Lock. Branch. Khi phát triển một dự án, đôi khi ta cần phát triển thêm một chức năng mới, nhưng vẫn muốn giữ kết quả hiện có
E N D
TortoiseSVN Braching & Tagging Nguyễn Văn Khiết
Nội dung • Branching và Tagging • Merging • Lock
Branch • Khi phát triển một dự án, đôi khi ta cần phát triển thêm một chức năng mới, nhưng vẫn muốn giữ kết quả hiện có • ta cần tạo ra nhánh (branch) riêng làm việc bên cạnh nhánh chính (main branch – trunk). Khi chức năng trong nhánh đã ổn định, ta mới thực hiện merge các thay đổi vào nhánh chính. • Các hệ thống quản lý phiên bản phải cung cấp khả năng này.
Tag • Một chức năng khác mà các hệ thống quản lý phiên bản phải hổ trợ là tagging. • Tagging là khả năng đánh dấu dự án tại một phiên bản cụ thể ta có thể lấy ra phiên bản này tại bất kỳ thời điểm nào về sau. • Tagging thường được dùng để đánh dấu một release hay một bản build nào đó.
Branching & Tagging • SubVersion không có lệnh đặc biệt nào cho Braching và Tagging. • SubVersion sử dụng cheap-copies. • Cheap-copies không copy toàn bộ repository mà tạo ra các liên kết trên cây phiên bản • Thao tác braching và Tagging rất nhanh chóng
Branching & Tagging • Thông thường, khi làm việc với SubVersion, các folder sau thường được tạo ra: • /trunk • /branches • /tags
Branching & Tagging • Để branching/tagging, ta chọn folder muốn branching/tagging, sau đó chọn Branch/Tag…. Kế tiếp, chọn revision tương ứng cần braching/tagging • HEAD revision in the repository • Specific revision in the repository • Working copy
Branching & Tagging • Practice tốt nhất • Đối với tag: chỉ là các thành phần cố định và không thay đổi. • Đối với branch: các thành phần có thể thay đổi.
Branching & Tagging • Ta có thể chuyển tới một branch hoặc một tag bằng cách dùng lệnh Switch. • Khi ta đang làm việc trên 1 branch, ta Commit thì chỉ thay đổi branch đó trên server.
Merging • Branch dùng để phát triển dự án theo nhiều hướng khác nhau. Đôi khi, ta sẽ có nhu cầu merge những thay đổi trong branch vào trunk hoặc ngược lại. • SubVersion cho phép ta thực hiện merge từ một revision trong 1 branch sang 1 revision của branch khác.
Merging • Ví dụ minh họa merging
Lock • SVN cho phép ta Lock trên một file. Một khi file được Lock, các lệnh Commit của những người khác sẽ không thể thực hiện được cho tới khi ta giải phóng Lock.
Lock • Để thực hiện Lock, ta chọn vào các file cần Lock, sau đó chọn TortoiseSVN → Get Lock... • Khi ta Lock một folder, tất cả các file trong folder này (và các folder con) sẽ bị Lock. • Để giải phóng Lock, ta chọn các file, rồi chọn TortoiseSVN → Release Lock.
Lock • Để xem các file nào đang bị Lock, ta chọn TortoiseSVN → Check for Modifications... • Ngoài ra, ta có thể chọn Breaking Lock để giải phóng Lock người khác đang giữ, hoặc Stealing Lock để giành Lock người khác đang giữ.