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

Добавление контроля версий в существующий проект

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

Я хочу использовать Subversion. Какой был бы лучший способ передать существующий проект?

У меня есть тестовый сервер, который я использую для разработки новых функций, а затем передаю эти файлы на 2 производственных сервера. Есть ли инструмент, который будет автоматизировать загрузку в тесте, а затем развертывание на живых серверах?

Все это разработано в ASP.NET с использованием Visual Studio (если это имеет значение)

4b9b3361

Ответ 1

Чтобы немного расширить предыдущий ответ...

1) Создайте новый репозиторий SVN
2) Зафиксируйте весь код, над которым вы работали до сих пор.
3) Проверьте все, что код OUT снова, чтобы создать рабочую копию на вашей машине dev
4) Работайте!

Это определенно не препятствие, действительно.

Ответ 2

Я не видел, чтобы кто-нибудь обращался к этой части вашего вопроса/сообщения:

Есть ли инструмент, который будет автоматизировать загрузите на тест, затем развертывание на живых серверах?

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

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

svn export C:\MyReporitosy\Path C:\DestinationPath

Просто включите это как часть процесса развертывания. Не забудьте развернуть код из этого экспортированного каталога, а не вашу рабочую копию. Тогда вы должны быть в порядке.

Ответ 3

+1 для ответа Мэтта Хауэлла.

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

  • Я создаю проект под названием FRED и выполняю некоторую работу

  • Я создаю каталог в SVN-репо и импортирую FRED в него.

  • Но каталог FRED все еще не находится под контролем источника - ему не хватает файлов .svn, поэтому мне нужно его проверить, в новый каталог, позвоните ему FRED-NEW, воссоздайте все файлы

  • Затем мне нужно удалить FRED, оставив меня нервным, что-то потерялось или искажено по пути.

Как говорит Мэтт, проверьте предыдущий шаг, в то время как папка в репозитории SVN по-прежнему пуста:

  • Создайте каталог в SVN и проверьте его в FRED-NEW.

  • Скопировать FRED-NEW/.svn в FRED/

  • Щелкните правой кнопкой мыши Добавить все файлы. FRED теперь находится под контролем источника без воссоздания и удаления.

Еще лучше:

  • Создайте каталог в SVN и ПЕРЕД добавлением к нему файлов, проверьте пустую директорию вне DIRECTLY INTO FRED.

  • Щелкните правой кнопкой мыши Добавить все файлы.

Также, если вы используете CLI и не думали об этом до тех пор, пока не заработаете новые файлы, см. ответ alroc ниже: --force при проверке на FRED.

Ответ 4

Импортируйте существующую базу в репозиторий SVN, проверьте ее и снова запустите.

Ответ 5

Вы должны посмотреть Visual SVN, который легко интегрируется в Visual Studio.

Ответ 6

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

Мне лично не нравится мой исходный контроль, интегрированный в IDE. Я использую Tortoise SVN, который интегрируется с Проводником Windows и позволяет вам проверять файлы, diff, merge и т.д. Прямо из ОС.

Ответ 7

Не требуется сервер SVN.
Использование Tortoise Mercurial http://sourceforge.net/project/showfiles.php?group_id=199155

Настройка локального репо
1) Загрузить и установить
2) Откройте окно проводника в базовый каталог проекта

3) Right-Click → TortoiseHG → Создать репозиторий здесь → Ok
4) Щелкните правой кнопкой мыши → HG Commit...
5) Введите комментарий фиксации, выберите файлы для отслеживания и нажмите "Зафиксировать"

Настройка удаленного репо над файловым ресурсом (доступны другие доступные методы транспорта)
1) Откройте окно проводника в удаленной папке
2a) Щелкните правой кнопкой мыши → TortoiseHG → Клонировать репозиторий
2b) В качестве альтернативы просто скопируйте местное репо через

