Чи є переваги використання DVCS для соло-розробника?


19

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

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

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


1
Див аналогічну посаду на StackOverflow: stackoverflow.com/questions/179161 / ... . Все, що потрібно знати, там добре підсумовано.
ysolik

Тож моє запитання було закрито як точний дублікат, як цей. На жаль, це питання не відповідає моєму. Ви, хлопці, відштовхуєтесь від майстра, коли ви розробник соло, або ви розгалужуєтесь та об'єднуєтесь? Я просто намагаюся зрозуміти, який правильний спосіб використовувати DVCS - це коли ти сольний
Чейз Флорелл

1
резервні копії по суті є лише черговим клоном. Це може бути дуже важливо якогось дня. Також інструменти для git - це легкі роки попереду svn.

Ви коли-небудь працюєте на ноутбуці, подалі від свого сервера?
JBRWilkinson

Відповіді:


19

Так! Я думаю, що найбільша перевага - це краще розгалуження + об'єднання підтримки, що пропонується багатьма DVCS. Розгалуження і злиття - це вид болю в попі при SVN; це досить дратує, що не варто витрачати час на створення невеликих, короткочасних гілок для швидких доповнень до функцій, виправлення помилок або експериментів, але злиття також досить дратує, що також болісно створювати довгоживучі гілки. З іншого боку, розгалуження та злиття - це вітер у Git, настільки, що я створюю (локальну) гілку майже для кожного виправлення помилок чи функції, над якою працюю.

Я думаю, що інструменти, запропоновані Git для візуалізації репостів, збирання журналів тощо, теж набагато кращі, ніж у SVN (хоча це більше річ Git, ніж специфічна для DVCS).

DVCS також не потребує центрального сервера; коли ви використовуєте SVN як розробник, ви повинні створити локальне репо, щоб увімкнути, що не є вимогою для Git, оскільки кожне репо містить повну історію. Як наслідок, архівування репо-репортажу є лише справою зі створення вашого проекту - немає "центральної бази даних" для резервного копіювання.

Я почав використовувати Git майже чотири роки тому, після деякого часу користувався SVN, і не оглядався.



4
Існує думка, що DVCS не полегшує злиття, але користувачі DVCS більше практикуються при здійсненні злиття. Це забезпечує простіший суб'єктивний вигляд злиття. Звичайно, важливим є суб'єктивний погляд.
Річард

3
DVCS не має виключно рівного git
Мерф

6
@Richard Але це неправильно, централізовані інструменти мають лінійну історію, яка не підтримує складних злиттів.
альтернатива

2
@Murph: Це правда, але я використовую Git, тому я використав це у своєму прикладі.
mipadi

7

Я дуже часто використовую DVCS для своїх особистих речей. (Я один з тих хлопців, які в $ HOME в git .) Є кілька переваг:

  • Це робить реплікацію між моїм ноутбуком та настільним комп’ютером та лабораторними комп'ютерами дуже просто. Хоча це стосувалося і SVN ...
  • Я можу взяти на себе зобов'язання на ноутбуці, навіть коли не маю доступу до Інтернету.
  • Резервні копії такі ж прості, як і git pull.
  • Я можу використовувати git citoolдля розбиття безлічі змін на комітети розміру логічного розміру, навіть якщо я вніс багато незв’язаних змін, перш ніж вирішити вчинення. Мені невідомий інструмент для цього в Subversion.
  • Коли мені доводиться виправляти проект з відкритим кодом, простіше зберігати впорядковані речі, створивши нове сховище git у каталозі проектів, ніж зробити другу копію будь-якого джерельного дерева, яке я виправляю. (З Subversion це зробити не можна легко, оскільки вам потрібен окремий сховище десь іншому на жорсткому диску.)
  • Я використовую функції легкого розгалуження, щоб перевірити зміни, які я отримую від інших людей. Наприклад, коли я редагую доповідь про конференцію зі своїм радником, хоча він не має доступу до сховища, я можу надіслати йому копію документа та перевірити його зміни у відділенні, виходячи з надісланої мені версії. його, а потім використати, git mergeщоб злити його доопрацювання з будь-чим, що я робив у цей час.

Гіт звик думати про всі мої зміни в логічних фрагментах, набагато більше, ніж колись робила Subversion.


(або git fetch для дзеркала)

5

Моя мати вимикає модем, коли спати вже пізно. DVCS дозволяє мені продовжувати роботу з VCS після вимкнення модему.


1
Я б назвав це як "здатність працювати з літака" або "вміти працювати, коли bitbucket.com йде вниз", але +1 для висвітлення справи офлайн.
Wyatt Barnett

Також місця на вулиці без мережі 3G.
зв’язати

3

Ну, за замовчуванням відповідь буде: "Якщо (що б ви не використовували зараз) працює для вас, чому б ви змінилися?".

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

  • дійсно простий у використанні - я розібрав усі потрібні мені команди за годину
  • все локально (не потрібно, щоб віддалений сервер був у мережі)
  • дуже легко розгалуження / злиття - ви навіть більше не думаєте про ці речі
  • легке клонування (також тип розгалуження) - і взагалі, набагато більш зручний інтерфейс (я вважав, що це приємніше, ніж git's на Windows; також деякі поняття простіші; тобто не потрібно думати з моєї сторони, тому ведуть до менше сповіщення з VS і більше виконаної роботи)
  • добре працює зі svn

Стрибки до вступу до Mercurial і блогу (гарні кольори ;-) з корисними порадами .


Гм, CVS раніше працював на нас, але ніде, як і підрив, коли ми переїхали до нього. Нові іграшки дають вам нові можливості - тому саме з цієї причини я розглядаю, чи може Меркуріал зараз бути кращим варіантом (особливо, коли я використовую FogBugz), а також потенціал правдивості ...
Мерф

3
Перехід від SVN до Mercurial був для мене одкровенням. Це було натхнене чудовим hginit.com Джоела, і я ніколи не оглядався.
Адам Кросленд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.