Які типи файлів Visual C ++ слід взяти за контроль версій?


170

Які типи файлів Visual Studio \ Visual C ++ слід взяти за контроль версій?
У моєму проекті є такі типи файлів:

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

Я дуже вдячний для коротких міркувань для кожного. Якщо будь-який з них є суперечливим, будь ласка, зауважте це. Я навмисно включаю навіть тривіальні типи файлів для повноти.

EDIT

З одного боку, я хотів би в майбутньому бути платформою незалежною. З іншого боку, найближчим часом я хотів би попрацювати з членами команди з подібними налаштуваннями. Сумісність папок між налаштуваннями, безумовно, є варіантом, тому файли конфігурації, що містять шляхи, можуть бути включені, якщо це полегшує робочий процес.
Знову ж таки, я неодмінно вдячний би поясненню, що робити.


23
Нічого собі, це питання є справжнім свідченням зростаючої кількості тимчасових файлів, які VS наполягає на створенні у каталозі вашого проекту.
Нік Рейман

@Nik: їх немає в каталозі проекту.
Ганс Пасант

1
@Hans, вони є там або під підкаталогом проекту
Нік Рейман

@Nik: не msbuild goo. Я вважаю, що ви мали на увазі файли temp. Я згоден, це не дуже.
Ганс Пасант

6
Я запрошую вас спробувати середовище розробки ISE Xilinx (для програмування HDL) і подивитися, скільки тимчасових файлів він розкриває. Сотні файлів із сотнями розширень :) Говоріть про безлад. Visual Studio дуже чистий у порівнянні.
Марк Лаката

Відповіді:


232

Так:

  • cpp: вихідний код
  • фільтри: файл проекту
  • h: вихідний код
  • ico: ресурс
  • rc: скрипт ресурсу
  • rc2: скрипт ресурсу
  • sln: файл проекту
  • txt: елемент проекту
  • vcxproj: файл проекту

Немає:

  • aps: стан останнього редактора ресурсів
  • EXE: збільшити результат
  • idb: побудувати стан
  • ipch: побудувати помічник
  • lastbuildstate: побудувати помічник
  • lib: збір результату. Може бути третьою стороною
  • журнал: побудувати журнал
  • маніфест: будувати помічник. Можна написати самостійно.
  • obj: будувати помічник
  • pch: побудувати помічник
  • pdb: збір результату
  • res: побудувати помічник
  • sdf: intellisense dbase
  • suo: параметри користувача рішення
  • tlog: скласти журнал
  • користувач: налаштування налагодження. Збережіть, якщо встановлено лише одну програму налаштування налагодження

Деякі з них є іффі, оскільки їх можна самостійно генерувати та підтримувати. І є ще кілька, які не відображаються у вашому списку. В першу чергу зверніть увагу на розташування файлу. Якщо він знаходиться у вашому рішенні чи каталозі проектів, то, швидше за все, ви хочете перевірити це. У підкаталогах налагодження чи випуску тоді малоймовірно. Build + Clean видаляє багато файлів шуму. І звичайно: реєстрація, перейменування каталогу проектів, виїзд та переконайтеся, що він створений.


