Подтвердить что ты не робот

Мне действительно нужен контроль версий?

Я читал по всему Интернету (различные сайты и блоги) об управлении версиями. Как это здорово и как все разработчики НЕОБХОДИМО использовать его, потому что это очень полезно.

Вот вопрос: мне это действительно нужно? Я сторонний разработчик (обычно просто HTML/CSS/JavaScript), и у меня НИКОГДА не было проблемы вроде "Wow, мои файлы со вчерашнего дня!". Я попытался использовать его, установил Subversion и TortoiseSVN, я понимаю концепцию управления версиями, но... я не могу использовать ее (странно для меня).

Хорошо, так... Это плохо? Я обычно работаю один (фрилансер), и у меня не было клиента, который попросил меня использовать Subversion (но для этого никогда не поздно, правда?). Итак, нужно ли начинать и пытаться научиться использовать Subversion (или что-то подобное?) Или это просто пустая трата времени?


Похожие вопросы: Хорошие извинения НЕ использовать контроль версий.

4b9b3361

Ответ 1

Здесь сценарий, который может иллюстрировать полезность контроля источника, даже если вы работаете самостоятельно.

Ваш клиент попросит вас выполнить амбициозную модификацию веб-сайта. Это займет у вас пару недель и включает редактирование на многие страницы. Вы приступаете к работе.

Вы выполняете эту задачу на 50%, когда клиент звонит и говорит о том, чтобы отказаться от того, что вы делаете, чтобы сделать срочное, но более незначительное изменение на сайте. Вы не справились с большей задачей, поэтому не готовы жить вживую, и клиент не может ждать меньшего изменения. Но он также хочет, чтобы незначительные изменения были объединены в вашу работу для больших изменений.

Возможно, вы работаете над большой задачей в отдельной папке, содержащей копию веб-сайта. Теперь вам нужно выяснить, как сделать незначительные изменения таким образом, чтобы их можно было быстро развертывать. Вы работаете яростно и делаете это. Клиент обращается с дальнейшими уточнениями. Вы делаете это тоже и развертываете. Все хорошо.

Теперь вам нужно объединить его в незавершенную работу для основных изменений. Что вы изменили для срочной работы? Вы работали слишком быстро, чтобы вести заметки. И вы не можете просто просто легко разбить две каталоги, так как оба имеют изменения относительно начального уровня, из которого вы начали.

В приведенном выше сценарии показано, что управление источником может быть отличным инструментом, даже если вы работаете соло.

  • Вы можете использовать ветки для работы над долгосрочными задачами, а затем объединить ветвь обратно в основную линию, когда она будет выполнена.
  • Вы можете сравнивать целые множества файлов с другими ветвями или с прошлыми версиями, чтобы увидеть, что другое.
  • Вы можете отслеживать работу с течением времени (что отлично подходит для отчетов и выставления счетов, кстати).
  • Вы можете восстановить любую ревизию любого файла в зависимости от даты или значка, который вы определили.

Для сольной работы рекомендуется использовать Subversion или Git. Любой может предпочесть тот или иной, но либо явно лучше, чем не использовать какой-либо контроль версий. Хорошие книги: "" Прагматическое управление версиями с использованием Subversion, 2nd Edition" Майка Мэйсона или " Прагматическое управление версиями с помощью Git" от Travis Swicegood.

Ответ 3

Вам не нужен контроль версий больше, чем художник-ловушка нуждается в защитной сетке. Это похоже на резервное копирование жесткого диска - в большинстве случаев это кажется излишним, поскольку ничего не происходит, но в конце концов он будет. Здесь нет майба. Это будет. И вы никогда не сможете предсказать, когда и прошлое является плохим индикатором того, когда это произойдет. Это может произойти только один раз в будущем, но даже если вы знаете, что это произойдет, как только вы не узнаете, насколько это плохо.

Ответ 4

Да!

Сделайте это. Это не повредит вам.

Я обычно переключаюсь с ноутбука на ПК и обратно, и это абсолютно здорово, когда ваш код где-то находится в центральном репозитории.

