Tôi có nên thêm tệp .vcxproj.filter vào kiểm soát nguồn không?


169

Khi đánh giá Visual Studio 2010 Beta 2, tôi thấy rằng trong thư mục được chuyển đổi, các tệp vcproj của tôi đã trở thành các tệp vcxproj . Ngoài ra còn có các tệp vcxproj.filter bên cạnh mỗi dự án dường như chứa mô tả về cấu trúc thư mục (\ Source Files, \ Header Files, v.v.).

Bạn có nghĩ rằng các tệp bộ lọc này nên được giữ cho mỗi người dùng hoặc chúng nên được chia sẻ trên toàn bộ nhóm nhà phát triển và được kiểm tra vào SCC?

Suy nghĩ hiện tại của tôi là kiểm tra chúng, nhưng tôi tự hỏi liệu có lý do nào để không làm điều đó không, hoặc có lẽ là lý do chính đáng tại sao tôi chắc chắn nên kiểm tra chúng.

Lợi ích rõ ràng là các cấu trúc thư mục sẽ khớp nếu tôi nhìn vào máy của người khác, nhưng có lẽ họ muốn sắp xếp lại mọi thứ một cách logic?

Câu trả lời:


59

Các phiên bản trước của Visual Studio (ít nhất là phiên bản 6.0 và 2008) lưu trữ thông tin đó trong tệp dự án của riêng họ (tệp .dsp và .vcproj tương ứng), tất nhiên là tốt để thêm vào SCC.

Tôi không thể nghĩ ra bất kỳ lý do nào để không bao gồm các tệp .filter này trong SCC


Tôi với bạn Tôi đã kiểm tra nó. Cảm ơn!
jschroedl

111

Chúng tôi cố tình kéo .filter. thông tin tệp ra khỏi .vcproj khi chúng tôi dịch sang định dạng .vcxproj MSBuild. Một lý do chính xác là những gì bạn đã chỉ ra, rằng các bộ lọc hoàn toàn là một chế độ xem logic và các thành viên nhóm khác nhau có thể muốn các chế độ xem khác nhau. Khác là đôi khi bản dựng được thiết lập để kiểm tra dấu thời gian của tệp dự án và kích hoạt xây dựng lại nếu nó đã thay đổi - bởi vì điều đó có thể có nghĩa là có các tệp nguồn khác nhau để xây dựng hoặc cài đặt khác, v.v. nhớ lại nếu chúng tôi thực sự vận chuyển với bản dựng theo cách đó, nhưng ý tưởng là chúng tôi không muốn kích hoạt xây dựng lại chỉ vì các bộ lọc thay đổi, vì chúng không ảnh hưởng đến bản dựng.


3
để xây dựng lại tự động, bạn xây dựng nếu có bất kỳ tệp nào thay đổi (ví dụ nguồn), vì vậy bây giờ không có gì thay đổi ngoại trừ chúng tôi có một tệp khác để quản lý.
gbjbaanb

3
nói cách khác, bạn quản lý cả hai tệp như thể chúng là một. Tôi không nghĩ ai khác sẽ đối xử riêng với họ. Đó là một ý tưởng hay, nhưng một chút suy nghĩ về các hoạt động trong thế giới thực sẽ đi một chặng đường dài (như đưa thời gian chạy vào WinSxS)
gbjbaanb

9
Tôi đối xử với họ một cách riêng biệt. Theo như tôi quan tâm, càng ít crap phải được bảo tồn như một phần của trạng thái dự án thì càng tốt, vì vậy tôi nghĩ đây là một quyết định tốt.
rwallace

6
Chúng ta có thể vô hiệu hóa các bộ lọc đó hoàn toàn không nếu chúng ta không muốn sử dụng bất kỳ cây trừu tượng / logic nào mà chỉ xem hệ thống tệp đơn giản?
Johan Boulé

4
@JohanBoule: Tôi hoàn toàn đồng ý! Họ nên loại bỏ các bộ lọc trong IDE. Đã có một cấu trúc cây logic và nó được gọi là "hệ thống tập tin". Hiện tại có rất nhiều sự trùng lặp - mỗi tệp phải được thêm vào hệ thống tệp, vào tập lệnh xây dựng (vcxproj), bộ lọc (vcxproj.filters), kiểm soát nguồn và có thể ở một nơi khác. Nó vi phạm nguyên tắc DRY. May mắn thay , có vẻ như các tập tin bộ lọc là tùy chọn . Bạn chỉ có thể xóa chúng và sử dụng nút "Hiển thị tất cả tệp" trong IDE. Đáng tiếc rằng nó không phải là mặc định.
Yakov Galka

5

Tôi chỉ thấy rằng nếu bạn sử dụng Git, bạn có thể đánh dấu các tệp .filter được coi là hợp nhất để hợp nhất để làm cho nó đơn giản hơn. Chỉ cần thêm dòng:

*.vcxproj.filters merge=union

vào tập tin .gitattribut của bạn.

Xem Sử dụng .gitattribut để tránh xung đột hợp nhất để biết thêm chi tiết.


Liên kết được đề cập không cho biết tệp .filters này phải có "union" được đề cập trong tệp gitattribut.
ollydbg23

2
Nhưng nó cho biết những gì merge=unionkhông - không có gì khác đã được hứa. Với kiến ​​thức đó và một ý tưởng rất rộng, các tệp * .filter trông như thế nào, thật dễ dàng để biết lý do tại sao merge=unionmột ý tưởng tốt cho các tệp đó.
Peter Schneider

1

Nó không nên được bổ sung trong trường hợp bạn sử dụng CMake(hoặc các công cụ xây dựng tương tự) để tạo ra các tập tin như *.sln, *.vcxproj, *.vcxproj.filtersvv, bởi vì các tập tin này có thể chứa các đường dẫn đầy đủ đến thư mục dự án của bạn và các chỉ thư mục cụ thể của máy tính của bạn .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.