Использование подверсии и Apache

Я думаю, что это ошибка в старом gcc. Более новые gcc и VS правильно отлавливают выданное исключение и устанавливают флаг плохого бита вместо распространения исключения через потоковые методы. Мусор печатается, потому что c остается неинициализированным после неудачной попытки чтения. Вы можете сделать так, чтобы поток генерировал исключение битового бита, установив флаги исключений в потоке:

try
{
    io::filtering_istream in;
    in.exceptions(::std::ios_base::badbit | ::std::ios_base::failbit | ::std::ios_base::eofbit);
    in.push(TestFilter());
    in.push(source);
    char c;
    in >> c;
    cout << c;
} catch (boost::exception& e) {
    cout << "not expected boost exception";
    return 1;
}
catch(::std::exception const & e)
{
    cout << "Expected std exception";
    return 2;
}

также см. Документация по исключениям iostream

7
задан Peter Mortensen 12 January 2017 в 00:18
поделиться

9 ответов

Нет никакой потребности настроить Подверсию с Apache. Я использовал Подверсию в течение многих лет и никогда не должен был делать так (хотя существуют причины, почему Вы были бы, главным образом чтобы сделать с инфраструктурой аутентификации). Так как Вы находитесь в мире Windows, я видел, что Сервер VisualSVN прибывает настоятельно рекомендованный и легок просто настроить и пойти.

2
ответ дан 6 December 2019 в 09:23
поделиться

Проверьте Запись SVNBook: Выбор Конфигурации Сервера. Это говорит о за и против различных способов получить доступ к серверу Подверсии.

Протокол SVN является самым простым настроить и администрировать, но вероятно не будет работать через корпоративные брандмауэры (но Apache будет через HTTP).

7
ответ дан 6 December 2019 в 09:23
поделиться

Может быть выгодно когда порт 3 690 потребностей быть закрытым. Это также позволяет пользователям просмотреть код с помощью браузера, который имеет за и против. У Вас не должно быть клиента Подверсии для наблюдения кода, но веб-браузер делает вшивый браузер репозитория.

Установка его не слишком хитра. Я нашел, что эта страница была полезна.

Но, если Вы просто используете его в локальной среде VM, svnserve был бы хорошо для Вас.

3
ответ дан 6 December 2019 в 09:23
поделиться

Мы используем Подверсию в малочисленной команде (6 человек) среда, с помощью Визуального репозитория SVN. Первоначально у нас не было веб-сервера Apache, просто IIS, но теперь мы также выполняем Apache, но нет никакого неопровержимого довода для использования Apache для репозитория.

1
ответ дан 6 December 2019 в 09:23
поделиться

Преимущество для хостинга Вашего репозитория SVN через Apache играет роль, если Вы хотите ACLs на своем репозитории.

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

Результат использования Apache для аутентификации пользователей означает, что Вы не должны определять своих пользователей в .htpasswd. Apache может сцепиться в LDAP, большую часть любого типа SQL-сервера, или даже использовать аутентификацию Kerberos.

Используя упрощенное svnserve может быть достаточно. Однако мелкомодульные полномочия не могут быть применены, и Вы не сможете сцепиться в другую пользовательскую базу данных для аутентификации.

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

3
ответ дан 6 December 2019 в 09:23
поделиться

Ситуация я думаю, что Вы достигаете, состоит в том, если Вы хотите использовать протокол WebDAV для доступа к репозиторию SVN. В этом случае Вы в основном позволяете Apache обрабатывать доступ к файлу как посредника к самому SVN (никакие прямые подключения к репозиторию).

Я услышал, что это работает вполне прилично, но существует несколько альтернатив. Взгляните на Книгу SVN (проверьте Google) для начальной точки.

2
ответ дан 6 December 2019 в 09:23
поделиться

Вы не должны использовать Apache. Существует пользовательский сервер - svnserve.exe может использоваться вместо этого. Это работает на порте 3690 по умолчанию, но это может быть установлено на другой порт при помощи --port переключитесь при установке его.

Greg Hewgill дал Вам ссылку, которая скажет Вам что версия сервера Подверсии использовать, и различные варианты использования. Это в основном сводится к svnserve если Вы не должны интегрироваться ни с каким видом аутентификации. Используйте Apache при необходимости в более сложных сценариях.

У меня есть коммерческая консоль Windows, которая обрабатывает svnserve. Мой профиль имеет ссылку для наблюдения той утилиты. Если Вы действительно решаете использование Apache я рекомендую использовать Сервер VisualSVN.

0
ответ дан 6 December 2019 в 09:23
поделиться

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

Можно использовать сборку file://-protocol почти во все клиенты SVN и локальный репозиторий SVN.

Ваш репозиторий SVN может также работать от сетевого ресурса. Однако необходимо использовать этот подход, только если Вы работаете над ним один!

1
ответ дан 6 December 2019 в 09:23
поделиться

Используя Apache, можно получить доступ репозиторию через WebDAV, который является по HTTP на стандартном порте, таким образом, можно получать доступ/публиковать репозиторию позади брандмауэра корпораций, например, который не может позволить svnserve порт.

1
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

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