Những loại tệp Visual C ++ nên được cam kết kiểm soát phiên bản?


170

Những loại tệp Visual Studio \ Visual C ++ nên được cam kết kiểm soát phiên bản?
Trong dự án của tôi, tôi có các loại tệp sau:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

Tôi sẽ đánh giá rất cao một lý do ngắn cho mỗi. Nếu bất kỳ trong số họ đang gây tranh cãi, xin vui lòng lưu ý nó. Tôi cố tình bao gồm các loại tệp thậm chí tầm thường để hoàn thiện.

BIÊN TẬP

Một mặt tôi muốn được độc lập nền tảng trong tương lai. Mặt khác, trong tương lai gần, tôi muốn làm việc với các thành viên trong nhóm với các thiết lập tương tự. Khả năng tương thích thư mục giữa các thiết lập chắc chắn là một tùy chọn, do đó, các tệp cấu hình giữ đường dẫn có thể được bao gồm nếu nó giúp giảm bớt công việc.
Một lần nữa, tôi chắc chắn sẽ đánh giá cao một lời giải thích những gì.


23
Ồ, câu hỏi này là một bằng chứng xác thực cho số lượng tệp tạm thời ngày càng tăng mà VS khăng khăng tạo trong thư mục dự án của bạn.
Nik Reiman

@Nik: chúng không có trong thư mục của dự án.
Hans Passant

1
@Hans, họ đang ở đó hoặc dưới thư mục con của dự án
Nik Reiman

@Nik: không phải là msbuild goo. Mà tôi giả sử bạn có nghĩa là với các tập tin tạm thời. Tôi đồng ý, nó không đẹp.
Hans Passant

6
Tôi mời bạn dùng thử môi trường phát triển ISE của Xilinx (để lập trình HDL) và xem có bao nhiêu tệp tạm thời xuất hiện. Hàng trăm tệp với hàng trăm tiện ích mở rộng :) Nói về một mớ hỗn độn. Visual Studio rất sạch sẽ trong so sánh.
Mark Lakata

Câu trả lời:


232

Đúng:

  • cpp: mã nguồn
  • bộ lọc: tập tin dự án
  • h: mã nguồn
  • ico: tài nguyên
  • RC: kịch bản tài nguyên
  • RC2: tập lệnh tài nguyên
  • sln: tập tin dự án
  • txt: yếu tố dự án
  • vcxproj: tập tin dự án

Không:

  • aps: trạng thái biên tập tài nguyên cuối cùng
  • exe: kết quả xây dựng
  • idb: xây dựng nhà nước
  • ipch: xây dựng người trợ giúp
  • Lastbuildstate: xây dựng người trợ giúp
  • lib: xây dựng kết quả. Có thể là bên thứ 3
  • nhật ký: xây dựng nhật ký
  • bảng kê khai: xây dựng người trợ giúp. Có thể tự viết.
  • obj: xây dựng người trợ giúp
  • pch: xây dựng người trợ giúp
  • pdb: kết quả xây dựng
  • res: xây dựng trợ giúp
  • sdf: dbase intellisense
  • suo: tùy chọn người dùng giải pháp
  • tlog: xây dựng nhật ký
  • người dùng: cài đặt gỡ lỗi. Giữ gìn nếu chỉ một dev hoặc cài đặt gỡ lỗi tùy chỉnh

Một vài trong số này là iffy vì cả hai đều có thể tự động tạo và duy trì chính bạn. Và có một vài cái nữa không xuất hiện trong danh sách của bạn. Chủ yếu chú ý đến vị trí của tập tin. Nếu nó nằm trong thư mục giải pháp hoặc dự án của bạn thì rất có khả năng bạn muốn kiểm tra nó. Trong các thư mục con Gỡ lỗi hoặc Phát hành thì rất khó xảy ra. Build + Clean loại bỏ rất nhiều tập tin tiếng ồn. Và tất nhiên: đăng ký, đổi tên thư mục dự án, kiểm tra và xác minh rằng nó xây dựng.


