2012-03-16 32 views
12

Chúng tôi vừa mới chuyển từ TFS sang Mercurial cho nhóm nhỏ của chúng tôi. Dự án chính mà 3 người làm việc trên là một ứng dụng Windows Forms trong C#. Mỗi khi bạn sử dụng nhà thiết kế, ngay cả đối với những thay đổi đơn giản, nó cũng có rất nhiều sắp xếp lại và thay đổi thành tệp .Designer. Nếu hai người làm việc trên tập tin này, thậm chí làm thay đổi đơn giản, việc hợp nhất là một cơn ác mộng tuyệt đối. Có cách nào dễ dàng để giải quyết vấn đề này không? Trong TFS, chúng tôi đã tắt các chỉnh sửa đồng thời để chúng tôi không gặp sự cố này.Có cách nào dễ dàng hơn để hợp nhất các Biểu mẫu Windows.

+2

Hợp nhất '* .Designer.cs' là một khoảng thời gian đau. – IAbstract

+0

Tôi sẽ hỏi cùng một câu hỏi về các tệp thiết kế biểu mẫu web. Tôi đoán nó có thể là khóa là giải pháp tốt nhất, nhưng không phải là một giải pháp rất thỏa mãn khi những gì bạn thực sự muốn làm là chỉ cho phép mọi người làm việc và sau đó hợp nhất sau. – regularmike

Trả lời

1

Hợp nhất các loại tệp này luôn luôn đau đớn ... Đây là lý do tại sao một số phần mở rộng "khóa" cho Mercurial tồn tại, vì vậy bạn có thể có cùng quy trình làm việc với TFS nếu cần.

Ví dụ: bạn có thể sử dụng Lock extension được viết bởi Martin Geisler để khóa .Các tệp thiết kế cho đến push tiếp theo, làm như vậy bạn sẽ tránh bất kỳ sửa đổi đồng thời nào do đó tránh hợp nhất.

+1

Tuy nhiên tôi không nghĩ rằng điều này giải quyết được vấn đề sáp nhập giữa các chi nhánh, mặc dù đó không phải là những gì OP đang yêu cầu. –

+0

"Khóa" các tập tin không phải là một giải pháp thích hợp (cũng không thực tế trong môi trường phân tán). Vấn đề là trình tạo mã của Microsoft không quan tâm đến việc làm cho tệp có thể đọc được (ví dụ: sắp xếp các thành viên, ví dụ). Nếu nó sẽ xuất mã theo một cách được sắp xếp thì bạn sẽ không phải sắp xếp qua hàng trăm khối cho một thay đổi nhỏ một dòng bất động sản bởi vì chỉ có một dòng sẽ thay đổi. Tôi thành thật không thể hiểu làm thế nào họ đã thực hiện nó cho nó để được như vậy không thể đoán trước. Họ phải sử dụng RNG để giải trí hay gì đó ... – bambams

1

Vấn đề là mỗi khi công cụ tạo mã có thể tạo mã theo thứ tự khác nhau !!! mà làm cho việc sáp nhập một nỗi đau.

Trình thiết kế WinForm (.NET), Nhà thiết kế Swing (Java) dựa vào công cụ gen mã.

Designer.cs của ASP.NET chỉ chứa trường sao lưu, trường ít có khả năng bị ảnh hưởng.

Trường hậu thuẫn của WPF được tạo bằng obj/*. G.cs, không bắt buộc phải giữ quyền kiểm soát nguồn, do đó không có sự cố hợp nhất.

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