Общие папки проверки SVN - PullRequest
       0

Общие папки проверки SVN

2 голосов
/ 07 февраля 2011

У нас есть проект, который разделен на две части. Один для внутреннего и один для внешнего.

Разница между двумя версиями заключается в одном XML-файле и нескольких CSS-файлах.

Существует множество общего кода, который запускает приложение. Общий код также содержит CSS-файлы, которые находятся в той же папке, что и упомянутые выше.

Так что я мог бы сказать, что два файла CSS называются common.css и site.css. Common.css - это общий css-файл, и site.css отличается в двух версиях.

Я не хочу создавать репозиторий SVN для каждой версии, поскольку разница между ними составляет всего пару файлов.

Так что в идеале я бы хотел, чтобы в SVN была папка с «общим» кодом, а затем папка с конкретными файлами для каждой версии.

Кто-нибудь знает, как я могу сделать это в SVN, чтобы я мог проверить общую папку, а затем папки версий?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2011

Создайте общий репозиторий с общим кодом, затем создайте из него две ветви SVN, в которых будут находиться определенные файлы.

Конечно, никогда не объединяйте конкретные файлы этих веток в общий репозиторий.

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

mkdir myproject/common/
vim myproject/common/common_file.html
mkdir myproject/common/css
svn import myproject svn://here/myproject

mkdir myproject/external myproject/internal
svn add myproject/external myproject/internal
svn copy myproject/common/css myproject/external/
svn copy myproject/common/css myproject/internal/
svn ci -m "Created external & internal css sub-branches"

mv external.css specific.css files.css myproject/external/css/
mv internal.css specific.css files.css myproject/internal/css/
svn add myproject/external/css
svn add myproject/internal/css
svn ci myproject/external/css myproject/internal/css -m "Added external & internal specific files"

Где-то еще, для работы над внутренним проектом, например:

svn checkout svn://here/myproject/common/ .
svn switch ./css svn://here/myproject/internal/css
vim ./common_file.html
svn ci -m"I'm an internal user and I worked on a common file"
vim ./css/files.css
svn ci -m"I worked on the specific file files.css of the internal branch"
1 голос
/ 07 февраля 2011

Здесь будет полезно свойство svn: externals, если я пойму, что вы пытаетесь сделать.

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

Поместите общий код в свой собственный каталог, затем поместите каждую версию (внутреннюю и внешнюю) файлов xml и css в отдельные каталоги.

В каждый каталог xml и css добавьте свойство svn: externals, которое указывает на общий каталог. Затем, когда вы проверяете любой каталог, вы получаете копию каталога общего кода в дереве. Измененный код также можно отправить обратно в хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...