2010-11-11 3 views
0

Я использую Tortoise SVN, и у меня есть один репозиторий под названием «Первый». Место моего SVN - C: \ SVN.Tortoise SVN Многопользовательский вопрос

Теперь я создал новый проект в репозитории «Два».

Текущая структура
C: \ SVN
-> Первый
-> Второй

У меня есть несколько классов в первых, которые я хочу использовать в секунду. Раньше я просто копировал файлы и менял их во втором, но теперь, когда я использую SVN, я думаю, что имеет смысл иметь только одну копию файлов классов и повторно использовать их.

Как я могу проверить классы в First, которые будут использоваться во втором? И когда я изменяю классы, как я могу обновить First ??

Спасибо.

ответ

1

Вы можете ссылаться на подпапку (или весь репозиторий) репо First в репо Second с использованием svn:externals.

Этот способ, когда выдается Second, также будет проверять файлы, на которые ссылается репо First.

Затем, когда вы используете репо Second, и вы изменяете ссылочный класс от First, вы можете передать их обратно. Вы должны будете сделать это явно на уровне папки, используемом в справочнике svn:externals. Если вы зафиксируете на верхнем уровне Second, он не будет автоматически вносить изменения в подпапку, ссылаясь на First.

+0

Ваш ответ имеет смысл, но я не могу использовать его в Tortoise SVN. Извините, но я новичок в SVN :). Итак, должен ли я добавить svn: externals в папку в repo 1 или файл, который я хочу ссылаться? Чтобы быть ясным, мне не нужны все файлы в репо 1, а всего один файл внутри папки. например: /repo1/class/db.php, а не все. fiels in/repo1/class/ – Ctroy

+0

Вы должны создать и зафиксировать подпапку в 'Second', где вы хотите, чтобы появился код' First'. Затем в TortoiseSVN щелкните правой кнопкой мыши папку, которую вы только что создали/зафиксировали, и выберите * Tortoise/SVN/Properties *. Нажмите * Создать *, выберите * svn: externals * в раскрывающемся списке и используйте URL-адрес репо 'First' в качестве значения * Property *. Зафиксируйте это изменение. Затем, когда вы обновляете, он вытащит код из 'First' в этот каталог. – RedFilter

+0

Когда я пробую это для svn: externals, ^/../First/class/db.php db.php, я получаю сообщение об ошибке «UUID репозитория» e2532d42-4d9d-f244-9935-22916a410asd «не соответствует ожидаемому» , Если я даю ^/../First/class db.php, все файлы в папке класса создаются в папке db.php во второй. Все, что я хочу, это только db.php ... – Ctroy

0

Либо добавьте проекты, которые существуют в First in Second, либо добавьте файлы из First в ваш проект/решение в Second. Обратите внимание, что это предполагает структуру каталогов. Например: если First нужен класс A из Second, в первом решении укажите ссылку на файл «.. \ First \ A.class». Затем он будет скомпилирован в ваш второй проект, но будет действительно ссылаться на файл в другом репозитории, поэтому его обновления будут сделаны в первом репозитории.

Смежные вопросы