Обновление удаленного репо после совершения локального
1) Откройте окно проводника в удаленной папке
2) Щелкните правой кнопкой мыши → TortoiseHG → Синхронизировать
3) Выберите "Обновить на новый совет" в меню Pull
4) Введите путь к локальному репо в поле ввода "Путь: Путь:" 5) Нажмите Pull

Ответ 8

Установка Subversion Server... Библиотеки субверсиональных клиентов...

Установите Ankh для интеграции с VS Установка интеграции Tortoise для управления файлами

В диспетчере файлов щелкните правой кнопкой мыши на верхнем уровне с помощью Solution... Import...

Ответ 9

Мне интересно, почему вы выбрали Subversion? Если ваш проект не использует какой-либо vc, возможно, вам стоит подумать о том, чтобы использовать Mercurial или Git.

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

Если SVN не является требованием мэра, я рекомендую рассмотреть любую из двух систем dvc.

Ответ 10

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

Это позволит вам добавить пользовательские шаги сборки для развертывания на производственных серверах после завершения и тестирования сборки.

TeamCity для получения дополнительной информации. Thi также предоставляет плагин в Visual Studio, а также

Ответ 11

Легко начать использование Subversion. Загрузите TortoiseSVN, который интегрирует SVN в проводник Windows. Загрузите AnkhSVN для интеграции VS. Настройте svnserve как службу Windows (это в документах).

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

Мы делаем все наше развертывание с помощью скриптов NAnt, хотя вы можете найти пакетные скрипты и xcopy.

Ответ 12

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

Как только вы установили и запустили свое программное обеспечение для управления версиями, очистите свою кодовую директорию от всего, что не является источником (например, запустите "make clean" ). Затем используйте только команду, чтобы добавить новые репозитории в репозиторий. Следуйте за этим в submit, и все готово. Я рекомендую проверять на другой машине и строить хотя бы один раз, чтобы убедиться, что у вас есть все необходимое для сборки.

Что касается развертывания на серверах, это не проблема управления версиями. Обычно вы либо помещаете это в свою систему сборки (например, "make testinstall", "make install" ), либо просто пишите сценарии оболочки.

Ответ 13

+1 на ответы, предоставленные Джо и Стивом. Я бы также упомянул, что важно настроить списки игнорирования или SVN-реквизиты, чтобы вы не проверяли файлы пользователя, изменяя настройки.

Также убедитесь, что вы включили все, что может понадобиться для сборки, например скрипты сборки, сторонние сборки, внешние инструменты, такие как nunit, nant и т.д.

Пока вы на нем, я настоятельно рекомендую вам взглянуть на CC.net и установить сервер постоянной интеграции для автоматизации сборки.

Наличие контроля источника - это одно, а использование его правильно - совсем другое. Не забудьте проверить часто и раньше.

Ответ 14

Простым ответом является Subversion вместе с Tortoise SVN.

Я использовал Subversion с визуальной студией, и я реализовал ее с существующим проектом. Существует бесплатный плагин Visual Studio под названием Ankh, который я использовал с некоторым успехом. Тем не менее, у меня были некоторые проблемы, когда Ankh отказывается оставаться в синхронизации с реальным состоянием файлов, как это отражено в метаданных .svn(он делал такие вещи, как настоять на том, что файл необходимо обновить, когда черепаха покажет мне, что он обновлен). В этих случаях перезагрузка визуальной студии исправляла проблемы, но это было болезненно и утомительно для меня.

В настоящее время я прекратил использовать Ankh и просто работал над своим проектом как обычно в VS, а затем использовал Tortoise и Windows Explorer для проверки их входа/выхода. Это работает безупречно. Нет VS обновляется или перезапускается.

Ответ 15

1) Создайте новый репозиторий - вы можете создать его на тестовом сервере, а затем перенести его на выделенный сервер /NAS, если это упростит вам работу. 2) Импортируйте весь существующий исходный код в репозиторий. 3) Вы можете создать с помощью инструмента командной строки 'svn' (и связанные с ним инструменты, например svnadmin) пакетный файл, который будет автоматизировать процесс загрузки и развертывания (последний, в сочетании с компилятором, конечно).

