Синхронизация кода с двумя хранилищами Subversion - PullRequest
1 голос
/ 25 июня 2009

При поиске здесь я обнаружил, что этот вопрос уже задан , но я думаю, что моя ситуация еще хуже! - (

Я новичок в разработке интернет-репозиториев. Книга Я читаю, содержит интересный пример проекта - социальную сеть в ASP.Net. Автор поставил код в виде CodePlex проекта . Я пытался «получить» версию через VisualSVN (subversion), но не получилось. Поэтому я скачал код в виде zip-файла (то есть отключен от репозитория проекта), создал собственный локальный репозиторий и начал изменять код.

Теперь репозиторий CodePlex начал работать. Я хотел бы постоянно получать изменения из репозитория CodePlex в мой локальный и периодически фиксировать некоторые из моих изменений обратно в репозиторий CodePlex.

Это выполнимо?

Ответы [ 4 ]

1 голос
/ 26 июня 2009

То, что я на самом деле сделал, по крайней мере на данный момент и пока трафик для проекта CodePlex низок:

Я скачал текущую версию CodePlex 22875 (в виде почтового индекса). К счастью, до того, как я начал играть с проектом, я сохранил оригинальный zip-файл 16202 локально на своем компьютере (но, думаю, я мог бы также получить его от CodePlex).

Теперь у меня на компьютере две папки: 22875 и 16202. Я использовал Total Commander , чтобы сравнить два дерева и выяснить, какие файлы были изменены. И я вручную включил несколько изменений в свой код.

Я думаю Beyond Compare было бы еще лучше с интеграцией, но я еще не знаком с ней, поэтому я придерживался TC.

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

Что я могу сказать - это отстой. Но мой объем изменений таков, что локальный репозиторий имеет гораздо больше смысла, чем работа с CodePlex. И поскольку CodePlex использует SVN, мне нравится работать локально с SVN, я только что заплатил $ 49 за VisualSVN, и я боюсь хакера git Unix: -)

0 голосов
/ 25 июня 2009

Как упоминалось ранее, через репозитории не будет работать.

Возвращаясь к первоначальной проблеме, вы пробовали проверить исходный репозиторий с помощью командной строки svn?

Из каталога вы хотите получить рабочую копию: svn checkout svn: // codeplex_repository

Затем скопируйте ваши модификации и синхронизируйте как обычно с svn, используя update / commit.

Если вы не знакомы с командной строкой svn, скачайте TortoiseSVN, бесплатно и сделайте свою работу.

0 голосов
/ 25 июня 2009

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

0 голосов
/ 25 июня 2009

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

Примечание: Я пропустил вашу первую строку в вопросе ... дох ... Я уже написал все это ... ба ... надеюсь, это все равно немного поможет ...:)

Как вы видите в других вопросах, есть новая вещь, называемая DVCS (распределенные системы контроля версий), которая позволяет существовать нескольким репо и позволяет выдвигать / извлекать коммиты назад и вперед. Есть несколько популярных версий, Git, Mercurial и Bazaar.

Git немного сложен в использовании, IMO, но он довольно хорошо поддерживает соединение с svn-репозиториями.

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

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

Однако, Git сделан хакерами ядра Linux и для них. Имейте в виду. :)

Mercurial немного более удобен для пользователя, но svn-поддержка, насколько я слышал, не так хороша. Хотя сам не пробовал.

...