2008-09-25 27 views
7

Bối cảnh: Trong công việc của tôi, chúng tôi sử dụng SVN, C# và VisualStudio. Một phần nhiệm vụ của tôi thường xuyên liên quan đến việc đổi tên toàn cầu. Thường thì tôi kết thúc với một bản dựng bị hỏng sau khi đổi tên một cái gì đó và sau đó hợp nhất trong các thay đổi.Công cụ hợp nhất ngữ nghĩa

Câu hỏi: có giải pháp nào có thể xem xét các thay đổi của tôi, chú ý đến việc đổi tên toàn cầu và sau đó áp dụng cho chỉnh sửa mà người khác đã thực hiện trong khi hợp nhất chúng?

Một cách khác để có được cùng một hiệu ứng sẽ là một số loại nhật ký refactor và sau đó áp dụng cho các chỉnh sửa đến.

Công cụ này không cần phải hoàn hảo, ngay cả khi nó chỉ ghi chú bất kỳ tham chiếu nào trong các chỉnh sửa của chúng được đề cập đến một thứ mà tôi đã chỉnh sửa sẽ có giá trị.

Chỉnh sửa Tôi biết các công cụ tái cấu trúc của VS. Những gì tôi đang tìm kiếm là cái gì đó sẽ cho phép tôi, sau khi tôi đã refactored bản sao làm việc của tôi, áp dụng cùng một cấu trúc lại để chỉnh sửa các dân tộc khác mà tôi bây giờ cần phải hợp nhất.

Giải pháp lý tưởng là để đảm bảo không có chỉnh sửa nổi bật khi tôi thực hiện việc tái cấu trúc, nhưng điều đó sẽ ngăn không cho bất kỳ ai khác thực hiện bất kỳ việc gì được thực hiện trong tuần tới hoặc hơn thế nữa. (Vì họ sẽ phải đồng bộ sau mỗi nửa giờ cho tuần tiếp theo)

+1

Hiện tại, một tùy chọn tốt (thương mại) có vẻ là [So sánh mã] (http://www.devart.com/codecompare/), có sẵn trên Trình quản lý mở rộng của Visual Studio. – rsenna

+1

Bạn đã kiểm tra cái này chưa ?? http://plasticscm.com/sm/index.html Bạn nên, nó là chính xác các công cụ C# bạn đang tìm kiếm – pablo

+0

Vì vậy, những gì bạn thực sự muốn là một công cụ vá ngữ nghĩa. – mbx

Trả lời

0

Giả sử ít nhất là VS 2005 và đổi tên toàn cầu là một biến/thuộc tính/chức năng, có một Trình đổi tên - Đổi tên menu chuột phải có thể dùng. Bằng cách thiết kế nó tuyên truyền thay đổi tên trong toàn bộ giải pháp của bạn.

+0

Đó là những gì tôi đang sử dụng trong bit đầu tiên. Nó không làm tốt hơn nhiều vì nó sẽ không phản ứng mã không hợp lệ (và đó là những gì tôi nhận được sau khi hợp nhất) – BCS

0

Bạn sẽ không thể giảm thời gian cần thiết để bạn thực hiện thay đổi? Một hoặc nhiều tuần có vẻ khá dài giữa các cam kết ...

0

Tôi đã hiểu sự cố của bạn. Thật không may, tôi nghĩ rằng không có một kịch bản SVN đủ thông minh để làm công việc này trong khi đồng bộ hóa.

Có thể nhóm của bạn làm việc phù hợp hơn với SVN có thể khiến tình trạng này trở nên vô lý. Khi bạn làm một svn: update trong bản sao làm việc của bạn và nhận ra các hoạt động hợp nhất, nó là một thực hành tốt để xây dựng lại các giải pháp cập nhật trước khi thực hiện các thay đổi.

Có tập lệnh svn có khả năng tự động thực hiện khi kết hợp sẽ thật tuyệt vời.

1

Giữ đổi tên riêng biệt từ các phép tái cấu trúc khác. Họ thường có thể được tự động và do đó làm cho những thay đổi rất dễ dàng. Bạn thậm chí có thể phân phối các tập lệnh để cho phép các kỹ sư khác kết hợp với địa ngục để thực hiện các phép biến đổi trên các tệp đó.

Không có cách nào dễ dàng để tự động hóa cấu trúc lại, vì vậy hãy giữ cho nó đơn giản. Việc đổi tên chỉ mất vài phút và bạn có thể kiểm tra và cam kết với thử nghiệm tối thiểu.

+0

Re that lat bit: Nói chung tôi đồng ý, tuy nhiên một công cụ có thể nhận ra một số lớp đặc biệt của refactorings (có thể tự động) và áp dụng chúng cho các mã khác nên thực tế. – BCS

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