Конечно, очень жаль, что свойство применимо только для директорий. Это делает ее бесполезной для однофайловых внешних проектов.
Некоторые поправки и дополнения, с Вашего позволения:
1) При первом update /libraries/ произойдет автоматическое создание директории library т.е. того на что мы ссылались;
2) если вдруг получилась несовместимая со старыми версиями библиотека, то сопровождать ее лучше с помощью меток (tags), а не веток (branches). Технически - никакой разницы, а вот смысл улучшается.
Ну, branches VS tags надо обязательно обозреть в ближайшее время, потому что там действительно много аспектов, которые помогут правильно организовать хранение кода.
Да, с ревизиями сложно, если предполагается изменять код внешней библиотеки из проекта.
Странно, что у вас не получается коммитить все вместе. Я перед написанием топика специально проверил, куда попадут комментарии, у меня они попали в оба репозитория. Но коммит прошел отлично. Хотя, может быть это из-за того, что и проект, и библиотека у меня на одном сервере. Ткните меня носом в документацию, где такое написано. Я, в свою очередь, если интересно, могу описать все свои действия и приложить скриншоты, потому что у меня отлично все Commit'ится.
Когда идет интенсивная разработка, нескольких проектов, причем Library является частью одного из проектов и тоже развивается, можно попасть в неприятную ситуацию, когда проTAGаная версия отправленая заказчику или даже просто на тестирование, через некоторое время станет некомпилируемой.
В этой ситуации надо TAGать также и тот проект который яввляется externals'ом для выпсукаемой версии проекта и менять externals на этот таг.
И по хорошему в Ред Буке не делают externals на trunk, его там делают на tag изначально.
Добавлю: если надо добавить более чем одну библиотеку, то при прописывании свойства папки svn:externals нужно указать значение (каждая библиотека с новой строки):
Делал все по инструкции: прописал в свойстве папки путь к библиотеке, сделал Update, все загрузилось правильно в мою рабочую копию. Но вот Commit не дает сделать — нет такой опции, будто ничего не менялось.
Скажите, а можно эти свойства svn:externals какой-то командой поменять прям на сервере?
А то тут возникла задача написать хук, который это делает прям на сервере.
SVN → Подключение внешних библиотек