Це дуже корисно. У мого проекту також є .vcb (цей проект було перетворено на старішу версію (eVC), тому це може бути пов'язано.
Роббі Метьюс

Що з .vcxproj.filtersфайлами?
Джон Алексьо

1
Також НЕ для .OPENSDF
Зам

1
@ ja72 filtersбули у списку "так" з моменту першої редакції відповіді
Астероїди з крилами"

26

З вашого списку я вибрав би такі:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

Як правило, вам слід версії всіх файлів, необхідних для створення проекту. Автоматично створені файли не повинні архівуватися imho.


@ milan1612 дякую за стислий список. Порівняно з відповіддю Ганса Пассанта, ви сказали, що я повинен робити файли маніфесту там, де він сказав, що я не повинен. Не могли б ви пояснити, що означає цей файл і чому, на вашу думку, я повинен це зробити, особливо в командному (та майбутньому кросплатформенному) середовищі, якщо це доречно?
Джонатан

3
маніфести можуть мати різні цілі. Я створив їх вручну, включених до файлу ресурсів, який спричинив застосування Windows до стилів до мого вікна. також є маніфести, які дозволяють розгорнути стандартні dll бібліотеки поряд із вашим виконуваним файлом. придумайте метадані про вашу програму ...
Мілан

@ milan1612 - Я зіткнувся з додатковим типом - suo, чи слід це також додати? якщо так, чи можете ви додати його до свого списку для повноти?
Джонатан

3
@Jonathan Суо зберігає специфічні для розробника дані, пов'язані з рішенням (наприклад, які файли відкриті або які папки відкриті / згорнуті в провіднику рішень). Таким чином, воно не повинно бути у контролі версій.
Даніель Роуз

1
@ milan1612 - Після вступу Даніела Роуз, чи можете ви видалити суу зі свого списку?
Джонатан

17

Як запропонував Microsoft, типи файлів, які слід включити до контролю версій:

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

Типи файлів, які не повинні включатись у:

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll і .tlb ...

Але у випадку використання зовнішнього інструменту у файлі EXE або зовнішній бібліотеці, я думаю, він також повинен бути включений у контроль версій

ІНФОРМАЦІЯ: Які візуальні файли C ++ додати до керування вихідним кодом

Крім того, у цьому посиланні описані типи файлів для проектів Visual C ++ у Visual Studio 2017.


7

Якщо ви клацніть правою кнопкою миші на проект, у контекстному меню повинна бути опція "Додати рішення до управління джерелами".

Якщо ви використовуєте це, додаватимуться лише ті необхідні файли. Усі проміжні та вихідні файли будуть ігноровані.


4

Інші відповіді - відмінні; Я просто думав, що допоможу трохи корисного інструменту. Перегляньте шаблон Visual Studio .gitignore на GitHub. Це хороший активно підтримуваний список файлів, які зазвичай не контролюються версіями.

І поки ви на цьому працюєте, весь сховище gitignore є дуже корисним ресурсом для всіляких розробок від ActionScript до Zend . Якщо ви не використовуєте Git, ви все одно можете використовувати файли gitignore як посилання.


1

Загалом, ви повинні додати всі файли, які з’являються в Провіднику рішень, до контролю версій. Крім того, потрібно включити файли .sln (файл рішення) та .vcproj / .vcxproj / .vbproj / .csproj (файл проекту).

Зауважте, що якщо у вас є плагін управління джерелом для Visual Studio, наприклад TFS або AnkhSvn, про це явно не потрібно дбати. Visual Studio знає, які файли повинні бути в контролі версій, і передає дані в плагін управління джерелом. Тільки якщо ви використовуєте зовнішній інструмент (наприклад, TortoiseSVN), вам потрібен такий список.


0

Тільки сили, які потрібні для створення вашої цілі. Я думаю, що це просто .cpp .h .ico .rc .txt .manifest .rc2

Я не знаю, що таке PDF, aps, фільтри, користувач, не бачив їх у своїх C ++ складах.

Просто подивіться та з’ясуйте, чи містять вони написаний програмістом код чи вони породжені VS.


4
.sln і .vcxproj потрібні точно - вони описують проект та рішення.
shartooth

Так, якщо ви не підтримуєте файли. Вибачте, я особисто настільки Anti-VS / MS, що я забув, що є люди, які використовують Visual Studio як єдиний інструмент для своїх розробників. Я використовую лише налагоджувач.
Лотар

3
ну файли проектів VS теж є файли
Мілан,

-2

На відміну від того, що було сказано в попередній відповіді, я хотів би зазначити, що, здається, важливо контролювати версію файлу .opt, щоб відслідковувати параметри користувача. Дивіться посилання нижче:

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


1
.opt файли контролюють зовнішній вигляд IDE, а не спосіб складання вашої програми. Тож те, що ти відчуваєш добре щодо IDE, не обов'язково добре в інших аспектах
phuclv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.