2009-10-14 3 views
4

Так что я использую libsvn для Windows в приложении на C++. У меня есть несколько svn деревьев, с которыми я использую api. Я предполагаю, что вся инициализация и настройка верны, так как все остальные операции работают так, как ожидалось.Использование libsvn для получения последней редакции для дерева

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

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

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

+2

Можете ли вы отправить всю команду и пытаетесь запустить? – sramij

ответ

3

Вам необходимо проверить сообщение об ошибке из фактического вызова svn_client_log. Тип возврата содержит информацию об ошибке (есть char*, называемый message).

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

+1

+1 за ответ 20 месяцев спустя ... – carlosdc

+1

@carlosdc Я действительно столкнулся с этой проблемой несколько дней назад, сделал поиск SO и увидел эту проблему. Затем я начал охоту :) В моем случае это было потому, что я забыл ограничить количество запросов, и я подумал, что, возможно, есть другие, которые могут столкнуться с этой проблемой –

Смежные вопросы