6

Giả sử bạn làm việc trên một dự án lớn với nhiều tính năng được nhắm mục tiêu trong mỗi bản phát hành. Chúng tôi có thể có các chi nhánh tính năng khác nhau (trong VCS) cho mỗi phát triển tính năng. Nhưng sau khi tất cả các chi nhánh tính năng được sáp nhập và tích hợp được thực hiện nói rằng một trong những tính năng được giảm xuống (điều này xảy ra thường xuyên hơn trong tổ chức của chúng tôi hơn bạn sẽ tưởng tượng). Có cách nào để khôi phục một tính năng vào thời điểm này không? Những gì chúng ta thường làm là để tìm ra tất cả các thay đổi mã và tự quay trở lại. Bạn có bất kỳ quy trình/thực hành tốt nhất nào sẽ giúp giảm nỗ lực này không? Đối với hồ sơ, chúng tôi có một dự án java với subversion như VCS.Bạn sẽ làm gì nếu một tính năng bị giảm vào giây phút cuối cùng?

+0

Việc hợp nhất một đối tượng địa lý tại một thời điểm không phải là một tùy chọn. – rerun

Trả lời

5

Điều đó phụ thuộc vào lý do bạn bỏ tính năng này.

Nếu "ở thời điểm cuối cùng" là trong khi kiểm tra hệ thống và bạn không muốn lặp lại, thì tôi muốn nói rằng bạn chỉ cần tắt tính năng này và gửi đi.

Chúng tôi đã làm điều này trong quá khứ; việc xóa đối tượng địa lý có thể quá mạo hiểm về việc tạo thêm lỗi. Nếu bạn không muốn tính năng này nữa (ví dụ, yêu cầu đã biến mất, hoặc việc triển khai đã được quyết định là không chính xác), thì có lẽ tốt hơn về rủi ro để chỉ tắt nó với các thay đổi mã tối thiểu.

Ý tôi là, xóa hoặc ẩn các thành phần giao diện người dùng bật tính năng này, khi đó người dùng sẽ không biết tính năng đó (miễn là nó bị tắt theo mặc định).

Hy vọng rằng trong một bản phát hành trong tương lai sẽ có cơ hội để cấu trúc lại một phần của mã và loại bỏ đối tượng địa lý hoặc giới thiệu lại nó một cách chính xác.

+0

Hầu như đúng (nhưng vẫn +1). Vô hiệu hóa, * RE-TEST *, sau đó gửi. Tắt bằng thay đổi tối thiểu cần thiết để tắt tính năng này. Trong một hệ thống dựa trên GUI, điều này có thể đơn giản như vô hiệu hóa hoặc loại bỏ một mục menu. Trong các hệ thống khác, bạn cần tìm ra sự thay đổi tối thiểu ... – Mawg

+0

Ok, bạn vẫn cần thực hiện một số kiểm tra hệ thống sau khi tắt tính năng này, chủ yếu để kiểm tra các hồi quy được giới thiệu bằng cách tắt tính năng này (ví dụ: một số tính năng khác) và để đảm bảo rằng tính năng này thực sự bị tắt. – MarkR

1

Nếu bạn đang sử dụng TortoiseSVN làm ứng dụng khách, ứng dụng này có "khôi phục các thay đổi từ bản sửa đổi này" ngay trong menu ngữ cảnh.

Chỉ cần hiển thị nhật ký trên bản sao đang hoạt động và chọn bản sửa đổi mà bạn muốn đảo ngược (trong trường hợp này, bản sửa đổi đại diện cho nơi bạn đã hợp nhất trong chi nhánh tính năng).

alt text http://img64.imageshack.us/img64/9053/svnreversemerge.png

Nếu không, bạn có thể thực hiện hợp nhất ngược từ dòng lệnh. Đảo ngược hợp nhất tạo ra một bản sửa đổi mới đó là sửa đổi CHÍNH trừ đi những thay đổi từ bản sửa đổi mà bạn đảo ngược sáp nhập, vì vậy bạn luôn có thể "đảo ngược đảo ngược" hợp nhất. SVN là tuyệt vời như vậy.

+0

Vấn đề với điều này là bạn sẽ thực hiện các thay đổi do kết quả của QA/UAT sau khi bạn tích hợp tính năng này, vì vậy sẽ có một sự khôi phục rất lộn xộn. Sẽ an toàn hơn nếu vô hiệu hóa tính năng này, nếu có thể và đặc biệt nếu bạn nghi ngờ liệu tính năng này có trở lại sau này hay không (trung thực - nếu khách hàng của bạn cam kết thời gian mã hóa đối với đối tượng địa lý) vào cuối ngày này, họ có thể sẽ thay đổi ý định vào tuần tới). –

Các vấn đề liên quan