Отслеживание изменений зависимостей - PullRequest
1 голос
/ 26 декабря 2010

У меня есть проект с несколькими зависимостями, которые находятся в разных репозиториях. Каждый раз, когда я фиксирую изменения в своем проекте, я пишу номера ревизий всех зависимых репозиториев, чтобы в случае, если мне когда-нибудь придется вернуться к этой ревизии (назовем это 5), я сразу узнаю, какие ревизии версия 5 зависимых репозиториев гарантированно будет работать, обновлять зависимости до указанных версий, компилировать и запускать проект. Так, например, если у меня есть:

 Dep1 @ Revisions 10
 Dep2 @ Revisions 20 
 Dep3 @ Revisions 10 
 Proj @ Revisions 35

И, скажем, когда Proj был на ревизии 17, ревизия Dep1 была 5, Dep2 ревизия была 13 и Dep3 версия была 3. Итак, в моих журналах SVN я записал что-то вроде этого:

!! Works with Dep1 Rev 5, Dep2 Rev 13, Dep3 Rev 3

Мне это кажется примитивным и заставляет меня поверить, что есть лучший способ сделать это. Теперь в одном из моих других вопросов, Ivy Dependency Manager был рекомендован. Я еще не рассматривал это подробно (кажется сложным, и еще одна вещь, которую я должен изучить). Мне кажется, что журнал SVN (и Mercurial и т. Д.) Можно было бы разбить на Log и Dependencies (if any), где последние можно было бы отключить, если не было никаких зависимостей (если, конечно, я не знаю, что проще / лучшее решение). Это позволило бы получить более чистый журнал, который может даже предупреждаться при каждом новом коммите, чтобы снова проверить ранее определенные зависимости и убедиться, что они не изменились.

Итак, мне было интересно, как все справляются с этими ситуациями и есть ли у вас какие-либо советы, приемы, программы, предложения, которые вы можете предложить.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 декабря 2010

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

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

Еще лучше написать тесты, чтобы вы могли автоматически определить, что зависимость удовлетворяет всем требованиям.

1 голос
/ 26 декабря 2010

Как вы компилируете свои зависимости и как они связаны с вашим проектом? Если они не являются частью вашего проекта, скомпилируйте их в .dll (или .jar или что-то еще) и передайте его в ваш проект. Вы можете записать версию и любые заметки в комментарии коммита или в файле readme (также зафиксированном в вашем проекте). А затем поработайте с этим и периодически обновляйте зависимость .dll.

...