Иногда бывает замечательно вернуться к последней редакции, потому что вы напутали то, что было бы слишком сложно исправить.

Ответ 5

Самое большое преимущество, которое отсутствует, - это возможность повторного создания исходного кода, сгенерированного старой сборкой.

При времени сборки вы помечаете исходный элемент с помощью "Build 4.26". На следующий день вы начнете кодирование Build 4.27. Три месяца спустя, когда клиент говорит: "Я использую Build 4.26, и там есть ошибка в функции Frickershaw. Я не могу выполнить обновление до любой другой сборки из-за некоторых изменений в форматах файлов, которые вы создали в сборке 4.27. что вы можете сделать для меня? Я готов заплатить".

Затем вы можете проверить ветку исходного кода 4.26... исправить функцию Frickershaw, а затем перестроить пакет для пользователя примерно через час или два. Затем вы можете вернуться к версии 4.39 и продолжать работать.

В том же ключе вы можете отслеживать точную точку, в которой была добавлена ​​ошибка. Проверьте версии 4.25 на ошибку, затем 4.20, затем на 4.10 и, в конце концов, найдите ошибку, введенную в версии 4.12. Затем вы ищете все изменения, сделанные между "Build 4.11" и "Build 4.12", а затем сосредоточьтесь на функции Frickershaw. Вы можете быстро найти исходный код ошибки без его отладки.

Ответ 6

Попробуйте DVCS, например Git или Bazaar. Они невероятно просты в настройке, удобны в использовании и предлагают все важные функции Subversion, CVS и т.д.

Ключ в том, что вы можете вернуться к рабочей версии, когда вы что-то сломаете, что часто намного быстрее, чем отмена изменения вручную.

Ответ 7

Ветвление вам не кажется полезным? Вы никогда не хотели просто попробовать что-нибудь, чтобы посмотреть, будет ли это работать? Я тоже делаю много простых старых html/css-материалов, и я считаю это бесценным. В разветвлении буквально нет опасности, чтобы проверить что-то, увидеть, работает ли оно, и решить "meh", а затем просто отступить.

Мне никогда не приходилось подходить к резервной копии (постучать по дереву), но я считаю, что функция отката назад неоценима.

Ответ 8

Несколько привилегий как фрилансер:

  • Знайте окончательно, что вы изменили в каждом файле и когда (пока вы часто проверяете)
  • Откат к любой версии в прошлом. Удивительно, как часто это ценно.
  • Отслеживать набор изменений как "выпуск". Таким образом, вы знаете, что каждый клиент использует в настоящее время и что в разработке.
  • Резервное копирование
  • Возможность легко обмениваться проектом, если вы вдруг не соло

Ответ 9

Я бы не стал нанимать подрядчика, если бы они не интегрировались в наши процессы. Им нужно будет получить доступ к коду через наш SVN и вряд ли получится получить оплату без проведения тестирования модулей и проверки кода.

Если вы сокращаете контракт, я бы убедился в том, что у вас есть опыт работы с VSS (check-in/out) и CVS (слиянием и конфликтом).

Работая самостоятельно, у вас есть прекрасная возможность играть и учиться с последними - я бы попробовал Git.

Как одинокий разработчик, вы можете думать об управлении версиями как о неограниченном отказе, который работает через сеансы и перезагружается.

Ответ 10

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

Самое большое преимущество, на мой взгляд, уже перечислено. Это позволяет мне спать по ночам, зная, что если нам придется откатить изменения, это будет довольно легко.

Ответ 11

Я думаю, что основное преимущество перехода от "файловой системы всех версий" к системе управления исходным кодом заключается в том, что sccs добавляет структуру ко всем тем версиям, которые вы сохранили из всех этих файлов, и предоставляет вам с записями "что было согласованным состоянием файловой системы целиком в точке X".

Другими словами, "Какая версия файла A идет с версиями B, C, D,...".

И запоздалая мысль (¡!): специальный акт совершения или проверки заставляет задуматься о том, "что это такое?", и получающееся сообщение журнала может, надеюсь, служить памятью...

