Бос скептично використовує систему контролю версій для нового проекту, чи варто мені все-таки?


9

Дивіться /software/109817/superior-refusing-to-use-subversion

Моє запитання подібне, але ось основні відмінності в моєму сценарії:

  • Ми починаємо новий проект з нуля, використовуючи PHP та веб-технології. Не було б часу спаду в розвитку, як ми б приймали його з самого початку, якби я мав свій шлях.

  • Моя команда розробників складається з мене та мого начальника. Ми - департамент "ІТ" порівняно невеликої фірми.

Веб-додаток замінить застарілу програму з абсолютно відсутнім контролем джерела. Через різні географічні законодавчі вимоги було прийнято рішення (до того, як я був найнятий) розкласти додаток у 7 повністю окремих каталогів для кожної версії. Після цього різні розробники робили різні речі в різних місцях. Виправлення змін у них, ну, я думаю, це можна зробити краще, я думаю, саме тому я публікую повідомлення.

Пропозиція мого начальника, безпосередньо вставлена ​​з електронного листа:

  • Оновлення слід подавати у вигляді пакунків у папці SUBMISSIONS. Пакет повинен містити всі відповідні файли, а також файл 'UPDATE.NFO', який містить опис оновлення, список усіх нових файлів, що включені (з описами), та список усіх модифікованих файлів із детальними відомостями про модифікацію.

  • Пакети оновлення повинні зосереджуватися на окремому елементі та не відхилятися від його цільового призначення. Код повинен бути розроблений таким, щоб бути модульним і використовувати багаторазово, коли це можливо.

  • Усі надіслані пакети мають бути встановлені в тестовому середовищі кожного розробника незабаром після надсилання. Кожен розробник повинен переглянути нове доповнення та висловити будь-які занепокоєння щодо його встановлення до виробничого середовища. Стандартне оновлення упаковки повинно проводитись як мінімум 3 робочих дні для цього процесу огляду перед завантаженням у виробниче середовище. Оновлення / виправлення з високим пріоритетом можуть пропустити цю вимогу.

Причина управління джерелом була придумана в тому, щоб зробити все це автоматичним, правда? Я запропонував підрив, тому що саме цим я користувався в коледжі. Бос не любить підрив, тому що "Він створює безлад коду" (тобто використовує двійкову магію і не легко читається). Ми спробували це один раз, але я думаю, що спроба використовувати його на Windows зробила дивні помилки в нижньому / великому регістрі, і ми не змогли перевірити наші файли. Я не знаю, чи заперечують це лише підривна робота або всі продукти контролю джерел.

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

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

Крім того, якщо я не можу його переконати, чи буде якийсь сенс використовувати мене лише для себе? Я виступаю як хтось із дуже обмеженим досвідом, який фактично використовує svn; Все, що я насправді знаю, - це оформлення замовлень і здійснення зобов'язань. Які особливості управління джерелами (можуть включати інші продукти, ніж svn), які допоможуть у моїх індивідуальних зусиллях із розробки?

Будь ласка, жодних коментарів "не знайдіть іншу роботу". Це не допомагає дебатам.


25
"І будь ласка, жодних коментарів" Знайдіть іншу роботу "." Чому ні? Ваш начальник приречений.
S.Lott

9
Навіть якщо ви не можете переконати його, все-таки корисно використовувати його приватно для себе. Таким чином, ви можете безперешкодно редагувати свої файли. У вас є купа "збереження очок" для файлів, над якими ви працюєте. Навіть якщо вам доведеться мати SVN у вашій місцевій коробці ... краще, ніж нічого.
Лорд Тидус

10
@ S.Lott, я думаю, що ОП має право визначати межі питання. "Отримати іншу роботу" неможливо, наприклад, якщо ОП проживає в невеликій країні, а його батько / теща є начальником роботи, в якій ОП виплачується вдвічі або втричі більше, ніж вони " варто на відкритому ринку. Коротше кажучи, це не частина питання.
Дан Розенстарк

8
@ S.Lott I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....Ну, конкретна межа зовсім не дурна. Професійна консультація поза темою, і хоча мені відповідь, яка відповіла б на питання та запропонувала профорієнтацію, є ідеальною для мене, я не думаю, що для ОП нерозумно вказати, що (-ла) він не піклується про кар'єрні поради.
янніс

9
@ S.Lott З іншого боку, мені здається, що це кар'єрна порада, особливо коли "шукаю іншу роботу". Існує стільки невідомих змінних, що я вважаю неможливим сприймати будь-яку подібну пораду серйозно.
янніс

Відповіді:


35

Не питайте його. Не кажи йому. Покажіть йому.

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

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

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

