2013-04-02 4 views
8

Я разрабатываю небольшое приложение как в PHP, так и в Java. В нем есть несколько фотографий, CSS и JS, которые должны делиться обоими.Символическая ссылка в репозитории Subversion?

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

В Unix у нас есть символические ссылки, так что один и тот же файл/папка может «быть» в нескольких местах в Файловой системе. В Subversion мы имеем svn copy, но как только он выполняется, оба экземпляра становятся независимыми. Я хотел сохранить их вместе, фиксация, сделанная в одном экземпляре, будет применяться и в «другом».

Любая идея, как это сделать?

+0

Возможные дубликат [Что происходит если я добавлю символическую ссылку на subversion?] (https://stackoverflow.com/questions/4056092/what-happens-if-i-add-a-symbolic-link-to-subversion) –

ответ

15

Вы ссылаетесь на symlinks на свой пост, а не на «теневые ссылки» (я отредактировал сообщение). Subversion может использовать символические ссылки для версий, но другой способ сделать это (поскольку символические ссылки не поддерживаются Subversion в Windows на данный момент) заключается в использовании Externals.

Разница заключается в том, что если вы используете внешнюю Subversion, у вас на самом деле будет две копии файла в вашей системе (это указывает на то же место в репозитории), тогда как символическая ссылка - это один файл на файловая система.

+0

Еще раз спасибо взгляните на Внешние. Уже несколько лет я не использую Unix, я думаю, что тень - это имя Mac для нее, символическое для Unix и .lnk для Windows ... или не lol! – Hikari

+5

LNK-файлы в Windows - это ярлыки (файлы данных, указывающие на другой файл вместе с некоторыми другими данными) - они не являются символическими ссылками. NTFS (файловая система Windows) имеет символические ссылки с Win7, и перед этим были жесткие ссылки. Искатель OS X имеет * Псевдонимы *, которые похожи на ярлыки Windows в концепции, но разные в исполнении. OS X также поддерживает символические ссылки на файловую систему. У всех есть разные имена, потому что они разные вещи - не используйте их взаимозаменяемо, тем более, что вы знаете, что не понимаете их! – alroc

3

Вы не указали, как проекты выкладываются в svn или как строится ваш Java-материал. Это будет хорошая информация для добавления.

Вы хотите изучить управление зависимостями - а не символические ссылки. Как отмечает @alroc, эта функция подрывной деятельности не будет работать на некоторых платформах.

Вы действительно не хотите svn:externals. Они плохо работают почти все время, и все время, если внешний решает что-то в том же репо. Это было рассмотрено совсем немного, The accepted answer here - хорошее место для начала.

Я бы порекомендовал вам иметь репо для приложения java, репо для материала php и, возможно, репо для общего.

Ваш билд (Java) и развертывание (PHP) может затем решить соответствующую версию общего РЕПО артефакта (ов) из репозитория (я рекомендую вам посмотреть в связующей или Artifactory)

+0

Это несколько pngs, js и css. Я создаю несколько HTML-страниц, которые будут использоваться в PHP и JSP, поэтому я буду держать их в одном проекте Subversion, каждый в своей собственной папке, и я не хочу дублировать эти статические файлы. – Hikari

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