Дополнительную информацию вы можете найти здесь: SVN book - просто начните читать его - вам не нужно читать все, чтобы начать и запустить svn. MSBuild - платформа автоматизации сборки от Microsoft, хотя это может быть перебор, зависящий от размера вашего проекта.

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

Ответ 16

Контроль версий и развертывание - это две отдельные проблемы (хотя хорошая система управления версиями может сделать развертывание более последовательным, воспроизводимым процессом). После настройки сервера управления версиями вы можете использовать набор простых script/пакетных файлов для автоматизации проверки кода и развертывания его на сервере.

Ответ 17

Чтобы добавить к предыдущим ответам, я бы рекомендовал также очевидные (но они должны быть ясными) советы:

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

Теперь остерегайтесь:

Есть ли инструмент, который будет автоматизировать загрузку в тесте, а затем развертывание на живых серверах?

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

Ответ 18

в дополнение ко всем остальным комментариям о практических возможностях получения проекта под контролем источника, я бы посоветовал вам взглянуть на Streamed Lines: Branching Шаблоны для параллельной разработки программного обеспечения в качестве руководства к правилам кода и политикам ветвления - могут немного помочь вам переработать позже.

Также Eric Sink была отличная коллекция сообщений, вставляющих различные концепции управления исходным кодом - Источник управления HOWTO

Ответ 19

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

С базаром это действительно всего несколько простых команд: 1) bzr init 2) bzr добавить [файлы, которые вас интересуют] 3) bzr commit

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

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

Ответ 20

Вопрос явно о Subversion (SVN - это псевдоним).

Это следующие шаги:

1) Create a New Repository (if needed,  if using VisualSVN Server then very easy)
2) Right click on the Folder of which you want to put the folders and files into your repository 
3) With having the right click menu  go to TortoiseSVN
4) Choose IMPORT 
5) Place in trunk (best practice)

e.g.   https://computername:8443/svn/MyCoolCode/trunk

Ответ 21

Я использую mercurial на своем рабочем столе, и мне это нравится. Создание репозитория очень просто...

hg init /path/to/repository

Добавить файлы...

hg add /folder/pattern  

OR

hg add FILE

Затем вы просто совершаете...

hg commit

И вы работаете.

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

hg pull //desktop_name/path/to/repo/  
hg update

То, что мне нравится в subversion, - это pluggin для Visual Studio, я больше нахожусь на моих обновлениях, когда значки состояния в настоящее время играют главную роль в лицо. Pluggin, возможно, наверняка восполнит настройку репозитория svn, если вы собираетесь работать с одним проектом много.

Ответ 22

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

Решение этой проблемы выглядит следующим образом:

Предположим, что у вас есть куча проектов в PC1, все они собраны в виде подпапок под папкой "Проекты" , и вы хотите, чтобы все они были в одном хранилище. Затем вы хотите проверить это на PC2 с той же структурой папок. Затем вы делаете следующее:

  • Создайте папку для вашего репозитория на сетевом диске и убедитесь, что она называется "Проекты" , то есть , то же имя, что и родительская папка ваших проектов разработки. Например, создайте такую ​​папку, как X:\Repository\Projects, на сетевом диске.
  • Щелкните правой кнопкой мыши на этой папке и выберите TurtoiseSVN → Создать репозиторий здесь
  • Щелкните правой кнопкой мыши на своей папке "Проекты" на ПК1 (ваш существующий проект) и нажмите "TurtoiseSVN → Импорт". Выберите правильный репозиторий с названием "Проекты" (если у вас уже есть другие репозитории на сетевом диске). Теперь ваши проекты в распоряжении для других ПК.
  • Создайте родительскую папку на ПК2, где вы хотите иметь папку "Проекты" .
  • Щелкните правой кнопкой мыши на этой родительской папке на ПК2 и выберите SVN Checkout. Проекты теперь доступны на ПК2.
  • С этого момента вы используете "commit" для хранения изменений в репозитории и "обновления", чтобы получить последнюю версию из репозитория.