Как синхронизировать два репозитория Подверсии?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

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

58
задан Peter Mortensen 19 December 2009 в 04:05
поделиться

4 ответа

Подрывная деятельность, которую 1,5 представленных прокси поддерживают при использовании http для хостинга репозитория. Разработчики могут контроль их рабочие копии с ведомого устройства. Тогда все операции только для чтения (разность, журнал, обновление и т.д.) будут использовать ведомое устройство. При фиксации ведомое устройство прозрачно передает всю операцию записи ведущему устройству.

29
ответ дан clawrence 24 November 2019 в 19:02
поделиться

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

SVN-зеркальный путь

можно использовать svn mirror, как объяснено в книжной документации SVN для создания только для чтения зеркало главного репозитория. Ваши разработчики каждый взаимодействует с зеркалом, самым близким к ним. Однако пользователи ведомого репозитория должны будут использовать

, переключатель svn - перемещает master_url

, прежде чем они смогут фиксировать, и они должны будут не забыть перемещать назад на ведомом устройстве, как только они сделаны. Это могло быть автоматизировано с помощью сценария обертки вокруг команд изменения репозитория на SVN при использовании клиента командной строки. Следует иметь в виду, что перемещать операция, в то время как быстро добавляет немного служебное. (И старайтесь копировать репозиторий uuid - см. документация SVN .)

[Редактирование - Проверка документация TortoiseSVN кажется, что у Вас может быть TortoiseSVN , выполняют сторону клиента сценариев рычага . Можно быть в состоянии создать пред/сообщение сценарий фиксации в этой точке. Или это или попытка видеть, можно ли использовать интерфейс автоматизации TortoiseSVN , чтобы сделать это].

путь SVK

svk является рядом сценариев Perl, которые эмулируют распределенный сервис зеркального отражения по SVN. Можно настроить его так, чтобы локальное ответвление (зеркало) было совместно использовано несколькими разработчиками. Тогда основное использование для разработчиков будет абсолютно прозрачно. Необходимо будет использовать svk клиент для избирательного подхода к выбору, слияния и starmerging. Это выполнимо, если можно получить голову вокруг распределенных понятий.

мерзавец-svn путь

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

Заключительные слова

Все это зависит от Вашей среды разработки и уровня интеграции, которой Вы требуете. В зависимости от Вашего IDE (и если можно измениться SCM) Вы могли бы хотеть взглянуть на другой полностью распределенный SCMs (думайте Подвижный / Базар / Мерзавец /...), которые поддерживают распределенную разработку из поля.

49
ответ дан Peter Mortensen 24 November 2019 в 19:02
поделиться

Необходимо попробовать система управления версиями SVK

, SVK является децентрализованной системой управления версиями, созданной с устойчивой Файловой системой Subversion. Это поддерживает зеркальное отражение репозитория, разъединенную операцию, определяемое предысторией слияние, и интегрируется с другими системами управления версиями, а также популярными визуальными инструментами слияния.

На этой ссылке существует текст [приблизительно 112] Используя SVK для Синхронизации репозиториев SVN

6
ответ дан Robert Vuković 24 November 2019 в 19:02
поделиться

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

Например, Apache делает это для отражения своего репозитория на разных континентах. Главный репозиторий находится в США, но если я получаю доступ к репозиторию из ЕС, я получаю локальное зеркало, которое работает так же хорошо, как и главный сервер.

2
ответ дан 24 November 2019 в 19:02
поделиться
Другие вопросы по тегам:

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