Ответ 12

Буквальный ответ на этот вопрос: Нет, вы не нуждаетесь в управлении версиями.

Вы, однако, ХОТИТЕ контроль версий, даже если вы этого не знаете.


Тем не менее, многие инструменты SCM могут быть таинственными или совершенно неприятными для использования, пока вы не прорветесь через Grok Barrier, поэтому немного пересмотрите это:

"Тем не менее, вы хотите, чтобы управление версией EASY-TO-USE". И это там... загрузите кучу рекомендуемых визуальных клиентов и дайте им завихрение, а затем попробуйте, какие карты лучше всего подходят вам, как вы думаете.

Что приводит к вопросу, который вы хотели спросить:

Почему я хочу использовать контроль версий?

Ответ: Контроль версий позволяет вам быть БЕСПЕРЕИМ!

Ответ 13

Да, это вам нужно.

По крайней мере, для одного магазина для разработчиков вам нужно переместить код в каталог ProjectName-Date-Time несколько раз в день.

То есть напишите script, который автоматически создаст резервную копию рабочего каталога за обедом и во время выхода, не перезаписывая другие резервные копии.

Это может расти довольно быстро, поэтому в конечном итоге вы захотите сохранить только различия между файлами, что и делает приложение VC.

Ответ 14

Поскольку вы обычно работаете в одиночку, я бы сказал, что это хорошая идея использовать контроль версий. Одним из основных преимуществ, которые я нашел в использовании контроля версий (Subversion в моем случае), является то, что при работе в одиночку это дает мне больше уверенности в попытке найти новый подход к проблеме. Вы всегда можете перейти к новому методу или структуре решения проблемы и посмотреть, нравится ли вам это. Если окажется, что эта ветка не работает, вы можете просто отказаться от нее и вернуться к старому методу. Это также облегчает выборку различных решений рядом.

Итак, если вы когда-либо видели другой подход к решению проблемы, и вы хотели попробовать его, я определенно использовал бы контроль версий как инструмент, чтобы сделать это проще.

Ответ 15

Если вы работаете самостоятельно и регулярно выполняете резервное копирование, VC может не понадобиться (если вы не подсчитаете свои резервные копии как историю версий). Как только вы начнете работать с другим разработчиком, вы должны получить контроль над версиями на месте, чтобы вы не начали переписывать друг друга.

Ответ 16

Даже если вам это не нужно прямо сейчас, это то, что вам нужно, когда вы работаете в команде.

Ответ 17

Наличие истории изменений в вашем html/css/javascript может стать находкой. Возможность сравнить ваш интерфейс с кодом в месяц или несколько месяцев назад может действительно пройти долгий путь в выяснении причин внезапного появления шаблона.

Плюс, если вам когда-либо понадобится/нужно получить помощь по вашим проектам, у вас будет простая система для распространения, отслеживания и развертывания обновленного контента.

Определенно сделайте это, вы поблагодарите себя, как только вы привыкнете к нему.

Оформить заказ (один раз) Обновление (начало дня) Commit (завершение задачи/изменение после тестирования)

Вот и все. Не делайте НИКАКОЙ одной модификации, которую вы обновляете в браузере, просто тот, который вы хотите вживую.

Ответ 18

Подумайте, нравится ли это резервной копии. Это немного раздражает до того дня, когда вы в этом нуждаетесь. Затем объем выполняемой работы напрямую пропорционален частоте ваших резервных копий.

Еще одним преимуществом является возможность взглянуть на старые способы, которыми вы делали вещи, которые, возможно, устарели в определенном месте, но могут быть полезны в другом. Просто вырезайте и вставьте старый код, который вы получили при сравнении.

То есть, если вам не нравится изобретать колесо, которое вы уже заново изобрели...

Ответ 19

Когда все может пойти не так, они будут. Очень приятно иметь возможность ссылаться на код, который вы удалили месяц назад, или восстановить весь проект после сбоя оборудования или обновления.

