Изучение SVN - Простые вопросы о новичке

Paul Graham отправил статью несколько лет назад о том, почему Python программисты сделали лучших программистов Java. ( http://www.paulgraham.com/pypar.html )

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

Для заключения в кавычки сайта Paul:

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

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

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

5
задан user73119 16 November 2009 в 11:55
поделиться

5 ответов

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

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

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

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

Если я работаю один, нужны ли и полезны ли теги и ветки? практика?

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

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

Как узнать, что пора коммитить проект? Особенно при написании с нуля?

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

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

В конце ночи, вы всегда делаете свою работу? или оставить это без внимания?

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

Всегда ли вы храните экспортированные копии проектов? Что делать, если БД SVN борется? Сможете ли вы оправиться от боркинга? ...

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

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

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

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

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

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

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

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

Как уже упоминалось другими: взгляните на GUI для Subversion. Мне лично нравится TortoiseSVN .

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

Как уже упоминалось другими: взгляните на GUI для Subversion. Мне лично нравится TortoiseSVN .

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

Как уже упоминалось другими: взгляните на GUI для Subversion. Мне лично нравится TortoiseSVN .

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

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

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

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

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

Как узнать, что пора коммитить проект? Особенно при написании его с нуля?

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

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

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

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

Похожие вопросы: