2009-11-16 5 views
5

Только что началось с SVN. Вот очень простой набор вопросов, которые я прочитал после нескольких статей, учебных пособий и игры в течение нескольких часов.Изучение SVN - Простые вопросы начинающего

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

  2. Если я работаю один, теги и ветки все еще необходимы и хорошая практика?

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

  4. В конце ночи вы всегда совершаете свою работу? или вы оставите его в порядке?

  5. Вы постоянно сохраняете экспортированную копию проектов? Что делать, если SVN DB borks? Можете ли вы оправиться от укусов? Если бы это было bork, и у меня только был выписанный экземпляр, мне пришлось бы удалить все каталоги .svn самостоятельно? Будет ли это равным экспортированной копии? Вы архивируете экспортированные теги в другом месте?

  6. Должен ли я когда-либо иметь прямой доступ к каталогу репозитория? Было бы лучше просто скрыть этот каталог? (.svn)

  7. Есть ли более простой способ сделать заказ и импортировать, а затем ввести весь путь к файлу (файл: /// Applications/MAMP/SVN /)? Могу ли я установить репо, которое я всегда буду использовать?

редактировать спасибо за прояснение всех этих вопросов. Также для предложений о gui's. Я получил его через textmate, который невероятно огромен. Еще нужно сделать первоначальный импорт и контроль на CL, хотя ...

ответ

2

Вот мой взгляд на это:

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

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

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

Если я работаю сам, теги и филиалы по-прежнему необходимы и хорошо практики?

Абсолютно! Особенно, если вы хотите выпустить свой код для других или других мест (например, на сервере). Вы захотите узнать, какую версию вы отправили (пометки). И вы можете исправить что-то в более ранней версии, не беспокоясь об изменениях, которые вы уже сделали в ходе дальнейшей разработки (ветвления).

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

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

Мне нравится делать небольшие коммиты. Создал проект-шаблон? Согласитесь. Добавлена ​​функция X? Согласитесь. Обновлен ваш код FooProcessor? Согласитесь.

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

В конце ночи вы всегда совершаете свою работу? или вы оставите его в порядке?

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

Вы постоянно сохраняете экспортированную копию проектов? Что делать, если SVN DB borks? Можете ли вы оправиться от укусов? ...

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

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

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

... Вы архивируете экспортируемые теги в другое место?

Нет, не совсем. Если вы не хотите вызывать проверку выпуска на производственном сервере «архивом».

Должен ли я когда-либо иметь прямой доступ к каталогу репозитория? Было бы лучше просто скрыть этот каталог? (.svn)

В системе * nix каталоги .svn уже скрыты (вот почему они начинаются с точки). Однако вы не должны путаться в этих каталогах.

Есть ли более простой способ сделать заказ и импортировать, а затем ввести весь путь к файлу (файл: /// Applications/MAMP/SVN /)? Могу ли я установить репо, которое я всегда буду использовать?

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

4
  1. Это зависит от вас. Некоторые считают репо «достаточно большим» для многих проектов, некоторые считают, что общая нумерация раздражает и делает ее 1: 1. Вам решать.
  2. Уверен! Каждый раз, когда вы делаете выпуск, пометьте его, чтобы вы могли легко вернуться к нему. Каждый раз, когда вы хотите работать в «изоляции» на чем-то большом, откройте его.
  3. Зафиксируйте как можно чаще, подумайте об этом как о резервном копировании своей работы.
  4. Я предпочитаю совершать, прежде чем прекратить работу на этот день или «сеанс» или что-то еще, это просто заставляет меня чувствовать, что я что-то совершил, что хорошо для мотивации.
  5. Я резервирую свой SVN на жесткий диск, хранящийся в банковском хранилище. :) Не так часто или регулярно, как я должен, но я работаю над улучшением этой рутины.
  6. Я не думаю, что я когда-либо обращался к нему напрямую, после его настройки.
  7. Не уверен в этом, я использую локальное доменное имя домена, которое довольно короткое (svn.unwind.se).
1
  1. Вы могли бы репо для каждого проекта или использовать единый репозиторий для многих связанного проекта; это действительно зависит от вас. Учтите, что номер ревизии является глобальным для репозитория, поэтому фиксация в проекте увеличит количество ревизий для всего репо.
  2. Они хороши, если вам нужно разветвить ваш проект, даже если вы работаете над ним в одиночку. Они не нужны, если у вас есть только основная ветка.
  3. Обычно мы фиксируем, когда функция завершена, когда выполняется рефакторинг и т. Д .; например. мы не совершаем в середине редактирования.
  4. Если вы работаете самостоятельно, вы можете часто выполнять резервное копирование своей работы. Но если вы работаете в команде, вы должны придерживаться «рабочего кода», иначе ваши коллеги могут получить некомпилирующий код в рабочей копии.
  5. Наши репо поддерживаются в ночное время вместе с другими вещами на сервере.
  6. Пользователям не нужно обращаться к каталогу репозиториев. Он должен быть доступен для резервных администраторов и т. Д.
  7. Существует много разных графических интерфейсов для svn. Проверьте это: Comparison of Subversion clients.
0

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

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

Если я работаю сам, теги и филиалы по-прежнему необходима и хорошая практика?

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

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

Я фиксирую с самого начала, сразу после создания проекта.

В конце ночи вы всегда совершаете свою работу? или вы оставите его в порядке?

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

1
  1. Это вопрос личных предпочтений. Я предпочитаю единственное репо, проще поддерживать пользователей и разрешения и создавать резервные копии.
  2. Да, это две функции, которые могут быть полезны даже в сценарии с одним человеком.
  3. Каждое обязательство должно быть значимым. Итак, совершите, когда вы закончите реализацию функции, или когда исправите ошибку, или когда вы выполните некоторую работу, которая может быть осмысленно описана в сообщении журнала. Инструмент управления версиями не является инструментом резервного копирования.
  4. См. Пункт previuos, вы не должны фиксировать только потому, что вы останавливаетесь на работе и оставляете в репозитории некорректный код или полузаработанные задачи.
  5. Резервное копирование всегда важно, svn дает вам различные способы сделать это, см. Официальную книгу: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.backup
  6. Обычно вам не нужно обращаться к нему после его настройки.
  7. Попробуйте использовать Svn-клиент, например TortoiseSvn.
Смежные вопросы