Создание коммитов в локальную копию репозитория SVN

Я проверил копию проекта, размещенного в коде Google. Я собираюсь внести в него изменения, и я хотел бы сохранить их под контролем версий в репозитории на моей локальной машине.

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

Могу ли я сделать это с помощью SVN или я должен смотреть на распределенный контроль версий? Я использую Linux, а не Windows.

 Tom Leys10 июл. 2009 г., 03:13
Я изменил свой ответ на основе Linux - Примечание. Eclipse предлагает вам хороший плагин для подрывной работы с графическим интерфейсом.
 Alasdair14 июл. 2009 г., 02:36
Сначала я выбрал Ника Льюиса & apos; ответ. Выполнение экспорта из googlecode, а затем добавление этих файлов в локальный репозиторий позволяет придерживаться только svn, как я изначально хотел, когда задавал вопрос. Несколько дней спустя я опробовал предложение Джона Уэлдона с Mercurial. Это было быстро, чтобы изучить основные команды Mercurial, и если проект будет обновлен с помощью GoogleCode, будет гораздо проще импортировать изменения в мой локальный репозиторий. Изменение принятого ответа отражает мой собственный опыт, YMMV.

Ответы на вопрос(6)

ДА! Пожалуйста, используйте инструмент контроля версий. SVN очень прост в использовании, поэтому я предлагаю это.

Одна вещь, которая может быть полезна, это то, что вы могли бы использоватьЗатмение + PyDev (для питона) +Subeclipse (для вашего SVN). Это должен быть хороший независимый от платформы стек, который выигрывает у вас SVN-клиент с графическим интерфейсом. Не забудьте проверить плагинMylyn это входит в большинство пакетов Eclipse - это действительно здорово.

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

Самым простым для одного пользователя является использование & quot; Файл & quot; протокол. Немного сложнее настроить надлежащий сервер SVN, который вы, возможно, захотите отложить, пока не разберетесь в SVN, - он позволяет работать с нескольких компьютеров.

 Alasdair10 июл. 2009 г., 03:27
Хранилище будет жить на сервере моего веб-хоста, поэтому мне нужно запачкать руки командной строкой. Сказав это, я использовал TortoiseSVN в Windows, и графический интерфейс очень удобен. Я когда-нибудь проверю Subeclipse. Спасибо за чаевые!

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

svnadmin create project-local-repo
svn checkout file:///path/to/project-local-repo project-branch
svn export http://PROJECT.googlecode.com/svn/trunk/ project-branch

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

 10 июл. 2009 г., 02:26
Исправлено, спасибо за головы. Я сам использую TortoiseSVN, поэтому не очень хорошо знаю все команды REAL. :)

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

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

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

Если вам нужно сохранить историю всех коммитов в коде Google до этого момента в вашем локальном SVN, сообщите нам, как это можно сделать.

Если вам также необходимо в какой-то момент зафиксировать свой локальный код в коде Google, сообщите нам об этом, чтобы объяснить, как это сделать.

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

 Alasdair10 июл. 2009 г., 02:44
Бинго! Экспорт - это концепция, которая мне была нужна, но я не знал названия. Спасибо!
Решение Вопроса

Я был очень счастлив, используя svn для удаленного репозитория + используя mercurial или git в качестве локального репозитория поверх репозитория svn.

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

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

Update

Хотя мне очень нравятся ответы об экспорте из кода Google и импорте в локальный репозиторий, мне действительно нравится сочетание svn и git / mercurial, так как вы можете периодически делать svn-обновление, чтобы получать последний код от Google, и затем к git commit или hg commit, чтобы добавить последний код в ваш локальный репозиторий.

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

Кроме того, используя git / mercurial, у вас есть мощные инструменты ветвления / исправления, которые svn не делает такими простыми.

 Alasdair10 июл. 2009 г., 16:04
Я понимаю, почему сочетание git и svn, возможно, является более элегантным решением. Но в этом случае достаточно придерживаться svn, и позвольте мне вернуться к кодированию быстрее. Я попробую git / mercurial в будущем.
 Alasdair14 июл. 2009 г., 02:37
«В будущем» Оказалось, через несколько дней. Этот ответ очень хорошо работает для меня.

Да.

Вы можете создать свой локальный репозиторий, используя

svnadmin create repositoryName

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

svn checkout file:///path/to/your/repositoryName

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

Когда вы хотите перенести свои изменения, просто

svn update

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

Ваш ответ на вопрос