В будущем может быть и точка, когда проект будет работать больше, чем вы. Возможность предотвращения (или контроля) ветвления и управления версиями является обязательной в такой среде.

Ответ 20

Должно обязано обязательно должно. Вы должны использовать контроль версий.

Это имеет самое глубокое значение.

Если вы не понимаете, почему сейчас, вы в один прекрасный день.

Ответ 21

Когда ваш клиент приходит в панику, потому что что-то нарушено на реальном сайте, и это регресс, вы будете рады, что можете просто открыть TortoiseSVN и посмотреть, что вы делали в прошлый вторник, что вызвало поломку.

Ответ 22

Это действительно странно. С тех пор, как я начал использовать контроль версий, мне очень редко приходилось искать старые копии моего кода и использовать их. Мне никогда не приходилось делать это раньше... наверное, потому, что идея делать не на самом деле. Легко не заметить тех времен, когда вы могли бы найти контроль версий.

Ответ 23

Искать в пределах всей базы кода. Это функция убийцы, главным образом потому, что поиск активируется на другой машине, поэтому вы можете без проблем работать с вашей работой.

Что, кстати, является причиной того, что мы не перешли на SourceGear Vault. Он не может этого сделать. Мы по-прежнему ищем совместимую с SourceSafe замену... ну, SourceSafe. Несмотря на то, что все говорят, это еще не подвело нас.

* это может быть просто вопросом времени.

Ответ 24

Я думаю, вы приняли правильное решение использовать какой-то контроль версий. Для простоты я бы пошел с SVN (игнорировать CVS, поскольку SVN в основном является "лучшим" CVS)

SVN может работать с "локальными" репозиториями прямо на файловой системе и на множестве платформ, поэтому вам не нужно слишком много укусов в инфраструктуре (серверах, сетях и т.д.).

Отличный ресурс для SVN: http://svnbook.red-bean.com

Я не знаю много о GIT, но он является открытым исходным кодом и получает много ума, вероятно, имеет много преимуществ!

Заимствование цитаты откуда-то: вам может не понадобиться это сейчас, но когда вы это сделаете, вы будете рады, что сделали.

Счастливое исполнение версии!

Ответ 25

Несмотря на то, что мы были старыми и грубыми, мы обнаружили, что Microsoft Visual SourceSafe работает. Он отлично работает для хранения истории версий. Если вы не беспокоитесь о ветвлении, который, будучи сольным разработчиком, вы не можете, он может просто соответствовать счету.

Что касается проверки, поиск хорошей контрольной точки может быть сложной задачей, но при проверке на каждом сохранении будет только сложно отслеживать версии.

Ответ 26

"Мне действительно нужен контроль версий?"

Да. Если вы не напишете идеальный код, который никогда не нуждается в изменении.

Пример: У меня было требование. Я создал веб-страницу, провел день или около того на странице, совместил ее с разделом 508 (это было около 6-7 лет назад) и загружен на веб-сайт. Затем требование было резко изменено. Я провожу еще один день, работая на странице (и файлы Hayuge Excel не легко конвертируются в доступный HTML). Примерно через неделю клиентские коммутаторы спрашивают, что мы вернемся к версии A. Исходный контроль выполнил бы это примерно через 10 минут. Как бы то ни было, мне пришлось нанести еще один% $# ^^ & $# день на задание.

Ответ 27

Как только вы начнете работать над командой, которая ссылается на обновление "компонентов" от нескольких вызывающих/приложений, контроль версий будет абсолютным. В этой среде вы не можете идти в ногу со всеми перестановками возможных изменений.

Ответ 28

Да, вам нужен контроль версий либо для целей разработки, либо просто для хранения ваших документов. Таким образом, вы можете вернуться назад вовремя, если вам необходимо сделать это, чтобы отменить изменения или ошибку, сделанные в коде или документах.

Ответ 29

Вам нужен контроль версий так же, как вам нужна страховка в жизни.

Ответ 30

Вам нужен контроль версий для управления различными версиями файлов. С его помощью вы можете получать и обрабатывать файлы из разных мест, и это облегчает членам команды совместную работу в одном проекте.