Дайте йому шпаргалку, яка полегшить йому використання вашої системи контролю версій.

Нарешті, запропонуйте кілька варіантів, але залиште рішення йому . Чи варто налаштувати власний сервер або скористатися однією з безлічі розміщених сервісів ? Чи варто використовувати svn, git чи щось інше? Чи варто перенести всі сім проектів на систему чи спробувати спершу один чи два?


9
+1 за "не розкажи, покажи (після практики)"
Хав'єр

2
Але, як хтось сказав, ДО використовуйте його для власної копії
0fnt

3
+1 заsearch your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Daenyth

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

28

Переваги керування джерелами виходять далеко за рамки, дозволяючи декільком розробникам працювати над одним кодом. Ерік Сінк, засновник SourceGear , перелічує кілька вагомих причин використовувати джерело управління в якості єдиного розробника :

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

Ерік також має дуже хороший досвід початківців " Управління джерелами" . Існує безкоштовний онлайн підручник з обміну, доступний Джоелом Спольським, Mercurial - популярна система управління версіями.

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

І нарешті, перш ніж спробувати переконати свого начальника, можливо, ви захочете заглибитись у тему розгляду заперечень . Це 101 продаж.

Якщо це не вдалося - рухайтеся якнайшвидше, не дуже витрачаючи час на нахили на вітряні млини.


1
+1 для статті Еріка Мийка. +1 за пропозицію hg. git - це все гнів, але в питанні чітко сказано, що op - початківець у керуванні джерелами, а hg - трохи простіше, ніж git. +1 для підручника з hg. +1 для надання орієнтованої на продажу довідки, саме так ви найкраще маєте справу з босоніжками Pointy-hairhed (-0,5, оскільки це посилання на пошук Google). +1 для довідки про Дон Кіхота. Це така відповідь, яка змушує мене створити дублікати облікових записів, щоб я міг подати заявку не раз.
янніс

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

10

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

SVN - або будь-яка система керування версіями, насправді - дозволяє зробити це теж, але об'єднання трохи проблематичніше.


Я згоден із використанням Git. Я використовую його для проектів, навіть якщо я ТІЛЬКИ розробник.
DanO

Я починаю також. Я б не зі SVN ... але з Git так легко створити та керувати репо, навіть не маючи стосунків із сервером, що важче виправдати не сказати, git initщо другого ти починаєш над чимсь працювати.
cHao

без права .gitignoregit repo в принципі марний. Це єдине, що вам належить залишити на місціgit init
Дан Розенстарк,

" але злиття трохи проблематичніше " - якщо ОП використовує лише сам, злиття не буде, чи не так? Можливо, об'єднавши свою власну галузь функції у свого власного господаря, але будь-який код, який він отримає від свого шефа, скоріше піде на нове зобов’язання, ні? Я не маю досвіду роботи зі SVN, лише git.
Р. Шмітц

1
"Не буде багато злиття", поки не буде. Будь-який проект, навіть якщо це проект хобі, з часом вимагатиме, щоб команда розробників (яка може бути однією людиною) працювати над двома речами одночасно. Тоді вам доведеться злитися, і в якийсь момент ви зіткнетеся з конфліктами злиття.
Дан

5

Якщо я не можу його переконати, чи буде якийсь сенс використовувати мене лише для себе?

Так. Користь використовувати це лише для себе. Ви отримуєте історію змін, щоб ви могли бачити, що відрізняється.

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


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

3

Настійно рекомендую, як згадувалося до використання git, причина №1 полягає в тому, що будь-який VCS є мережею безпеки в разі катастрофи. Шукайте наклейку «У разі пожежі: git počin, git push, покинь будівлю». Код може зберігатися десь в іншому місці, але немає в ноутбуці, який може зламатись, викрасти чи будь-що інше ... навіть сервер локальної мережі не є найбезпечнішим місцем для чогось такого цінного, як код.

Число 2. Простежуваність змін, хто робив, коли і т. Д. ... Злиття, Скасування. Число 3. Розрізняйте магічний інструмент для №2 та багатьох інших справ. Число 4. Відділення № 5. Тег версій, версій тощо.

Ви можете знайти більше інформації про один із найпоширеніших робочих процесів git тут: https://nvie.com/posts/a-successful-git-branching-model/

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

Щодо вашої проблеми з текстовим регістром, не використовуйте Tortoise, я знаю, що більшість людей використовують це як графічний інтерфейс для git, оскільки це було дуже часто для SVN, тому це може бути перший вибір, замість цього використовувати командний рядок або інший графічний інтерфейс, наприклад, настільний github або SourceTree від атласа.

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