SVN доступ к файлу вне транка - избегайте проблем в тегах и ветвях

Я ищу совет о том, как решить проблему доступа к файлам между проектами в хранилище SVN.

Допустим, у меня есть файл common.txt в корневом common.txt проекта ( / ), который используется несколькими проектами. Примерами являются общие настройки, повторно используемые фрагменты и т. Д. На рисунке ниже показана рекомендуемая структура каталогов. Конечно, я всегда могу отклониться от этого, но это кажется практичным, и всем это знакомо. branches или tags каталогов находятся на том же уровне, что и trunk , но под ними находятся имена тегов / ветвей в качестве каталогов, и поэтому на файл вне ствола - /common.txt - нельзя ссылаться с его относительным путем, таким как '../ .. /common.txt ', потому что из ствола он указывает на корень, а из веток / тегов он указывает на каталог проекта ( calc или paint в примере изображения).

Так каков типичный способ решить эту проблему?

  • ввести дополнительный уровень ниже trunk ? Это не элегантно ...
  • создать переменную оболочки, которая указывает на корень проекта и использовать эту переменную для достижения /common.txt ? Но на другой машине, с другой оболочкой, она может не существовать, поэтому могут потребоваться некоторые подключения (пока у меня нет с ними опыта).
  • создать ссылку на /common.txt для каждого проекта и ссылаться на эту ссылку в коде? Он вводит дополнительный файл: ссылку.

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

типичное дерево каталогов SVN

Всего 1 ответ


  1. Не смешивайте физические и логические объекты: «Проекты» существуют только в вашем мозгу, в то время как SVN работает с «Репозиторием», «Деревом», «Каталогом», «Путем». Ваши проекты - это просто некое поддерево SVN-репо
  2. Выберите и следуйте одной из известных хорошо зарекомендовавших себя древовидных структур в SVN ... и в любом случае вы не оперировали объектами ниже "корня" вашего дерева, то есть - если вы работаете с .../trunk вы этого не делаете использовать любой файл ниже транка

Вы должны прочитать о внешнем виде SVN, понять концепцию и правильно ее использовать


Есть идеи?

10000