Bạn luôn có thể sử dụng tham số -r
để đề cập đến một phiên bản cụ thể. Khi làm như vậy, bạn cũng có thể sử dụng tính năng ghim @rev
sửa đổi để đảm bảo bạn đang đề cập đến bố cục của bản sửa đổi Subversion tại một phiên bản cụ thể. Sau đây sẽ tạo ra một thẻ từ thân cây trên phiên bản 577 và gọi thẻ này REV-1.2
:
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2
Nếu bạn không có một trunk
, branches
, và tags
thư mục, bạn sẽ cần phải di chuyển công việc của bạn để tạo ra một số:
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags
$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/
$ # Whoops. I should have done the tagging when I had a chance.
$ #Oh well, we'll use the `@rev` pinning:
$ svn -r557 cp https://subversion.assembla.com/svn/[email protected] \
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2
Subversion không thực hiện gắn thẻ và nhánh trừ như một bản sao. Đây không phải là bất thường. Perforce thực hiện phân nhánh theo cùng một cách. Trong thực tế, một khi bạn có được sử dụng đến nó, nó hoạt động ra thực sự tốt:
- Thật dễ dàng để xem chi nhánh và các thẻ hợp lệ (chỉ cần làm một
svn ls
trên thư mục bên phải
- Lịch sử hoàn toàn của thẻ và các chi nhánh Bạn có thể thấy ai đã thực hiện thay đổi, khi nào, tại sao, v.v.
- Lịch sử hoàn chỉnh của thẻ hoặc chi nhánh được hiển thị.Nếu ai đó thay đổi thẻ hoặc chi nhánh, bạn sẽ thấy ai đã làm điều đó rất rõ ràng.
- Nó không khuyến khích loại phân nhánh skterter bạn thấy trong nhiều hệ thống kiểm soát phiên bản khác khi nhà phát triển chọn và chọn các nhánh và nhánh khác nhau để phân nhánh hoặc gắn thẻ. Điều đó làm cho việc theo dõi lịch sử rất khó thực hiện. Đề án của Subversion khuyến khích bạn nghĩ về các nhánh và thẻ ảnh hưởng đến tất cả các tệp trong một dự án.
Nguồn
2012-06-22 19:35:59