Как лучше всего сохранять библиотеки из их реальных проектов? - PullRequest
5 голосов
/ 21 декабря 2011

По некоторым образовательным причинам я недавно начал строить свою собственную библиотеку.Она начиналась как простая библиотека с некоторыми полезными классами, но, поскольку она продолжает расти с каждым днем, и я уже использовала ее в некоторых проектах, стало невозможно отслеживать изменения, так как я не использовалаSVN.

Теперь я начал использовать SVN. Я хотел добавить библиотеку и проекты в другой репозиторий SVN.Один для каждого проекта (поскольку библиотека - это тоже проект).

Как лучше всего сохранять мою библиотеку отдельно от проекта?Каждый проект имеет каталог / library / , в котором содержатся все виды библиотек.Так что мой лучший совет следовать:

  • Я мог бы добавить каталог / library / framework / и установить его на ignore в SVN проекта, а затем извлечь библиотеку в этом каталоге(это вообще возможно?)
    • Pro : Каждый проект имеет свою собственную платформу, и если структура может измениться, это не нарушит код в проекте.
    • Con : Если у меня около 100 проектов, и все они нуждаются в необходимом обновлении (с точки зрения безопасности), я должен обновить все из них вручную.
  • Я также мог бы извлечь библиотеку где-нибудь на сервере и символическую ссылку на каталог / library / framework / после игнорирования ее в проекте svn.
    • Pro : одно обновление исправит все проекты в случае существенного обновления.
    • Con : Как сказано выше: одно обновление исправит / изменит все проекты ...
    • Con : Что если проект должен бытьнастройка на другой сервер (не мой ...)

У кого-нибудь есть мысли?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

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

Это не обязательно решает ваш вопрос об обновлении нескольких проектов, но IMO - это отдельная проблема, которая может быть решена с помощью автоматизации и не возникает, когда мы говорим об организации / управлении версиями / разработке.

1 голос
/ 21 декабря 2011

На самом деле я был в той же ситуации некоторое время назад.

Я решил это с помощью файла .htaccess (я использую apache-2 в качестве веб-сервера [1]), вы можете указать что-то вроде

php_value include_path /absolute/path/to/libraries:/absolute/path/to/my/project:/lib/3rd_party

и так далее, что довольно здорово дляс вашей библиотекой в ​​разных git / svn проверках.

[1] http://httpd.apache.org/docs/2.0/howto/htaccess.html

...