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?
Trả lời
Đ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.
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
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
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.
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). –
- 1. "Cuối cùng" sẽ làm gì nếu bạn đặt nó trước một biến?
- 2. Bạn sẽ làm gì khi đột nhiên bị ném vào một dự án lớn?
- 3. Có điểm nào để giảm thiểu JavaScript nếu bạn đã bật tính năng nén không?
- 4. Bạn sẽ làm gì nếu tệp trong TFS bị khóa bởi người khác?
- 5. "Thử" của Scala có nghĩa là gì nếu không bị bắt hoặc chặn cuối cùng?
- 6. Python chức năng để chuyển đổi giây vào phút, giờ, và ngày
- 7. NSNumber giây để Giờ, phút, giây
- 8. điều gì sẽ xảy ra nếu php.ini bị thiếu?
- 9. Định dạng giây và phút
- 10. Biến đổi CSS: thuộc tính translate() cuối cùng là gì?
- 11. Nếu tôi xây dựng một hệ điều hành mới, loại tính năng nào sẽ có?
- 12. Lệnh cuối cùng trong cùng thiết bị đầu cuối
- 13. Oracle chuyển đổi giây sang giờ: phút: giây
- 14. Làm mới lại ô "Cuối cùng" của Trang tính
- 15. Countdowntimer theo phút và giây
- 16. Nhận dữ liệu trong vài giây, muốn tính giờ, phút & giây
- 17. Trong Java nếu một sợi bị giết, điều gì sẽ xảy ra với luồng khác?
- 18. Tính năng C# nào sẽ bị xóa nếu tính tương thích ngược không phải là vấn đề?
- 19. SQLiteCursor sẽ làm gì nếu một cột là null?
- 20. Điều gì sẽ xảy ra nếu hai tập lệnh python muốn viết trong cùng một tệp?
- 21. Cập nhật TSQL phút và giây DATETIME
- 22. Trong Java, điều gì sẽ xảy ra nếu bạn sử dụng Double.NaN trong một hoạt động?
- 23. Chuyển đổi giây thành Ngày, Phút và Giây
- 24. Gọi hàm javascript sau 5 giây bấm phím cuối cùng
- 25. Java - Nếu tôi trở lại trong khối catch, khối cuối cùng sẽ được thực hiện?
- 26. Điều gì sẽ xảy ra nếu tôi thả một cột MySQL mà không làm giảm chỉ mục của nó trước?
- 27. Nếu bạn bao gồm một tính năng được yêu cầu nhiều về cơ bản là sai?
- 28. Điều gì sẽ xảy ra nếu tôi ReleaseMutex() hai lần?
- 29. Trong .NET, nếu cái gì đó thất bại trong khối catch, cuối cùng sẽ luôn được gọi?
- 30. Lịch Java nhận ngày hiện tại, không có giờ, phút, giây và mili giây, tính bằng mili giây
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