Điều này rất hữu ích. Dự án của tôi cũng có .vcb (dự án này được chuyển đổi từ phiên bản cũ hơn (eVC) nên có thể liên quan đến điều đó.
Robbie Matthews

Còn .vcxproj.filterscác tập tin thì sao?
John Alexiou

1
Cũng KHÔNG cho .OPENSDF
Zam

1
@ ja72 filtersđã nằm trong danh sách "có" kể từ lần sửa đổi đầu tiên của câu trả lời
Tiểu hành tinh có cánh

26

Từ danh sách của bạn, tôi sẽ chọn những thứ đó:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

Nói chung, bạn nên phiên bản tất cả các tệp cần thiết để xây dựng dự án. Các tập tin được tạo tự động không nên được lưu trữ imho.


@ milan1612 cảm ơn bạn vì danh sách ngắn gọn. So với câu trả lời của Hans Passant, bạn nói tôi nên cam kết các tệp kê khai mà anh ta nói tôi không nên. Bạn có thể giải thích ý nghĩa của tệp này và tại sao bạn nghĩ tôi nên cam kết nó, đặc biệt là trong môi trường nhóm (và đa nền tảng trong tương lai), nếu điều đó có liên quan?
Jonathan

3
bảng kê khai có thể có mục đích khác nhau. Tôi đã tạo thủ công các tệp được bao gồm trong tệp tài nguyên khiến các cửa sổ áp dụng kiểu cho cửa sổ của tôi. Ngoài ra, có những biểu hiện cho phép bạn triển khai các dll thư viện tiêu chuẩn cùng với khả năng thực thi của bạn. nghĩ về siêu dữ liệu về ứng dụng của bạn ...
Milan

@ milan1612 - Tôi đã gặp một loại bổ sung - suo, điều này có nên được thêm vào không? Nếu vậy, bạn có thể thêm nó vào danh sách của bạn cho đầy đủ?
Jonathan

3
@Jonathan Suo chứa dữ liệu dành riêng cho nhà phát triển liên quan đến giải pháp (chẳng hạn như tệp nào đang mở hoặc thư mục nào được mở / thu gọn trong trình khám phá giải pháp). Vì vậy, nó không nên trong kiểm soát phiên bản.
Daniel Rose

1
@ milan1612 - Theo dõi đầu vào của Daniel Rose, bạn có thể xóa suo khỏi danh sách của mình không?
Jonathan

17

Theo đề xuất của Microsoft, các kiểu tệp nên được bao gồm trong kiểm soát phiên bản:

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp và .mst ...

Các loại hình không nên được bao gồm trong:

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .Ex, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, đậm và .tlb ...

Nhưng trong trường hợp sử dụng một công cụ bên ngoài trong tệp exe hoặc thư viện bên ngoài thì tôi nghĩ nó cũng nên được đưa vào kiểm soát phiên bản

THÔNG TIN: Những tệp Visual C ++ nào cần thêm vào Kiểm soát mã nguồn

Ngoài ra, liên kết này mô tả các loại tệp cho các dự án Visual C ++ trong Visual Studio 2017.


7

Nếu bạn nhấp chuột phải vào dự án, sẽ có tùy chọn "Thêm giải pháp vào kiểm soát nguồn" trong menu ngữ cảnh.

Nếu bạn sử dụng cái này, chỉ những tập tin cần thiết mới được thêm vào. Tất cả các tập tin trung gian và đầu ra sẽ bị bỏ qua.


4

Các câu trả lời khác là tuyệt vời; Tôi chỉ nghĩ rằng tôi sẽ đóng góp một công cụ nhỏ hữu ích. Kiểm tra mẫu .gitignore của Visual Studio trên GitHub. Đây là một danh sách các tệp được duy trì tích cực, thường được giữ ngoài tầm kiểm soát phiên bản.

Và trong khi bạn đang ở đó, toàn bộ kho gitignore là một tài nguyên rất hữu ích cho tất cả các loại phát triển từ ActionScript đến Zend . Nếu bạn không sử dụng Git, bạn vẫn có thể sử dụng các tệp gitignore làm tài liệu tham khảo.


1

Nói chung, bạn nên thêm tất cả các tệp xuất hiện trong Solution Explorer vào kiểm soát phiên bản. Ngoài ra, bạn cần bao gồm các tệp .sln (tệp giải pháp) và .vcproj / .vcxproj / .vbproj / .csproj (tệp dự án).

Lưu ý rằng nếu bạn có một plugin kiểm soát nguồn cho Visual Studio, chẳng hạn như TFS hoặc AnkhSvn, thì không cần phải quan tâm rõ ràng về điều này. Visual Studio biết những tập tin nào cần có trong kiểm soát phiên bản và cung cấp dữ liệu cho plugin kiểm soát nguồn. Chỉ khi bạn sử dụng một công cụ bên ngoài (ví dụ TortoiseSVN), bạn mới cần có một danh sách như vậy.


0

Chỉ các lực lượng được yêu cầu để xây dựng mục tiêu của bạn. Tôi nghĩ rằng đây chỉ là .cpp .h .ico .rc .txt .manifest .rc2

Tôi không biết sdf, aps, bộ lọc, người dùng là gì, chưa thấy chúng trong các bản dựng C ++ của tôi.

Chỉ cần nhìn và tìm hiểu xem chúng có chứa mã viết của lập trình viên hay chúng được tạo bởi VS.


4
.sln và .vcxproj là cần thiết cho chắc chắn - họ mô tả dự án và giải pháp.
sharptooth

Có, nếu bạn không duy trì makefiles. Xin lỗi, cá nhân tôi là Anti-VS / MS đến nỗi tôi quên rằng có những người sử dụng Visual Studio làm công cụ duy nhất cho các nhà phát triển của họ. Tôi chỉ sử dụng trình gỡ lỗi.
Lothar

3
tốt, các tệp dự án VS cũng là tệp tạo tệp
Milan

-2

Trái với những gì đã nêu trong một câu trả lời trước đó, tôi muốn chỉ ra rằng nó có vẻ quan trọng đối với phiên bản kiểm soát tệp .opt để theo dõi các tùy chọn của người dùng. Xem tài liệu tham khảo dưới đây:

https://msdn.microsoft.com/en-us/l Library / aa278994 (v = vs.60) .aspx


1
Các tệp .opt kiểm soát giao diện của IDE, không phải cách chương trình của bạn được biên dịch. Vì vậy, những gì bạn cảm thấy tốt về IDE không nhất thiết phải tốt trong quan điểm của người khác
phuclv
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.