Ви перевіряєте в папках бін чи налагодження (і dlls) у своєму TFS?


11

Швидке запитання про TFS - Ви, хлопці, зареєстрували папки бін / налагодження в TFS? (якщо так, то чому?) Оскільки вміст цих папок динамічно генерується, чи краще залишити їх, щоб програміст не стикався з проблемами лише для читання?


Можливо, вас зацікавить ця пропозиція обміну стека . Він майже готовий до запуску бета-версії, просто потрібно ще кілька.
великий вовк

Відповіді:


27

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

Є винятки. Іноді (використовуючи Visual Studio), можливо, ви захочете зберегти .pdb-файл для читання міні-відвалів. Іноді ви не можете дублювати ланцюжок інструментів, так що вам не обов'язково точно відтворити створені файли. У цих випадках ви в першу чергу зацікавлені в тому, щоб зробити це для випущеного програмного забезпечення, а не для кожної зміни VCS, і в будь-якому випадку вони можуть легко знаходитись у папках з версією. (Це, як правило, бінарні файли, так чи інакше, і не мають зрозумілих змін від однієї версії до іншої, і не дуже корисно від того, щоб бути у VCS.)


6
Якщо вам цікаво зберігати символи налагодження, вам краще налаштувати сервер символів . Якщо ви зробите це правильно (з індексуванням джерела), налагодження мінідуму спочатку витягне символи з вашого сервера символів, а потім з відповідного джерела з вашого джерела управління ... Якщо ви просто зареєструєтесь і позначте кожну збірку, вам доведеться зробити це вручну.
Shog9

8

Проста відповідь? Ні. Не робіть цього! Я не можу придумати багато причин цього не робити, але немає причин, чому ви цього хотіли б.

Єдиний раз, коли я можу подумати, що ти перевіриш у dll, якщо це з бібліотеки третьої сторони, що ти не очікуєш, що кожен розробник має встановлений для створення. Але навіть досі це не знаходиться в папці бін.

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


1
Основна причина не: скільки терабайтів пам’яті ви хочете спожити своїм джерелом керування?
EKW

1
Наприклад, @EKW C # історично не створює однакових бінарних файлів з одного джерела. Зараз це може бути інакше, ніж у .NET Core, але це було однією причиною збереження створених бінарних файлів для випущених збірок, наприклад. Я б не став їх контролювати джерела. Це не правильний інструмент для цієї роботи.
Шив

5

Ми не перевіряємо в папці bin в TFS. Як ви, напевно, помітили, якщо ви це зробите, кожен раз, коли будь-який розробник створює рішення, вони перевірять папку бін. Не добре. Однак є бібліотеки, які потрібні проекту для компіляції та запуску, і наше правило полягає в тому, що будь-який проект повинен бути відкритий з управління джерелами, і він повинен збиратись і запускатися. Отже, ми робимо те, щоб створити папку "BinRef" для будь-яких DLL-файлів, на які повинен посилатися проект, та створити посилання на проект для копії в папці BinRef. Папка BinRef це перевіряється на TFS.

Інша перевага цього підходу полягає в тому, що BinRef завжди знаходиться на кореневому рівні веб-проекту. Якщо мій проект живе C:\Projects\Marcie\SomeProjectCategory\ProjectAі я створюю посилання на DLL, який сидить C:\DLLsThatILike, посилання буде виглядати щось на зразок

\..\..\..\NiceThing.dll

. Ви можете зберігати файли свого проекту, а C:\ProjectAце означає, що посилання на проект NiceThing відображатиметься на вашій машині. Сподіваємось, люди так не роблять посилань, але я бачив, що це відбувається.


2

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


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

@ user7676 - ви можете просто перекопіювати код за номером версії, що випускається. Але, правда, якщо у вас немає плану ДР, і ви перебуваєте в якомусь діастере, це було б простіше і швидше. PS. ВАМ ПОТРІБНИЙ ПЛАН !!!
Алі

1

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


0

Ні, але наш внутрішній інструмент управління проектами справляється автоматично, що дратує чорт у мене.

Моє рішення полягає в тому, щоб позначити всі файли при випуску та налагодженні як записи, і коли TFS скаржиться, я кажу, що він ігнорує файли, тому у мене ніколи не виникає проблем зі збоєм збірки.


0

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


0

Я зберігаю деякі згенеровані двійкові файли, наприклад .NET interops з іншого проекту. Отже, якщо у мене є проект A, який створює об'єкт COM, а потім ви використовуєте цей об'єкт COM у дуже слабко пов'язаному проекті B, який використовує його через .NET interop, я перевіряю, що інтероп, що генерується з проекту A, в проект B. Це це не дуже гарна ідея, але вона має кудись піти, оскільки AFAIK Visual Studio не створить інтероп для Вашого автоматично під час збирання.


-2

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


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