Контроль версий для новичка - PullRequest
22 голосов
/ 29 мая 2009

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

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

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

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

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

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

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

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

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

Ответы [ 21 ]

2 голосов
/ 29 мая 2009

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

http://github.com
http://github.com/guides/home
2 голосов
/ 22 ноября 2009

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

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

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

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

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

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

2 голосов
/ 30 мая 2009

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

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

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

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

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

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

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

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

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

2 голосов
/ 29 мая 2009

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

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

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

1 голос
/ 29 мая 2009

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

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

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

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

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

1 голос
/ 29 мая 2009

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

1 голос
/ 29 мая 2009

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

1 голос
/ 29 мая 2009

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

Введение в управление источником

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

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

1 голос
/ 29 мая 2009

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

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

0 голосов
/ 29 мая 2009

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

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

Боюсь, я не очень разбираюсь в DreamWeaver, но если в него встроена поддержка сценариев, вы можете даже подключиться к функциям «Сохранить / Автосохранение» и заставить их делать именно то, что вы хочу.

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

...