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

Контроль версий для новичков

Я совершенно новичок в мире программирования и очень мало понимаю в плане жаргона и типичной методологии.

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

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

И вот, на днях я случайно написал что-то важное даже с этим методом, возможно, из-за опечатки в именовании.

Излишне говорить, что этот метод сосет.

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

Прямо сейчас я надеюсь, что есть инструмент, который будет сохранять уникальную версию файла каждый раз, когда я нажимаю ctrl-s, и даю мне одну кнопку для создания окончательной версии.

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

Спасибо всем.

4b9b3361

Ответ 1

Существует два подхода к этой проблеме:

  • Версии по требованию. Это модель, используемая подрывной деятельностью, CVS и т.д. И т.д. Когда вы совершили "существенное" изменение, вы решили сообщить системе "сохранить эту версию".
  • Автоматическое управление версиями. Это модель, используемая некоторыми старыми VAXen, Eclipse, IDEA, каждой wiki и несколькими инструментами для записи. Каждый раз, когда вы сохраняете, неявно создается новая версия. При удалении старые версии могут быть отбракованы (например, только одна версия сохраняется от работы, выполненной неделю назад, а не для каждого сохранения).

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

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

В стороне, похоже, вам не нужны 90% функций в стандартной системе SCM - разветвление, маркировка и т.д., но в конечном итоге вы можете использовать их для использования. Таким образом, обучение может быть победой в долгосрочной перспективе. Вы можете сделать это с помощью svn и т.д., Но это потребует некоторой настройки. Если вы используете редактор сценариев (emacs, vi, TextMate, что угодно), вы можете переопределить команду "Сохранить" как "Сохранить и создать новую версию".

Ответ 2

Subversion - это более или менее золотой стандарт.

Я бы предложил (особенно для новичков), что вы проверяете BeanStalk (www.Beanstalkapp.com) для запуска вашего сервера subversion и TortoiseSVN для вашего клиента.

Удачи!

Ответ 3

Независимо от того, что вы делаете, если кто-то упоминает Visual SourceSafe - выполняйте работу как можно быстрее. VSS был создан самим Сатаном и передал мучителям разработчиков по всему миру.

Ответ 4

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

Поверьте, это действительно того стоит. Время, затраченное на обучение git, хорошо проведено.

Ответ 5

Если вы не работаете в команде, вы можете использовать что-то вроде функции локальной истории Eclipse. Он хранит версии ваших файлов локально, и вы можете вернуться к предыдущим версиям, когда захотите. Подробнее здесь: http://help.eclipse.org/ganymede/index.jsp (поиск "локальной истории" ). Я уверен, что другие IDE тоже имеют такую ​​функцию.

Если вы сотрудничаете с другими в своем коде, вероятно, нет возможности изучить один из стандартных инструментов, таких как SVN, CVS или git. Для большинства из них доступны плагины для многих IDE, поэтому вам не нужно использовать командную строку.

Ответ 6

В настоящее время я использую Subversion, но мой опыт управления версиями ограничен.

Я бы посоветовал прочитать учебник Эрика Санка.

http://www.ericsink.com/scm/source_control.html

Ответ 7

Лучше всего научиться использовать существующий инструмент управления версиями "промышленного стандарта", такой как Subversion. Даже если вы новичок в программировании и управлении версиями, SVN не так уж трудно учиться и будет хорошо служить вам. Я лично использую и рекомендую VisualSVN Server и TortoiseSVN для Windows. Оба являются бесплатными и довольно простыми в использовании.

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

Ответ 8

Я думаю, что TortoiseSVN будет хорошим клиентом Subversion для вас, если вы в Windows. Он не будет делать то, что вы ищете, с каждым разом-I-save-I-get-a-new-version - вам придется вручную "фиксировать" версии в репозитории. Когда вы совершаете фиксацию, это создает новую версию, существенно сохраняя ваш прогресс в этот момент. TortoiseSVN довольно удобен для пользователя, и это графический интерфейс, поэтому вы не будете работать в командной строке. Вы сможете сделать что-то вроде щелчка правой кнопкой мыши по файлу в проводнике Windows и выбрать Commit для сохранения вашего прогресса. Кроме того, TortoiseSVN является бесплатным и открытым исходным кодом.

Ответ 9

Subversion не очень сложна. Если вы используете Windows, TortiseSVN поможет много, если вы используете Eclipse, подключаемый модуль подзаголовка является удивительным. (Вероятно, вы должны использовать eclipse независимо:))

Некоторые из других немного сложны, но вам просто нужно знать шаблон с затмением. Возможно, вы могли бы "попробовать" с проектом с открытым исходным кодом или с каким-то существующим сервером subversion.

Цикл будет:

Сначала вы "Check out" хранилище. Это заполняет ваш указанный каталог содержимым из репозитория.

