Сохранить свое версионное приложение или нет - PullRequest
4 голосов
/ 11 апреля 2010

Мне нужно несколько мнений здесь.

Я работаю над проектом Django, используя buildout для получения зависимостей и т.д ... Я использую Mercurial в качестве DVCS.

Теперь ... Мне нужно настроить одну из зависимостей, чтобы я мог выполнить одно из следующих действий: (* Изменения могут быть не полезны для всех остальных.)

1 - Поддерживать мою версию в форке проекта (github, bitbucket и т. Д.) И получать зависимость с помощью рецепта (mercurial или git).
2- Клонируйте проект, поместите его в PYTHONPATH, сотрите каталоги DVCS и добавьте его в версию моих проектов. Так что каждое изменение будет приватным. Здесь мне нужно стереть всю информацию из их DVCS или что-то.

Любое другое, что вы можете придумать.

Я что-то упустил? Я слишком выключен?

Спасибо!

Ответы [ 3 ]

1 голос
/ 11 апреля 2010

Вы задаете этот вопрос довольно запутанным образом, и я не знаю, действительно ли вы понимаете смысл DVCS.

Весь смысл DVCS в том, чтобы у вас был свой личный репозиторий. Вам не нужно публиковать свой репозиторий на github, bitbucket или любом из этих мест, если вы не хотите, но я, конечно, не буду стирать информацию DVCS.

Если вышестоящий проект вносит изменения, которые вы действительно хотите, в дополнение к вашим собственным личным изменениям, у вас будет чертовское время их слияния, если вы не будете хранить информацию DVCS.

Используя Mercurial, вы можете включить проект в свой, используя функцию Mercurial subrepo .

1 голос
/ 11 апреля 2010

Эстебан, сделай эти шаги: я буду говорить на языке Mercurial, но все это можно сделать и в git.

  1. клонировать свой проект
  2. сделать вашего клона их проекта подпунктом в вашем проекте

Это дает вам лучшее из всех миров. Вы можете редактировать код в своем проекте и их проекте, не обращая внимания на то, что есть, и когда вы фиксируете изменения в своем коде, идите в репозиторий вместе с указателем на новый набор изменений в вашем клоне их проекта. Затем, когда вы захотите обновить свой клон своего проекта, вы можете сделать это на месте и просто объединить.

Так что это в значительной степени то, что вы сказали в '1', но нет необходимости делать форк или хост, который делает репо публично. Просто отредактируйте их клон в качестве вложенного репо вашего проекта и никогда не нажимайте (что не сработает, так как у вас нет прав на запись в их репо).

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

1 голос
/ 11 апреля 2010

Хорошо, если вы используете DVCS, тогда все ваши коммиты сохраняются как наборы изменений, и люди могут выбрать, применять ваш набор изменений или нет. Так что, пока вы комментируете это изменение, люди могут выбирать, применять изменения или нет, как они считают нужным. Более того, если они не хотят это изменение, но хотят другие ваши изменения, они могут выбирать. Так что правда в том, что DVCS позаботится о проблеме для вас (при условии, что люди, которые тянут вас, правильно используют DVCS).

Лично я рекомендую разветвление, но, как я уже сказал, это не имеет значения.

...