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

SVN: одна рабочая копия, два репозитория?

Я хотел бы знать, как установить два репозитория для одной рабочей копии. Мне нужен один репозиторий на моем сервере, так что я могу проверить/отключить между двумя ПК; Мне нужен другой репозиторий на моем локальном компьютере, так что я могу быстро увидеть результат diff (мой svn-сервер находится на медленном общем хосте)

Как я могу это сделать?

4b9b3361

Ответ 1

Посмотрите репликация репозитория.

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

Если фиксация произойдет с обоими репозиториями, возможно, с распределенной системой управления версиями, например git, Bazaar или Mercurial больше в вашем переулке? Git, для одного, даже позволяет вытащить и напрямую нажать на репозиторий Subversion.

Ответ 2

Subversion не использует сетевой доступ для своей операции diff. Это одно из больших преимуществ Subversion над CVS. Поэтому я не уверен, почему вы столкнулись с этой конкретной проблемой.

Альтернативой является использование Git и особенно git-svn на вашем локальном ПК. Вы получаете полную копию всей истории репозитория на своей локальной машине, с возможностью локального обнаружения и просмотра истории (наряду со многими другими функциями Git). По возможности я теперь использую git-svn для доступа к репозиториям Subversion.

Ответ 3

Если вам не нужно использовать SVN, вам может быть лучше использовать распределенную систему управления версиями, такую ​​как Mercurial или Git. Каждый ПК будет иметь свою собственную копию репозитория, а изменения могут быть синхронизированы либо напрямую между ПК, либо через другую копию на центральном сервере. Поскольку каждый ПК имеет полный репозиторий, хранящийся локально, вы можете выполнять diff или любую другую операцию без доступа к сети.

Ответ 4

Если ваш локальный ящик - linux, вы можете создать запись crontab для обновления svn каждые X минут, чтобы синхронизировать ее с сервером в фоновом режиме. Оттуда у вас будет самая последняя копия на вашем локальном сервере svn для сравнения с.

Ответ 5

Вы можете попробовать svk как ваш локальный клиент вместо svn. Svk - это псевдораспределенная система управления версиями, использующая репозитории svn.

Вы бы использовали svk, чтобы настроить зеркало репозитория, синхронизировать его, и вы можете различать ваше сердечное содержимое, так как многие версии вернутся, как вам нравится, и все это локально.

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

Два оговорки:

  • Будьте готовы использовать командную строку. По моему мнению, нет TortoiseSVK или другого графического интерфейса.
  • Я использовал svk только для linux. Если вы используете окна, я не уверен, насколько хорош клиент.

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

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

Ответ 6

SVN по своей сути не подходит для таких случаев использования. Вам нужно будет подбирать вещи здесь и там (например, писать коронки). Если вы хотите что-то, что подходит для использования в таких случаях, попробуйте GIT.

Ответ 7

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

Вам нужно будет сделать svn-switch -relocate, чтобы переключить репозиторий, который вы просматриваете непосредственно перед регистрацией. Некоторая ошибка.

Зачем вам нужен писать через прокси.

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

Ответ 8

Результат svn diff не зависит от скорости вашего соединения с сервером; это полностью локальная операция.