Если вы делаете это из командной строки - это "svn co" - там есть достаточная помощь, чтобы выяснить остальное.

Во-вторых, вы редактируете свои файлы. Вам не нужно блокировать их или что-то еще.

если вы добавляете новый файл, вы используете "svn add filename", как только вы его добавите. Это фактически не изменит репозиторий, пока вы не зафиксируете свои изменения.

Когда группа изменений будет выполнена, вы проверите их с помощью "svn ci" (также svn commit works). У этого есть ПЛОХОЙ твист, который вы всегда будете забывать - каждая фиксация требует комментария. Вам не нужно указывать файлы, которые вы совершаете, или что-то еще, но вам нужно быть на верхнем уровне вашего проекта (он будет передавать все под вашим каталогом.

Итак, процедура здесь, перейдите к "корню" вашего дерева проектов и введите:

svn ci -m "комментарий"

кусок пирога.

Наконец, если кто-то еще проверяет что-то в вещах, становится ТАКОЙ незнакомец. перед фиксацией вы должны "обновить" и получить свои изменения. "svn up" - это все, что требуется, но может предупредить вас, что были слияния. Это происходит только тогда, когда вы отредактировали один и тот же файл, и в 90% случаев слияния будут в порядке. в остальное время он поместит в ваш файл небольшие маркеры, рассказывающие вам, что вы изменили, и что они изменили. Команда "вверх" сообщит вам, с какими файлами она это сделала. Посмотрите на них и очистите файл до того, как вы проверите файл.

Всегда проверяйте между "svn up" и "svn ci", вы никогда не знаете, разрушили ли их дрянные изменения ваш первоначальный код.

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

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

Ответ 10

Если вы ищете легко настраиваемую систему контроля версий для Windows, я настоятельно рекомендую TortoiseHg, простой в использовании Mercurial интерфейс для Windows. Вам не нужно беспокоиться о настройке и отслеживании репозитория отдельно от ваших файлов, но вы всегда можете сделать это, если хотите. Mercurial - отличный инструмент, потому что он может расти вместе с вашими потребностями. Он имеет все обычные функции, такие как простое слияние и т.д., И довольно легко обернуть голову вокруг, чем Git в моем опыте.

Ответ 11

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

http://github.com
http://github.com/guides/home

Ответ 12

Я использовал Git, SVN, CVS и Perforce. В средах Windows и Unix.

Мое голосование определенно для SVN, поскольку это простота использования и гибкость. Я предпочитаю использовать командную строку сейчас, но в свое время я использовал TortoiseSVN для Windows, и мы могли без проблем использовать нетехнических людей.

Использовать SVN.

Ответ 13

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

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

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

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

Некоторые вещи, которые следует учитывать: вы сейчас или планируете поделиться разработкой с другим разработчиком? Это может повлиять на то, как вы хотите настроить сервер. Если вы разрабатываете самостоятельно в своей собственной коробке, вы можете настроить ее на локальном уровне, но это, вероятно, не лучший подход для команды. (Если вы не уверены, git очень гибкий на этой арене.) Собираетесь ли вы хранить большие мультимедийные файлы или только исходный код? Некоторые системы исходного кода предназначены для эффективного хранения только текстовых файлов и не будут обрабатывать фильмы, звуки или файлы изображений очень хорошо.

Что-то еще нужно знать, так это то, что большинству более новых систем управления версиями требуется какая-то программа "daemon", работающая на сервере (Subversion, git, Perforce, Microsoft Team Foundation Server), в то время как более старые, более простые системы просто используют файл (Visual Source Safe, cvs) и не требует серверной программы.

Если вы не хотите многому учиться и ваши требования низки, более простые решения должны быть достаточными. Microsoft Visual Source Safe использовал свои продукты для визуальных студий и был очень простым в использовании инструментом. Он не очень надежный, он только Microsoft, и он не может хорошо обрабатывать большие файлы, но он очень, очень прост в настройке и использовании. Если вы не хотите тратить деньги, Subversion и git - это два звездных решения с открытым исходным кодом, и в Интернете есть много документации.

Если вам нравится тратить деньги, Perforce считается отличным выбором для команд профессионального развития (и я считаю, что у них есть бесплатная версия для одного разработчика.) Если вам действительно нравится тратить много денег и вы хотите, чтобы Билл Гейтс был счастлив, Microsoft Team Foundation Server - это полный менеджер жизненного цикла разработки программного обеспечения, чрезвычайно прост в использовании в среде Windows и очень мощный; но вы, вероятно, захотите посвятить весь экземпляр сервера Windows (плюс SQL Server) для его размещения, и это обойдется вам в несколько тысяч долларов только за лицензии. К сожалению, это не правильный инструмент для магазина с одним человеком, или если у вас нет администратора Windows.

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

Ответ 14

Мы используем SourceGear Vault, который имеет большую интеграцию с Visual Studio и является бесплатным для одного пользователя. В зависимости от того, какие рамки и языки вы используете, Subversion - отличное бесплатное решение.

Ответ 15

Прежде всего, прочитайте эти статьи Эрика Синка. Eric sink управляет компанией, которая создает систему управления версиями под названием Vault. Он объясняет дружелюбным новичкам, как делать контроль источника, лучшие практики и т.д.:

Введение в Source Control

Я нашел его неоценимым, когда мне сначала захотелось понять Source Control.

SourceGear Vault БЕСПЛАТНО для одного пользователя. Этот интерфейс интуитивно понятен и хорошо интегрируется с Visual Studio.

Ответ 16

Если это только вы, вы можете попробовать Bazaar. Он распространяется как Git (так что это будет хорошо для одного человека - без сервера), но одна из их главных целей заключалась в том, чтобы сделать его намного проще в использовании, чем Git.

Кроме того, есть удобный инструмент gui, который должен сделать его удивительно простым в использовании под названием ToroiseBzr. http://bazaar-vcs.org/TortoiseBzr

Ответ 17

Если вы разрабатываете свой проект самостоятельно (вам не нужен ane-сервер для совместной работы) Mercurial может быть вашей системой выбора. Я лично ценю одну из ее функций: он использует только одно место для сохранения своей информации, это каталог .hg в корне вашего проекта. Он не помещает свои данные в каждый каталог (например, SVN). Таким образом, архив и каталог проектов просты в управлении.

Ответ 18

Независимо от того, какой VCS вы используете, если вы выбираете управление версиями по требованию вместо автоматического управления версиями (чтобы заимствовать условия из сообщения Alex), вам придется пройти через церемонию: -Создайте, -rename, -переехать, -copy, или -Удалить файл, находящийся под контролем источника.

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

Когда вы переименовываете, перемещаете, копируете или удаляете файл под контролем источника, сделайте это с клиентом VCS. В TortoiseSVN и TortoiseGit операции перемещения и копирования выполняются с помощью щелчка правой кнопкой мыши и перетаскивания, тогда как операции переименования и удаления доступны с помощью щелчка правой кнопкой мыши.

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

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

Наконец, для проектов с одним человеком я предпочитаю git по SVN, потому что SVN требует как минимум 2 копии всего: репозиторий ( "главная" копия файлов и истории) и рабочая копия (копия вы выполняйте свою работу). С git репозиторий и рабочая копия - это одно и то же, что упрощает мой опыт.

Ответ 19

На самом деле такой инструмент. Он называется emacs.

Просто создайте файл "~/.emacs" и поместите в него следующие строки:

(setq kept-new-versions 5)
(setq kept-old-versions 5)

И затем перезапустите emacs.

Это говорит emacs, чтобы сохранить 5 самых старых и 5 самых новых версий этого файла. Они будут храниться в файлах с именем filename ~ n ~, где "filename" - это нормальное имя вашего файла, а "n" - резервный номер.

Ответ 20

Я использовал Visual Source Safe, Perforce и Subversion. Все было в порядке, но я должен был сказать, что поддержка и расширения для Subversion просто показались немного лучше. Если вы планируете входить/оставаться в индустрии программного обеспечения, вы ДОЛЖНЫ знать основы управления источниками, и я настоятельно рекомендую настроить одну из служб управления версиями. Subversion будет моей рекомендацией и будет бесплатной. Сначала это будет сложно, но вы действительно должны использовать SVN-клиент для добавления графического интерфейса для увеличения полезности и сокращения всех усложнений, которые вы наблюдаете.

Ответ 21

Я быстро google "dreamweaver svn" показывает, что многие люди работают с Subversion в Dreamweaver. Я сторонник контроля версий и, в частности, SVN, поэтому я бы рекомендовал вам изучить следующее:)

Если вы не хотите использовать полную систему управления версиями (как указано выше), вы можете улучшить свою работу, уточнив и автоматизируя описанную вами процедуру. В зависимости от вашего удобства с инструментами вы можете собрать script в DreamWeaver самостоятельно или в Windows Scripting (Powershell, VBA, Perl и т.д.), Которые, по крайней мере, сделают копии с именами, которые вы работаете в так часто. Это не позволит вам сделать это и убедитесь, что нет проблем с опечатками. Далее по этому пути вы можете использовать script копию своей работы на резервном диске или удаленном сервере, а затем у вас тоже будет резервная копия.

Я боюсь, что не знаю много о DreamWeaver, но если у него много встроенной поддержки скриптов, вы даже сможете "подключиться" к функциям Save/Auto-Save и заставить их делать именно то, что вы хотите.

Надеюсь, это поможет, adricnet