Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Единственным выходом будет искать ревизию, с которой этот проект работал, и копипастить библиотеки.
Стоит напомнить то, как ветки реализованы в svn. Это просто папки с полной копией репозитория. Начиная с версии 1.5 появилась история таких файлов, однако все же это просто папки и файлы. Для работы с ними нужно придерживаться специальных правил именования и содержания.
Напоследок хочется сказать про историю коммитов. Если в svn она чисто прямолинейная и невозможно сказать, что вы на самом деле основывались на ревизии 2, а не 10 и понятия не имел о том, что происходит с 3 по 10, хотя ваш коммит следует под номером 11…
к вам прибежали и срочно хотят получить билд (так как я занимаюсь мобильной разработкой, то такое бывает, хотя есть билдсервер). А у вас проект полностью разваленный, так как вы пилите какую-то супер фичу. В svn вам пришлось бы либо заново выкачивать все сорци с последней ревизии, либо пытаться откатить код до более-менее работающего состояния, либо сказать, что вы не можете этого сделать сейчас.
В svn:externals есть возможность указать конкретную ревизию. Да и ссылаться в svn:externals нужно на соответвующий релиз-тег библиотеки, а не на транк.
Какие правила вы тут имеете в виду?
… то это видно при выполнении svn log --stop-on-copy в бранче. Если бранч создавался как svn cp ^/trunk ^/branches/branchName, то ответвление произошло от ^/trunk@[branch revision — 1], где branch revision — последняя запись в выводе svn log --stop-on-copy (хотя ревизия [branch revision — 1] могла быть совершена не в транке, но ^/trunk@[branch revision — 1] указывает на вполне конкретное состояние транка).
Либо вы берете одну из неиспользуемых рабочих копий (которые образовываются в результате «заново выкачивать все сорци с последней ревизии») и делает svn switch / svn up в ней.
Я не знаю как, но я обошел это стороной… А ведь было введено еще в версии 1.5!
Правила именования папок проекта. trunk — для основной ветви разработки, tags — для состоявшихся релизов и branch для новых фич, которые не нужны пока что в основной ветви.
С этим я согласен, но пункт был не про branch, а про обычную разработку.
Если я правильно понимаю, то вы тут говорите о ситуации, когда программист находится в branch и переключается обратно в trunk.
Сравнение Subversion и Mercurial (HG)